2009年11月19日木曜日

ZFSに、直近書き込み内容をロールバックする機能が搭載された?

マイコミジャーナルで先日掲載されていた「ZFSにはfsckが必要?」で ZFS にも fsck 的なツールが必要ではないかというお話が書かれていましたが、今日なんとなく ZFS のソースコードを見ていて目にとまったネタがあるので紹介します。


http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/zpool/zpool_main.c


   1556 /*
   1557  * zpool import [-d dir] [-D]
   1558  *       import [-o mntopts] [-o prop=value] ... [-R root] [-D]
   1559  *              [-d dir | -c cachefile] [-f] -a
   1560  *       import [-o mntopts] [-o prop=value] ... [-R root] [-D]
   1561  *              [-d dir | -c cachefile] [-f] [-n] [-F] <pool | id> [newpool]
   (..snip..)
   1582  *       -f Force import, even if it appears that the pool is active.
   1583  *
   1584  *       -F     Attempt rewind if necessary.
   1585  *

zpool import コマンドのオプションとして、必要であれば rewind するというオプションができたようです。細かくは語られていませんが、おそらく ZFS の領域を正しくマウントできなかった場合に、いくらか直近の書き込みをロールバックしてマウントを試みる機能のように思われます。

現状 zpool import でインポートできない ZFS プールを復旧する手段は特に用意されていないようですが、この rewind オプションに対応した ZFS モジュールとコマンドが一般的に使えるようになれば、RAID やライトキャッシュのせいでインポートできなくなった ZFS プールに対する手段となるのかもしれません。


というわけで OpenSolaris に最新の ONNV を適用する方法について調査中な私でした。


0 件のコメント:

コメントを投稿