2009-10-08
ZFSのスナップショットの領域(削除時の解放領域の見積)
メーローが上空を通過しておりますが。(関係ない
ZFSのスナップショットはLVMとは違い、事実上無制限に取得することができます。
ZFSスナップショットの概要 - http://docs.sun.com/app/docs/doc/819-6260/gbciq?l=Ja&a=view
しかし、空き領域の消費のされ方がイマイチ不明で、それによって現在の消費済みの領域や、スナップショット削除時に解放される領域の見積がわからず、意外にコントロールしづらいです。
操作テストも兼ねていろいろ試してみました。
結論
現在の消費済み領域は、スナップショットでない行のUSED列です = スナップショットで無い行のAVAIL列の値が、残りサイズになります。これはスナップショット有無は関係ありません。監視するなら、この値を監視しましょう。
また、スナップショット削除時に解放されるサイズは、スナップショット行のUSED列です。(のようです。)
ちなみにスナップショットか否かを判断する簡単な方法は、NAME列に"@"が入っていればスナップショットです。
のようです = REFER列がどのように影響しているのかわからないので、もしかすると違うかも。たぶん読み方/計算方法はあるのだと思いますが、、、わからん orz
論より実行
テスト用のデータを用意
sol10# mkdir /tmp/split_file sol10# cd /tmp/split_file sol10# cat /dev/urandom | split -b 100m -a 1 - "" ### 30秒ほど待ってから Ctrl+C sol10# ls -lFh total 400M -rw-r--r-- 1 root root 100M 2009-07-02 16:40 a -rw-r--r-- 1 root root 100M 2009-07-02 16:40 b -rw-r--r-- 1 root root 100M 2009-07-02 16:40 c -rw-r--r-- 1 root root 100M 2009-07-02 16:40 d
(余分なファイルは削除したよ)
ZFSボリューム作成
sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.3G 846G 9% ONLINE - sol10# zfs create rpool/sn_test sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 18K 827G 18K /rpool/sn_test
新規ファイルを追加
sol10# cd /rpool/sn_test/ sol10# cp /tmp/split_file/a ./ sol10# ls -lFh total 101M -rw-r--r-- 1 root root 100M 2009-07-02 16:43 a sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.4G 846G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 100M 827G 100M /rpool/sn_test
snapshotを作成
sol10# zfs snapshot rpool/sn_test@0 sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.4G 846G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 100M 827G 100M /rpool/sn_test rpool/sn_test@0 0 - 100M -
新規ファイルを追加
sol10# cp /tmp/split_file/b ./ sol10# ls -lFh total 201M -rw-r--r-- 1 root root 100M 2009-07-02 16:43 a -rw-r--r-- 1 root root 100M 2009-07-02 16:47 b sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.5G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 200M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M -
snapshotを作成
sol10# zfs snapshot rpool/sn_test@1 sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.5G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 200M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 0 - 200M -
aをまるまる更新
sol10# cp /tmp/split_file/c ./a sol10# ls -lFh total 201M -rw-r--r-- 1 root root 100M 2009-07-02 16:50 a -rw-r--r-- 1 root root 100M 2009-07-02 16:47 b sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.6G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 300M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M -
snapshotを作成
sol10# zfs snapshot rpool/sn_test@2 sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.6G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 300M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M - rpool/sn_test@2 0 - 200M -
aをもう一回まるまる更新
sol10# cp /tmp/split_file/d ./a sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.7G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 400M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M - rpool/sn_test@2 100M - 200M -
snapshotを作成
sol10# zfs snapshot rpool/sn_test@3 sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.7G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 400M 827G 200M /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M - rpool/sn_test@2 100M - 200M - rpool/sn_test@3 0 - 200M -
a、bを削除
sol10# rm a b sol10# ls -lFh total 0 sol10# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT rpool 931G 85.7G 845G 9% ONLINE - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 400M 827G 18K /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M - rpool/sn_test@2 100M - 200M - rpool/sn_test@3 100M - 200M -
snapshotを削除していってみる
sol10# zfs destroy rpool/sn_test@2 sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 300M 827G 18K /rpool/sn_test rpool/sn_test@0 17K - 100M - rpool/sn_test@1 16K - 200M - rpool/sn_test@3 100M - 200M - sol10# zfs destroy rpool/sn_test@1 sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 300M 827G 18K /rpool/sn_test rpool/sn_test@0 100M - 100M - rpool/sn_test@3 200M - 200M - sol10# zfs destroy rpool/sn_test@0 sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 200M 827G 18K /rpool/sn_test rpool/sn_test@3 200M - 200M - sol10# zfs list -r rpool/sn_test NAME USED AVAIL REFER MOUNTPOINT rpool/sn_test 18K 827G 18K /rpool/sn_test
途中のスナップショット(例だと@2)から削除できるんですね。これは便利かもしれません。たとえば、毎日取得していたが、月が変わったので月初のデータだけで良い、なんて時には、使える機能です。
以上、試してみましたが、REFER列の意味がやっぱりわかりません。
REFERの読み方、知っている方、教えてください。ノシ
トラックバック - http://d.hatena.ne.jp/fujisan3776/20091008/1254968406
リンク元
- 7 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=tmo&q=chrome+10/8&btnG=検索&lr=lang_ja
- 6 http://googlejapan.blogspot.com/2009/10/google-chrome.html
- 4 http://www.google.co.jp/search?hl=ja&lr=lang_ja&client=firefox-a&rls=org.mozilla:ja:official&hs=vp4&q=puk認証+softbank&revid=167583659&ei=6lzNSu7_J8SGkQWEtO3yAw&sa=X&oi=revisions_inline&resnum=0&ct=top-revision&cd=1
- 4 http://www.google.co.jp/search?q=s9-HD+iPhone&ie=UTF-8&oe=UTF-8&hl=ja&client=safari
- 4 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4ADBF_jaJP237JP237&q=pin+認証
- 3 http://www.google.co.jp/search?hl=ja&q=S9-HD&lr=lang_ja
- 2 http://mail.ed.cc.suzuka-ct.ac.jp/webmail/source/read_message.php?user=1254971614_31937&id=166&uid=170
- 2 http://search.yahoo.co.jp/search?p=softbank+puk認証&rs=0&ei=UTF-8&qrw=0&yuragi=off
- 2 http://twitter.com/ma2shita
- 2 http://www.bing.com/search?q=USIM+ロック解除方法&first=11&FORM=PERE
