話題のZFSファイルシステムですが、ZFSを使ってみたかったので、8.1をセットアップしてみました。
導入時、それなりに苦労がありましたので、備忘録として、記録しておきます。
大雑把に手順を説明しておきます。
bootとrootパーティションを分けてインストールします。
bootは、ミラーを行いufsとして運用します。
rootは、zfsとして運用します。
bootをミラー化する為に別のドライブから起動をかけてgmirror化します。
rootは、一旦、ufsにインストールして、zfsにコピーします。
以上です。
前提
まず、ZFSは、Googleやwiki等で調べてもらうとわかるのですが、基本的に次世代ファイルシステムということで、大量のメモリと64BitOSを前提としています。
そこで、FreeBSDは、amd64版をチョイスしました。
当方のサーバは、基本的にUSBメモリで運用することを前提としていますので、rootパーティションをUSBメモリに導入しなければなりません。
かといって、USBメモリで、通常のインストールを行うと時間がかかりすぎるので、基本的なインストールをHDDディスクで行い、後でUSBメモリに移す方法を取ります。
HDDディスクは、2つ必要となります。 VMWareでインストールこともできます。 <-おすすめ
準備
HDD(A)に3.9Gのパーティションを2つ作り、そこに1つ目のパーティションに最小構成で、インストールを行います。
次に別のHDD(B)を用意し、1.8Gのパーティションを作り、そこにカーネルのみで、インストールを行います。
bootのミラー化
ブートパーティションをmirrorにしたいので、HDD(A)で起動し、HDD(B)をmirror化します。
kldload geom_mirror.ko
gmirror label -b round-robin gboot ad1s1
gmirrorをカーネルロードする為に、loader.confを編集します。
/boot/loader.conf
geom_mirror_load="YES" <-追加
rootパーティション
HDD(A)で起動しているので、/bootを別名にして、空の/bootを作成しておきます。
HDD(B)を適当なパス(/mnt/bootdisk等)にマウントして、/bootをHDD(B)の/bootにリンクしておきます。
mv /boot /boot.bak
mkdir /boot
mkdir /mnt/bootdisk
mount /dev/mirror/gboot /mnt/bootdisk
ln -s /mnt/bootdisk/boot /boot
次に、/etc/fstabを編集します。
/dev/mirror/gboot /mnt/bootdisk ufs rw 1 1 <- 最後に追加します。
ZFSのマウントを有効化する為にrc.confを編集します。
zfs_enable="YES"
ZFS作成
いよいよ、zfsの作成です。
HDD(A)の2つめのパーティションをzfsとして作成し、rootファイルを豪快にコピーします。
zpool create zroot /dev/ad0s2
zfs create zroot/rootzone
cp -Rp / /zroot/rootzone/
としても良いですが、ちゃんと、一つずつディレクトリをコピーした方が良さそうです。
zfsをルートマウントする為にloader.confを編集します。
/boot/loader.conf
zfs_load="YES"
vfs.root.mountfrom="zfs:zroot/rootzone" <-追加
既存のrootをマウントしないようにfstabを編集します。
/mnt/bootdisk/etc/fstab
#/dev/ad0s1a / ..... <-[/]マウントの記述の先頭に[#]を付けてコメントアウトします。
/etc/fstabも編集しておきます。
#/dev/ad0s1a / ..... <-[/]マウントの記述の先頭に[#]を付けてコメントアウトします。
これで、HDD(B)から起動をかければ、zfsをrootとして、起動します。
簡単ZFSルート
- 詳細
- カテゴリー: FreeBSDとLinux
- 参照数: 7275
1 / 2