ニフティクラウドでrsyncを利用したバックアップを行った場合 Disk200とDisk40どちらを使うべきか?

クラウド上でサービスを提供する場合データの安全性については、ハード面のHAはサービスが提供しているため*1、アプリケーションの障害や人為的ミスによるデータ損傷に対応するためのバックアップが最低限必要になります。

co-meetingは、データベース以外のデータのバックアップは、シンプルに追加ディスクにrsync差分バックアップを数日間保持しています。
co-meetingは、ニフティクラウド上でサービスを提供していますが、ニフティクラウドはストレージに3x3重の冗長性を持たせているのでそこは信頼してバックアップファイルをS3など外部サービスに保存することは行っていません*2
また、バックアップの仕組みにはLVMのスナップショットも検討していますが、LVMの運用経験が無いため、今のところ復旧がよりシンプルで確実なrsyncを採用しています*3

では、本題。

ニフティクラウドで利用可能なストレージは以下の物があります。

rsyncは、毎時cronで実行していますが、差分のみのコピーとはいえコマンドの実行時間が短いに超したことはありません。
コストを考えなければ、Disk200を迷わず選びましょう。
ただ、Disk200は10500円/100Gbytesと結構いいお値段がします。
それに対して、Disk40は4100円/100Gbytesとお手頃価格です。

コマンドの実行は、CPU、ネットワーク、ディレクトリ/ファイルの構造にも影響されるので単純にディスクのスピードだけでは比較できません。
そこで、各ストレージに対してコマンドを実行して計測してみました。
rsyncは、Ubuntu10.04にインストールされている3.0.7を利用しています。
今回使用したデータは、約11Gバイトの大きさのco-meetingのミーティングデータです。

ローカルディスク
$ time rsync -ae "ssh -i privatekey.pem" --delete root@10.100.xxx.yyy:/path/to/source /root/test
rsync -ae "ssh -i privatekey.pem" --delete  /root/test  117.21s user 40.12s system 16% cpu 16:05.19 total

ファイルコピー後の差分同期

$ time rsync -ae "ssh -i privatekey.pem" --delete root@10.100.xxx.yyy:/add_disk/data/mtg /root/test
rsync -ae "ssh -i privatekey.pem" --delete  /root/test  1.60s user 2.96s system 1% cpu 5:35.99 total

参考までローカルディスク間で実行した場合は以下の結果になりましたので、sshニフティクラウド内のネットワークのオーバーヘッドはほぼ無いようです。

$ time rsync -ae --delete /add_disk/data/mtg /root/test 
rsync -ae --delete /add_disk/data/mtg /root/test  56.09s user 54.20s system 11% cpu 16:01.07 total

$ rsync -ae "ssh -i privatekey.pem" --delete root@10.100.37.119:/add_disk/data/mtg /add_disk2
rsync -ae "ssh -i privatekey.pem" --delete /add_disk2 1.64s user 2.36s system 1% cpu 5:04.77 total

*1:復旧できないレベルのストレージ障害を起こしたサービスもいくつかあるので他のクラウドにもデータはバックアップしたいところですが、それはコストとの兼ね合いになります

*2:元々はs3syncを使っていましたがデータ量が増えて来たため厳しくなってきました、Enterprise版は再度検討する予定です

*3:ニフティクラウドが、ディスクのスナップショット機能を提供してくれればこれらの仕組みも必要なくなりますが、追加ディスクいついては厳しそうですかね