「究極のファイルシステム」ZFSをLinuxに載せてみます、究極ですよ究極!
なお、「究極」と謳うのは下記記事です:
http://www.atmarkit.co.jp/fserver/articles/zfs/01/01.html
http://ja.wikipedia.org/wiki/ZFS
※過負荷も究極だったりするので負荷管理は要注意です。
【料理】(目標)
今回は以下の図に示すスナップショットの実装を目指します。
【素材準備】(環境準備)
ソースからインストールパッケージを作成してからインストールするという変わった手順ですので、本件の手順は類似環境でないと上手くいきません。
ツール本家サイト:http://zfsonlinux.org/
利用するLinux:(CentOS 6.2) [2.6.32-220.23.1.el6.x86_64]
※カーネルバージョンも注意です和牛じゃないとダメです
yum install redhat-lsb #最小インストールしていたためツール不足gccとか
yum install mdadm #ツール不足コンパイル時に必用
yum update kernel-2.6.32-220.23.1.el6.x86_64 #和牛
【調理】(以下本家、手順通り)
yum install kernel-devel zlib-devel libuuid-devel libblkid-devel libselinux-devel parted lsscsi
yum groupinstall “Development Tools”
wget http://github.com/downloads/zfsonlinux/spl/spl-0.6.0-rc9.tar.gz
tar xfvz spl-0.6.0-rc9.tar.gz && cd spl*9
./configure && make rpm
rpm -Uvh *.x86_64.rpm
wget http://github.com/downloads/zfsonlinux/zfs/zfs-0.6.0-rc9.tar.gz
tar xfvz zfs-0.6.0-rc9.tar.gz && cd zfs*9
./configure && make rpm
rpm -Uvh *.x86_64.rpm
【味見】(動作確認)
modprobe zfs #エラーでなければ良し、エラーでたので本件では再起動で対応
lsmod | grep -i zfs #以下のような出力が出ていればOK
zfs 1038053 0
zcommon 42478 1 zfs
znvpair 47487 2 zfs,zcommon
zavl 6925 1 zfs
zunicode 323120 1 zfs
spl 210887 5 zfs,zcommon,znvpair,zavl,zunicode
【完了】
【食す】(実動作検証)
zpool create zfspool mirror xvdb xvdc #貯水池作成
zpool status -v #状態確認
zfs create zfspool/data #ディレクトリマウント
zfs snapshot zfspool/data@monday #スナップショット作成
zfs list #スナップショットが一覧に出力されるはずがされないバグ?
ls -l /zfspool/data/.zfs/snapshot/ #スナップショットの保管場所確認
作ったディレクトリ上でファイル生成やらゴチャゴチャ
zfs rollback zfspool/data@monday #ロールバック!ゴチャゴチャが全部消える
※色々なツールで存在する便利なスナップショットの注意点ですが、原理としてはバイナリ変更が発生すると変更前の状態をリアルタイムで記録しています、要は記憶装置への2重書き込みが発生するので負荷注意です。
By Takahiko Sugiyama