ニフティクラウドで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