2010年3月26日 のアーカイブ

FreeBSD 7.3 amd64にアップグレードしました

2010年3月26日 金曜日

現在のiSCSIターゲット用のZFSを構成してからおよそ1年半が経過しました。
http://shell.peach.ne.jp/aoyama/archives/63

当初はFreeBSD 7.1 i386を使ってIDEディスクから起動させていました。
amd64がFreeNASを通して十分役に立つと思ったのでPAEを止めてamd64を導入しました。
※正確にはアップグレードじゃなくて新規インストール+既存設定の手動コピー/移動ですね。

現在はIDEも廃止してUSBメモリのSILICON POWER Ultima II I-Series 2GBを起動ドライブ(UFS)として使っています。
(基本的にサーバを再起動することはほぼないので、起動時間は何分かかろうと問題ない。)
さらにZFS RAIDZ2上にルートファイルシステムを構成して以下のような設定で起動しています。
(USBにCDROMから最小インストールして、それをZFSにコピーするのが簡単確実です。)

ソースから更新をかける場合は、

# make installworld
# make installkernel
# make installworld DESTDIR=/bootdir

のように、通常インストールに加えて、起動ドライブのディレクトリを指定して追加でインストールします。

/boot/loader.conf:

autoboot_delay="3"
zfs_load="YES"
kern.maxfiles="32768"
vfs.root.mountfrom="zfs:tank/root-73"

# ZFS v13
vfs.zfs.txg.timeout=10
vfs.zfs.vdev.max_pending=10

vm.kmem_size="2560M"
vfs.zfs.arc_min="1536M"
vfs.zfs.arc_max="1536M"

※追記:パラメータが良くないので修正しました。

注意点としてはマウントしているFSはzfs upgradeできない。
のでZFSプールのアップグレードはシングルモードかつUFSルートを使って起動する必要があります。
(作業自体は数秒で終わるのでシングルモードでも問題はないです)
具体的にはEscape to loader promptを選択して、OKプロンプトから

unset vfs.root.mountfrom

とすれば起動ドライブを読みに行くはず。

アップグレード後の状態はこんな感じです。

[root@hera ~]# zpool status
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2    ONLINE       0     0     0
            ad14    ONLINE       0     0     0
            ad16    ONLINE       0     0     0
            ad18    ONLINE       0     0     0
            ad20    ONLINE       0     0     0
            ad22    ONLINE       0     0     0
            ad24    ONLINE       0     0     0

errors: No known data errors
[root@hera ~]# zpool list
NAME   SIZE   USED  AVAIL    CAP  HEALTH  ALTROOT
tank  2.73T  1.79T   961G    65%  ONLINE  -
[root@hera ~]# zpool history
History for 'tank':
2008-11-14.17:24:16 zpool create tank raidz2 ad6 ad8 ad10 ad12 ad14 ad16
2008-11-14.17:24:38 zfs create tank/iscsi
2008-11-14.17:24:43 zfs create tank/samba
2008-11-14.17:24:50 zfs create tank/usb
2008-11-14.17:27:57 zfs set compress=on tank/usb
2008-11-14.17:28:19 zfs create tank/nfs
2008-11-14.17:28:31 zfs set mountpoint=/nfs tank/nfs
以下省略

[root@hera ~]# df -h
Filesystem                          Size    Used   Avail Capacity  Mounted on
tank/root-73                        578G    2.0G    576G     0%    /
devfs                               1.0K    1.0K      0B   100%    /dev
/dev/da0s1a                         1.8G    673M    1.0G    40%    /bootdir
tank/home                           586G     10G    576G     2%    /home
tank/nfs                            576G      0B    576G     0%    /nfs
以下省略

余談になりますけど、FreeBSDにはセキュリティサポート期間の違いで二種類が存在します。
今回の7.3はExtended扱いで最低2年間は保守されます。
7.2や8.0は通常なので1年のみです。
なのでサーバ用途にはExtendedをお勧めしておきます。
詳細はこちらからどうぞ。
http://www.freebsd.org/security/index.html