« QNAP TS-419P II で遊ぶ | トップページ | QNAPでanonymous rsync server »

2013.03.11

QNAPでTimeMachineもどき

QNAP導入の続き。

今回のNAS導入の主目的はLinuxやWindowsからのデータのバックアップ。 HDのトラブル対策として、これまでは単純にrsyncやBackupを 使ってMirroringをしていたのだが、ユーザーが元ファイルを誤って消してしまうとバックアップも消えてしまうので データ消失の危険は常に残っていた。MacのTimeMachineは便利だと思っていたので、 QNAPの中身がLinuxと判った時にNAS側で似たようなことをしようと思い立った。

rsync --link-destを使えば良いことは解っていたが自前で実装するのは面倒だったので、先達の知恵を借りることにした。 rsnapshotという便利なものがあるじゃない。 更にQNAPでrsnapshot使うための方法まで用意されていた。 実は、QNAPediaにはRsnapという rsnapshotのGUIも(betaながら)用意されていたのだが、これには気が付かなかった。betaが取れたら入れ直すかも。

Home >> Applications >> QPKG >> Available >> More から Optware IPKG をインストール。
Home >> Applications >> QPKG >> Installed >> Optware の下のリンク(http://NAS:80/Optware/)を辿り、 何も指定せずにQueryボタンを押すと大量のパッケージが表示される。rsnapshotをインストールすると rsyncやsshも同時に入る。これらは/optの下にインストールされるようだ。

Windowsデータは\\NAS\Publicにバックアップすることとし、そこに保存されたデータをrsnapshotで保全することにした。 /Public/xxx → /Snapshots/daily.0/Public/xxx となるように設定する。

Home >> Access Right Management >> Shared Folders >> Shared Folders で、新たに Snapshots というShare FolderをRead-onlyで作成する。Publicに合わせてゲストアクセスも可能とした。 Public は初めからゲストを含めてRead&Writeで設定済。 これらShare Foldersは、/share の下にsymbolic linkとして作成されており、実体は /share/MD0_DATA/Public (Snapshots) だった。

/opt/etc/rsnapshot.confがrsnapshotの設定ファイルで、 rsnapshot HOWTOを(英語なので面倒だけど)よく読むこと、となっている。 けど、パッケージで入れたからかcmd_??? はそれっぽく設定されているし、 link_destも1(使う)に設定されていたので、細かな設定はdefaultで問題なしと信じることにした。 後はググって見つかったこことか ここを参考にして設定する。

\\NAS\Public\xxx → \\NAS\Snapshots\daily.0\Public\xxx となるように設定するので、こうなる。

interval       daily    7
interval       weekly   4
interval       monthly  3

rsync_short_args  -a
rsync_long_args   --delete --numeric-ids --delete-excluded

snapshot_root  /share/MD0_DATA/Snapshots/
backup         /share/MD0_DATA/Public/     /Public/
区切りはスペースでなくTAB。ディレクトリ名の最後に/を忘れない。 intervalは間隔の短いものから順に書く必要あり。3ヶ月も取っておけば十分なのでMonthlyは3とする。 rsyncのオプションから--relative (-R)を除かないと、
\\NAS\Public\xxx → \\NAS\Snapshots\daily.0\Public\share\MD0_DATA\Public\xxx となって美しくない。

Publicの中身が空/少ないうちに、/opt/bin/rsnapshot -v daily や weekly, monthly を何度か実行して動作を確認する。 最初のrsnapshot実行は全データをrsyncで複製するため時間がかかる。ので、 下記のcronを設定する前に、一度 rsnapshotを実行して daily.0 を作っておくとよい。

rsnapshotが定期的に実行されるようcrontabを設定する。 時間設定はrsnapshotの起動が monthly → weekly → daily となるようにする。 weekly, monthlyではrsyncを実行しないので、時間はあまり開けなくても大丈夫(だと思う)。

50  5  *  *  *   /opt/bin/rsnapshot daily
30  5  *  *  0   /opt/bin/rsnapshot weekly
10  5  1  *  *   /opt/bin/rsnapshot monthly

このcrontab設定を保存するのに苦労した。crontab -eで設定してもNASを再起動すると設定が消えてしまう。 QNAPedia: Add items to crontabの記述は間違っているようで、 reboot しても初期化されてないQNAP TS-109のcrontab設定 の「だが以下の方法が正解と思われる。」以下の記述が参考になった。

adminのcrontab設定は /etc/config/crontab に保存されている。 /etc/config -> /mnt/HDA_ROOT/.config/ とrebootしても消えないHDA_ROOTへリンクされている。 起動時に /etc/config/crontab から /tmp/cron/crontabs/admin へとコピーされ、 後者が crontab -e / -l で編集/表示される。 /etc/config/crontab と /tmp/cron/crontabs/admin の両方を変更して再起動したら変更が保存されていた。 片方だけではダメだった。ちなみに、crontabの記述の順序は起動時に変わってしまう。実行には影響ないが、なんとなく見た目が悪くなる。

|

« QNAP TS-419P II で遊ぶ | トップページ | QNAPでanonymous rsync server »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/122178/56931388

この記事へのトラックバック一覧です: QNAPでTimeMachineもどき:

« QNAP TS-419P II で遊ぶ | トップページ | QNAPでanonymous rsync server »