カスタム検索

2015年08月16日

UFSからZFSへの移行 その3

また、大分間が開いてしまいましたが、続きです。
とりあえず、1本目のHDDに移行テスト用の環境が整ったので、
2本目のHDDにZFS with geli on rootの環境を作成して、移行することにします。
仮想環境のHDDはAFTではないのですが、ホストのHDDがAFT仕様のため、4Kセクタ向けに設定していきます。
なお、2本目のHDDは/dev/ada1に割り当てられています。
まずは、GPTでパーティションを作成してbootcodeを書き込みます。
# gpart -s gpt ada1
# gpart add -a 4k -t freebsd-boot -s 512k -l boot0 ada1
# gpart add -a 1m -t freebsd-zfs -s 4g -l zboot0 ada1
# gpart add -a 4k -t freebsd-swap -s 4g -l swap0 ada1
# gpart add -a 4k -t freebsd-zfs -l zroot0 ada1
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada1
gpart
アライメントを4KBにして、パーティションを作成しておきました。bootcodeもZFS用のものを書き込んでおきます。
続いて、geli keyfileを現在の/boot/keys内に作成します。
keyfileの長さは諸説あるようですが最終的にパスワードと連結されて鍵導出関数にかけて、マスターキーの暗号化に使用されるので、とりあえず64バイトもあれば十分と判断しましたわーい(嬉しい顔)
実際に4KBでやってみましたが、アタッチの際に鍵導出関数の計算時間の為か、時間がかかるようになってしまいましたふらふら
今回の仮想環境ではAFTのエミュレートができないため、
ブート用のプールはgnopを使用して4Kセクタ対応とします。また、rootはgeliにて4Kセクタにしますので特に問題ありません。
というわけで、ブート用とルート用のプールを作成します。
ブート用プールのみ1度exportしてgnopデバイスを解除しています。
どちらのプールもマウントしないようmountpointはnoneにしておき、altroot=/mntにしておきます。 また、atimeをoffにして、compressionをlz4にしておきました。
追記 後メモリ節約のためブート用のプールは、キャッシュをメタデーターのみとしておきました。
# gnop create -S 4096 gpt/boot0
# geli init -s 4096 -K /boot/keys/ada0.key -b /dev/ada1p4
# geli attach -k /boot/keys/ada0.key /dev/ada1p4
# zpool create -m none -o altroot=/mnt zboot /dev/gpt/zboot0.nop
# zpool create -m none -o altroot=/mnt zroot /dev/ada1p4.eli
# zpool export zboot 
# gnop destroy gpt/zboot0.nop
# zpool import -o altroot=/mnt zboot
# zfs set compression=lz4 zboot
# zfs set compression=lz4 zroot
# zfs set atime=off zboot
# zfs set atime=off zroot
# zfs set primarycache=metadata zboot
# zfs set secondarycache=metadata zboot
ZFS gnopZFS gpool create
スクリーンショットは、コマンドの打ち間違え等による余計な部分がありますが、気にしてはいけませんわーい(嬉しい顔)
では、いよいよfile systemを作成するのですが、長くなったので続きます。
posted by にゃおたん at 07:51| Comment(0) | TrackBack(0) | PC
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/161629743
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック