Synology DiskStationのファイルをAzure Storageにバックアップする:Hyper Backup編

2020年3月11日

はじめに

先日、自宅のNAS(Buffalo製)のHDDがクラッシュしていたので、新たにSynology DiskStation DS118を購入しました。こちらはシングルドライブなので別のストレージに日次バックアップを取るのは必須となります。

バックアップ方法

基本的にDiskStation標準の機能を使ってバックアップを行いたいと考えています。
執筆時点ではDSMのバージョンは「DSM 6.2.2-24922 Update 4」となっています。

CloudSync

バックアップ先というか、同期先のストレージとファイル単位で常に同期を取ってくれるサービスです。
選択できるクラウドプロバイダーには「Azure Storage」が選択できるのですが、これはBLOBストレージに対してのみ行なえます。

Filesストレージに対して同期ができれば出先からはDS Fileとかアプリを使って自宅にあるDiskStationに繋げなくても、Azure Filesに繋げてファイルを見るとか出来るのですが、甘くはありませんでした。今後に期待です。

File StationからCIFS共有フォルダとして、Azure Filesをマウントして、Cloud Syncさせようと試みたのですが、こちらも失敗。

Azure FilesのSMBマウントをインターネット越しに行う場合にはSMB 3.0で暗号化通信が行える事が必須です。これには、LinuxカーネルのVersionが4.11以降で対応しています。

Linux で Azure Files を使用する

残念なことに、現在DiskStationに適用されているLinuxカーネルは4.4でした。
きっとDSM 7がリリースされた暁にはLinuxカーネルバージョンも上がっていると信じて今は諦めます。

$ uname -a
Linux fs 4.4.59+ #24922 SMP Wed Oct 30 18:44:43 CST 2019 aarch64 GNU/Linux synology_rtd1296_ds118

Hyper Backup

こちらはCloudSyncとは異なり、バックアップ先のストレージにはファイル単位でコピーは行われず、特殊な形式で保存されています。

よって、Azure Storageにバックアップファイルを保存しても、そのバックアップファイルをエクスプローラなどで表示したりは出来ません。

その分、バックアップの転送効率が良かったり、履歴バックアップも行えるのでそれはそれで安心です。

今回はこちらのHyper Backupを使って、Azure Storage(BLOB)に自宅のDiskStation内の大事なファイルをバックアップする方法について次章から説明します。(前置きが長くてすみません)

Azure側の設定

Azureポータルから、「+リソースの作成」、フィルタ項目に「ストレージ」と入力して表示された「ストレージアカウント Blob、File、Queue」を選択します。

リソースグループ名は適当に、ストレージアカウント名はグローバルで重複しない名前を設定します。
場所は東日本か西日本が良いと思います。パフォーマンス、レプリケーションは料金を抑えるためにStandard、LRSを選択します。
アカウントの種類は今はStorageV2一択で。アクセス層も頻繁にバックアップファイルのアクセスがあるため、ホットのままにします。

その他のタブの項目は全てデフォルトでよいので、最後に「確認及び作成」をクリックしてから作成します。

無事Storage Accountが作成できたら、リソースに移動して左メニューから「アクセスキー」を選択。表示された「ストレージアカウント名」「キー(Key1)」の内容を控えておきます。

Azure側の準備は以上です。

Hyper Backupのバックアップ設定追加

DiskStationの管理画面に戻り、上部のメニューから「Hypre Backup」を選択します。

Hyper Backupウインドウの左下の「+」をクリック後、ポップアップメニューから「データバックアップタスク」を選択します。

バックアップ先に「Microsoft Azure」を選択して「次へ」をクリックします。

ストレージアカウント名、アクセスキーに先程控えておいた内容をペースト後に、「コンテナ名」のプルダウンメニューを開くと「Containerを新規作成します」と出るので、こちらを選択します。

コンテナ名とは、Azure BLOB Storageの第1階層に必要なフォルダ名みたいなものです。適当な名前を設定します。

コンテナ名の選択が終わると、自動的に「ディレクトリ」に適当な名前が入力されますので、そのまま「次へ」をクリックします。

続いて表示されるDiskStation側のバックアップフォルダについては、自身で必要な場所を選択します(複数選択可)

続いてDiskStationにインストールされているアプリケーションやアプリケーションの設定をバックアップするか決められます。今回は何も選択せずに先に進みます。

バックアップタスクの名前を入力し、あとはとりあえずバックアップスケジュールと整合性チェックのスケジュール間隔を調整して、次に進みます。

バックアップローテーションを有効にすると、最大256回分のバックアップが取れるようになります。今回は特に未設定で「適用」をクリックします。

設定が全て完了すると「今すぐバックアップ?」と聞かれます。スケジュール設定した日時に開始するので良ければここは「いいえ」で良いのですが今回は今すぐバックアップします。

すぐにバックアップが開始されました。

無事バックアップが完了すると、AzureポータルからもBLOBストレージ内の指定コンテナ、ディレクトリ内にバックアップファイルと思われるファイル群が作成されていることが確認できました。

料金について

気になる料金ですが、Azureの価格表ページから確認しましょう。
今回はブロックBLOGとなります。

ブロック BLOB の価格

LRSで東日本のStandardストレージ(ホット層)の場合、保存料金としては最初の50TBまでは ¥2.24/GB となっています。

Hyper Backupはファイルを圧縮して保存していると思われるので実サイズ分かからないとは思いますが、1TB保存すると \2,200/月~ くらいでしょうか。実際には他にデータのI/O数などにも課金要素はありますが、今回は細かい計算はしていません。

転送料金については、インターネット側(自宅とか会社とか)→Azureデータセンターに入っていく通信費用は無料になるので、一方通行のバックアップであればそれほど気にする必要はなさそうです。

問題は、将来DiskStationに障害があって、Azure上に保存したバックアップからデータを書き戻す場合です。

帯域幅の料金詳細

Azureからインターネット側への転送量は最初に無料枠が5GB分あるのを除いて、最初の10TBまでは ¥13.44/GB かかります。
DiskStationに1TBの容量を転送した場合、\13,440 かかります。ちょっと小遣いからこの金額が出ていくのは厳しい感じです。

なので、バックアップからリストアする際にはそれなりの覚悟と準備をもって行うのが良いと思います。

おわりに

今回はDiskStationの標準機能だけを使って、Azure Storage(BLOB)にバックアップを取る方法を書きました。

新しいファームウェア DSM 7が登場すると、きっとAzure Storage(Files)にも簡単に接続できるようになると思います。その際には改めて記事を書きたいと思います。