- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!設定・コマンドサンプル
!コピー増加
*特定の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
*http://www.sun.com/bigadmin/hubs/multilingual/japanese/content/zfs-source.jsp
!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
*後藤大地さん
*http://gihyo.jp/admin/clip/01/fdt/201109/20
""実証実験をしていないので確かなことはわかりませんが,前回のような問題が発生したようなケースは「zdb -AAA プール」で修正が可能なようです。
!2011年9月21日 ZFS活用シリーズ - scrubで直らない問題の修正(zdb - 状況調査編) / FreeBSD Daily Topics
*http://gihyo.jp/admin/clip/01/fdt/201109/21
""対象となるプールがパニックを誘発する状態にあるかどうかは次のように「zdb -e プール」で調査することができます。
!2011年9月22日 ZFS活用シリーズ - scrubで直らない問題の修正(zdb - 修復編)/ FreeBSD Daily Topics
*http://gihyo.jp/admin/clip/01/fdt/201109/22
""「-AAA」はすべての処理を実施しようとします。通常は次のようにデータブロックとメタデータプロック,メタラベル,ブロック統計データあたりをチェックするようにするだけで十分でしょう。
# zdb -cc -b -m -e zpool
!優雅な生活の設計と実装
*http://www.allbsd.org/~hrs/diary/201109.html#d2301
*zfs についての詳細
!ZFS Internals (part #11) / Marcelo Leal blog
*http://www.eall.com.br/blog/?tag=zdb
!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]
!Troubleshooting ZFS Issues and Recovering ZFS Data / Oracle Solaris 10 ZFS Administration
*http://solaris-training.com/classp/2290_HTML/mod07.htm
*zfs に関するリンク集