zfs
設定・コマンドサンプル
コピー増加
- 特定のzfsの領域について、データのコピー数を増加させることでデータの安全性を増加させる。
- 使用領域の消費が増える。
- スピードが減少する。
zfs create -o copies=3 zfsname/dirname
FreeBSD ZFS RAIDZ 拡張
概要
- FreeBSD-8-stable
- 作業前 2T 5本 RAIDZ1 総容量8T
- 作業後予定 2T 10本 RAIDZ2 総容量16T
- 最低HDD1本の冗長度を維持する
- 移行元 zpool 確認: tank raidz1 ad6 ad10 ad16 ad22 ad26 (すべて2Tの RAIDZ1)
- 移行先ディスクの追加: ad4(1T) ad8(1T) ad12(500G) ad20(1T) ad24(1T) +新規追加 HDD4本 (DEGRADED RAIDZ2)
作業記録
- RAIDZ2 ダミーファイルの準備(sparse ファイルの作成、見かけは1T 実質64k)
# dd if=/dev/zero of=/tmp/file1T count=0 bs=65536 seek=16777216 # ls -l /tmp/file1T -rw-r--r-- 1 root wheel 1099511627776 Oct 11 16:59 /tmp/file1T # du /tmp/file1T 64 /tmp/file1T
作業予定
- 1HDD破損の RAIDZ2 作成
zpool create newtank raidz2 ad4 ad8 ad12 ad20 ad24 .. .. .. .. /tmp/file1T
- ダミーファイルの raidz2 からの除去
zpool offline newtank /tmp/file1T
- zfs send のための snapshot 作成
zpool snapshot -r tank 20112233
- zfs send+receive で内容コピー
zfs send -R tank@20112233 | zfs recv -F -d newtank
- zfs 破棄
zfs destroy tank
- ダミーファイル分の修復
zfs replace newtank /tmp/file1T ad6
- 500G と 2T のHDD入れ替え
zfs replace newtank ad12 ad10
参考サイト
ZFS ソースツアー / BigAdmin System Administration Portal / Sun
ZFSでmirror→RAID-Zに変更する手順の作業ログ / とある技術屋の戯言
- http://www.sonorilo.net/2010/07/07/2735
- opensolaris
- 以下は主要部分のみ抽出、オリジナルには重要なエラーや対応方法が存在
ディスク代わりに使うsparse fileを作って
# mkfile -n 2g /tank/file
RAID-Zの"newtank"を作成。サイズが違うと怒られるので-fを使う。
# zpool create -f newtank raidz c8t3d0 c8t4d0 /tank/file
すぐにディスク代わりのファイルはオフラインにする
# zpool offline newtank /tank/file
zfs sendのためのsnapshot作成
# zfs snapshot -r tank@a
zfs send/recvで転送。
# zfs send -R tank@a | zfs recv -F -d newtank
tankを削除
# zpool destroy tank
ミラーの片割れだったc8t2d0をnewtankに組み込み。データがいっぱいあったらリビルドに時間がかかるでしょう
# zpool replace newtank /tank/file c8t2d0
newtank→tankに名前を変更。
# zpool export newtank # zpool import newtank tank
2011年9月20日 ZFS活用シリーズ - scrubで直らない問題の修正(zdb版) / FreeBSD Daily Topics
実証実験をしていないので確かなことはわかりませんが,前回のような問題が発生したようなケースは「zdb -AAA プール」で修正が可能なようです。
2011年9月21日 ZFS活用シリーズ - scrubで直らない問題の修正(zdb - 状況調査編) / FreeBSD Daily Topics
対象となるプールがパニックを誘発する状態にあるかどうかは次のように「zdb -e プール」で調査することができます。
2011年9月22日 ZFS活用シリーズ - scrubで直らない問題の修正(zdb - 修復編)/ FreeBSD Daily Topics
「-AAA」はすべての処理を実施しようとします。通常は次のようにデータブロックとメタデータプロック,メタラベル,ブロック統計データあたりをチェックするようにするだけで十分でしょう。
# zdb -cc -b -m -e zpool
優雅な生活の設計と実装
ZFS Internals (part #11) / Marcelo Leal blog
zdb: Examining ZFS At Point-Blank Range / Cuddletech by Ben Rockwood
- http://cuddletech.com/blog/pivot/entry.php?id=980
- zdb を利用したデータの抽出法
- zdb -dddd でオブジェクトIDを把握
zdb -dddd [pool]
- zdb -ddddd で DVA とサイズを把握
zdb -ddddd [pool] [objID]
- zdb -R でデータを確認
zdb -R [DVA]
- zdb -R :r でデータを抽出
zdb -R [DVA]:r 2>[output]