QNAP -> FreeNASへrsyncで定期自動バックアップする方法

バックアップFreeNAS,QNAP,rsync

NASサーバ にバックアップが必要な理由

NASサーバを書き込み分散系の『RAID5(パリティディスク分散)』や『RAID0(ストライピング)』で運用するケースは多いと思いますが、それだけでは、万が一NASサーバが故障した際、RAID済みのディスクからデータを復旧することは非常に困難になります。

例えば、RAID5の場合、HDDの故障一本までなら復旧は可能ですが、NASサーバ自体が故障した場合、無事なHDDを新しいNASサーバに組み込んだとしても、以前のRAID5状態を継続することできず、基本的には新規でRAID5を組むことになり再フォーマットが必要になります。

NAS故障の対策

そのため、メインのNASサーバ上のデータを、バックアップ用のNASサーバに定期バックアップします。

そして、万が一メインのNASサーバが故障しても、バックアップ用のNASサーバからデータを抽出することができる状態にしとくことが重要です。(最近ではバックアップ先にAWSのAmazon S3 Glacier等のパブリッククラウドにするケースもあります)

当然ですが、NASサーバの用意やHDDがメイン以上のサイズで用意する必要があるのでコストは増します。

今回やること

メインのNASサーバをQNAP、バックアップのNASサーバをFreeNASにして、rsyncによる定期自動バックアップの設定と動作確認をします。

FreeNASとは

FreeNASとはUNIXベースの高機能なNAS機能に特化したOSです。GUIによる操作が可能でフリーソフトウェアです。(※ライセンスはBSDライセンス)一般のPC上にインストールすることも可能ですが、当方はESXi上でデプロイしています。

また、今回QNAPとFreeNASの組み合わせにした理由ですが、メインとバックアップを同じソリューションにするとOSやソフトウェアのバグが原因で同じタイミングで共倒れする可能性があることを考慮し、あえて別ソリューションで組みます。
障害や不具合が発生しても完全性が求められるストレージなので、手間ではありますがあえて別の製品を選びました。(FreeNAS自体は費用が発生しない点もGoodです。)

環境について

今回のNASの環境です。

NAS用途機種情報OSバージョンrsyncする側/される側
メインNASQNAP TS-431P4.4.3.1354rsyncする側
バックアップNASFreeNAS11.3-U3.2rsyncされる側

前提条件

以降でrsyncの組み方を説明しますが、下記の設定は完了しているものとします。

  • QNAPもFreeNASも基本構築までは完了していること。(例えば、ネットワーク回りやRAIDの構築、ストレージプールの用意など)
  • QNAPとFreeNAS間はrsyncで使用するTCP873によるネットワークの到達性があること。

rsync設定手順

FreeNAS

FreeNASの設定から説明します。

まず、『ストレージ→プール』からrsync用のプールを作成します。当方は「FreeNAS-rsync-backup」フォルダを作成し、このフォルダにバックアップします。

『ストレージ→プール→Edit Permissions』からアクセス権限を設定します。Otherのすべてにチェックを入れ、保存します。

『サービス→Rsync→Rsync Module→Edit』からrsync対象のフォルダを指定し、保存します。(その他の設定はお好みで設定)

『サービス』からRsyncのRunningとStart Automaticallyを有効にします。

FreeNASの設定は以上です。次にQNAPの設定を説明します。

QNAPの設定

QNAP側でrsyncの設定を行います。まず、下記のように三本線から「Backup Station」を開きます。

次に、下記の画像の①~②を押していきます。③は任意の名称を付けます。④を押すと「設定」の画面が開きます。

「設定」の画面が開いたらFreeNASのIPアドレスやアカウント情報、ポート番号を入力します。(rsyncのデフォルトポート番号は873)
設定情報を入力したら『テスト』を押下し平均送信時間が表示されることを確認します。もし、ここで平均送信時間が表示されない場合はrsync接続ができていません。
問題なければ適用します。

前の画面に戻ったら、『ソースフォルダー』と『宛先フォルダー』で、コピー元とコピー先のフォルダを指定し『追加』します。

『オプション』は基本的にデフォルトで問題ありませんが、当方は「リモート宛先の余分なファイルを削除する」にチェックを入れました。
チェックを入れなかった時の動作は、例えば、Aフォルダ内にZファイルが存在した状態でrsyncによるバックアップが行われた後、ZファイルをBフォルダに移動したとします。この場合、AフォルダにZファイルが残り、BフォルダにもZファイルが存在することになります。但し、チェックを入れると、AフォルダからZファイルを削除し、BフォルダのみにZファイルが存在するようになります。つまり、チェックを入れることでファイルの多重化を防ぎます

『バックアップ周期』はrsyncの実行間隔です。当方は週単位にしています。

ここまで設定が終わったら『適用』を押します。

rsync実行

rsyncの設定が完了したら、アクションの実行ボタンを押しrsyncを実行します。ステータスに進捗率などが表示されます。最終的にステータスは「完了 (yyyy/mm/dd hh:mm)」になります。

rsyncが問題なければ、最後に『バックアップ周期』が走るようにアクション右側のボタンを押しときます。(有効化になると禁止マークがつきます。)これで、周期的にバックアップをするようになります。

動作確認

全体コピーの確認

下記の上のウインドウがQNAPでコピー元となるメインのNASです。下のウインドウがFreeNASでコピー先となっているバックアップのNASです。正常にフォルダ構成やファイルが同期されていることが確認できました。

ファイルの移動確認

次に「qnap-str」フォルダにあったtestfile.txtを「TEST」フォルダに移動し、rsyncを実施しFreeNAS側でも同様に移動していることを確認します。

QNAPに戻り、rsyncの実行をします。

FreeNAS側の下のウインドウを確認すると、正常にTESTフォルダが作成されtestfile.txtが移動されていることが確認できます。

削除確認

次に削除確認です。メインのQNAP(上のウインドウ)からTESTフォルダを削除しました。FreeNAS(下のウインドウ)にはまだTESTフォルダがあります。

この状態でrsyncを実行します。

FreeNASからTESTフォルダが削除されていることが確認できました。

ファイルの更新確認

QNAP側もFreeNAS側もtestfile.txtに「aaa」という文字が書かれているファイルが存在します。

QNAP(上のウインドウ)のtestfile.txtのみ「aaabbb」に更新します。

その状態でrsyncを実行します。

FreeNAS(下のウインドウ)のtestfile.txtを開き直してみると、内容が「aaabbb」と正常に更新されていることが確認できました。

以上でQNAPとFreeNASのrsyncによる設定を終わります。

まとめ

今回の記事で説明した内容についてまとめます。

  • NASサーバ単独ではデータ損失をする可能性があることを説明しました。また、対策方法についても説明しました。
  • バックアップ用NASとなるFreeNASのrsync設定について説明しました。
  • メイン用NASとなるQNAPのrsync設定方法について説明しました。
  • rsyncを実行し、動作確認(フォルダやファイルのコピー、ファイル移動、ファイル削除、ファイル更新)をしました。

以上です。