2012/06/29

ZFS上にFreeBSD9.0

Filed under: FreeBSD,構築メモ — てらき at 12:31

●今回の目的
 ひかり電話契約で貰ったリサイクルPC.これをどう使おうか考えていた時に,なにやら柔軟なファイルシステムであるZFSをFreeBSDでサポートしたとの情報を入手した.ならば,ZFS上にFreeBSDのシステムをインストールして,サーバとして使い倒してみよーかと..
まずは,OSを入れる事から始めましょ.ZFSは物理パーティションがひとつでも,論理パーティションを作って,それ毎の管理・設定できるので便利かも.容量は物理で計算すればいいし..


●導入開始
1. ハード構成
 基本的にはOSをインストールするだけ.
しかし,サーバ用途にしたいので,外付けのHDD-BOXにHDDを4玉突っ込んで,RAID-Z構成も作っちゃうのだ.
FMV ESPRIMO D5220(ひかり電話契約で貰ったやーつ)
eSATA I/Fボード(REX-PCI15PM)
HDD-BOX(裸族の集合住宅)
HDD×4(WD20EARX 2TB/SATA)


2. OSインストール
 通常なら,ISOイメージからDVD焼いて,直接ぶち込めばOSのインストールは意図も簡単に終わるもんですが,今回はファイルシステムをZFSにし,その上にOSを入れたいので,手動でのガシガシ設定する必要がある.まずは,インストール先のHDDのデバイス名を確認(今回はada0)し,それに対して,手動でのOSインストールを実施する.

・物理パーティションの作成
 # umount -f /dev/md1
# mdmfs -s 512M md1 /tmp

# gpart destroy -F ada0  (※1)
# gpart create -s gpt ada0
# gpart add -b 34 -s 64k -t freebsd-boot ada0
# gpart add -s 4G -t freebsd-swap -l swap0 ada0
# gpart add -t freebsd-zfs -l disk0 ada0
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
 ※1:再利用HDDの場合,これをやらないとアサイン出来ない.

・zpoolの作成
 # zpool create zroot /dev/gpt/disk0
# zpool set bootfs=zroot zroot
# zfs set checksum=fletcher4 zroot
# zfs set mountpoint=/mnt zroot

# zpool export zroot
# zpool import -o cachefile=/tmp/zpool.cache zroot

・論理パーティションの作成
 # zfs create zroot/usr
# zfs create zroot/usr/home
# zfs create zroot/var
# zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
# zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
# zfs create -o compression=off -o exec=off -o setuid=off \
zroot/usr/ports/distfiles
# zfs create -o compression=off -o exec=off -o setuid=off \
zroot/usr/ports/packages
# zfs create -o compression=lzjb -o exec=off -o setuid=off \
zroot/usr/src
# zfs create -o compression=lzjb -o exec=off -o setuid=off \
zroot/var/crash
# zfs create -o exec=off -o setuid=off zroot/var/db
# zfs create -o compression=lzjb -o exec=on -o setuid=off \
zroot/var/db/pkg
# zfs create -o exec=off -o setuid=off zroot/var/empty
# zfs create -o compression=lzjb -o exec=off -o setuid=off \
zroot/var/log
# zfs create -o compression=gzip -o exec=off -o setuid=off \
zroot/var/mail
# zfs create -o exec=off -o setuid=off zroot/var/run
# zfs create -o compression=lzjb -o exec=on -o setuid=off \
zroot/var/tmp

・FreeBSDの展開
 # chmod 1777 /mnt/tmp
# cd /mnt ; ln -s usr/home home
# chmod 1777 /mnt/var/tmp

# sh
# cd /usr/freebsd-dist
# export DESTDIR=/mnt
# for file in base.txz lib32.txz kernel.txz doc.txz ports.txz src.txz;
> do (cat $file | tar –unlink -xpJf – -C ${DESTDIR:-/}); done

・ZFSの有効化
 # cp /tmp/zpool.cache /mnt/boot/zfs/zpool.cache
# echo ‘zfs_load=”YES”‘ >> /mnt/boot/loader.conf
# echo ‘vfs.root.mountfrom=”zfs:zroot”‘ >> /mnt/boot/loader.conf
# cat << EOF > /mnt/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/gpt/swap0 none swap sw 0 0
EOF
# echo ‘zfs_enable=”YES”‘ >> /mnt/etc/rc.conf

・マウントポイント設定
 # zfs set readonly=on zroot/var/empty
# zfs umount -af
# zfs set mountpoint=legacy zroot
# zfs set mountpoint=/tmp zroot/tmp
# zfs set mountpoint=/usr zroot/usr
# zfs set mountpoint=/var zroot/var

・再起動
 # sync;sync;sync
# reboot

これで,ZFS上にFreeBSDのシステムがインストールされました.
システム設定(NWとか)はいつも通りなので割愛!!


3. RAID-Z構築
 外付けで繋げたHDD-BOXのHDDを,RAID-Zとして構築する
デバイス名とかは,demsgで確認すればいいかと.

・パーティション作成
 # gpart create -s gpt ada1
# gpart create -s gpt ada2
# gpart create -s gpt ada3
# gpart create -s gpt ada4

# gpart add -b 128 -s 1860G -t freebsd-zfs -l zfs1 ada1
# gpart add -b 128 -s 1860G -t freebsd-zfs -l zfs2 ada2
# gpart add -b 128 -s 1860G -t freebsd-zfs -l zfs3 ada3
# gpart add -b 128 -s 1860G -t freebsd-zfs -l zfs4 ada4

# gpart show
=>       34  160086461  ada0  GPT  (76G)
         34        128     1  freebsd-boot  (64k)
        162    8388608     2  freebsd-swap  (4.0G)
    8388770  151697725     3  freebsd-zfs  (72G)

=>        34  3907029101  ada1  GPT  (1.8T)
          34          94        – free –  (47k)
         128  3900702720     1  freebsd-zfs  (1.8T)
  3900702848     6326287        – free –  (3.0G)

=>        34  3907029101  ada2  GPT  (1.8T)
          34          94        – free –  (47k)
         128  3900702720     1  freebsd-zfs  (1.8T)
  3900702848     6326287        – free –  (3.0G)

=>        34  3907029101  ada3  GPT  (1.8T)
          34          94        – free –  (47k)
         128  3900702720     1  freebsd-zfs  (1.8T)
  3900702848     6326287        – free –  (3.0G)

=>        34  3907029101  ada4  GPT  (1.8T)
          34          94        – free –  (47k)
         128  3900702720     1  freebsd-zfs  (1.8T)
  3900702848     6326287        – free –  (3.0G)

・RAID-Z化
 # zpool create storage raidz gpt/zfs1 gpt/zfs2 gpt/zfs3 gpt/zfs4
# zpool status
  pool: storage
 state: ONLINE
 scan: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        storage       ONLINE       0     0     0
          raidz1-0    ONLINE       0     0     0
            gpt/zfs1  ONLINE       0     0     0
            gpt/zfs2  ONLINE       0     0     0
            gpt/zfs3  ONLINE       0     0     0
            gpt/zfs4  ONLINE       0     0     0

errors: No known data errors

  pool: zroot
 state: ONLINE
 scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          ada0p3    ONLINE       0     0     0

errors: No known data errors

んー,以外に簡単に出来ちゃった..w


●参考にしたもの
 FreeBSD – でV型八磁筒RAID-Z2(笑)
FreeBSD:FreeBSD9.0(amd64) on ZFS


●改版履歴
 
2012.06.29  初版


TrackBack URL : http://blog.prism-r.com/wp-trackback.php?p=1263

2 Comments »

  1. […] 徒然なるままに » ZFS上にFreeBSD9.0 […]

    ピンバック by NAS 用マシンを自作してみる (3) —FreeBSD on ZFS— | 澍法雨 — 2012/11/27 @ 23:30

  2. […] 徒然なるままに » ZFS上にFreeBSD9.0 […]

    ピンバック by NAS 用マシンを自作してみる (5) —ZFS RAID-Z とパフォーマンス— | 澍法雨 — 2013/01/01 @ 20:04

RSS feed for comments on this post.
TrackBack URI : http://blog.prism-r.com/wp-trackback.php?p=1263

Leave a comment