2010年8月8日日曜日

スナップショットからリストアする時はディスク負荷に注意


このエントリーをはてなブックマークに追加


 NASとかによくあるスナップショット機能。ちっちゃいファイルを戻すには便利だけど、巨大なファイルや大量のファイルをリストアする場合は注意が必要。

 書き込み負荷 = 1
 読み込み負荷 = 1
 スナップショット維持コスト = 1

の場合、普通に使うだけなら常に負荷1~2なのであんまり問題ない。

 しかし、スナップショット領域から、元の領域へ巨大なファイルを戻そうとすると。

 スナップショットを読み込む・・・1
 それを元の領域に書き込む・・・1
 書き込みによって生じるスナップショット維持コスト・・・1

となり、合計負荷が3になる。小さいファイルなら問題ないあが、巨大なファイルでは顕著にリストア時間に差が出てくる。100MB/sでReadできるNASでも、この方法だと、単純計算でも33MB/sまで落ちることになるが、実際はもっと落ちる。この3つのアクションは完全に単一ボリュームへのランダムアクセスになるので転送速度は1/5~1/20まで落ちると考えた方が良い。VMwareやKVM等の巨大な領域をリストアする場合はリストアスケジュールを事前に考えておこう。

 こういう状態を回避するために、NAS製品では良くスナップショットを実ボリュームと入れ替えてしまうオプションがある場合もある。もし使えるなら有効活用しよう。

結論を言うと、ZFSのスナップショット最強ってことで。