一個2900円の中古250GBHDDx5が到着。
中のヒトは日立のHTS542525K9SA00だった。
検索してみても特に何という情報もなく、普通の2007年製日立ドライブのようである。
何やらときどき「カチン、カチン」という動作音がして今すぐにでも壊れそうな感じなのだが、これで普通の状態らしい。
その他のパーツも届いて、気を取り直しマザーを
ZOTAC G43ITX-A-Eに入れ替える。
sataポート5個がとてもまぶしい。
そして、「PCI-e x1」でなく「Mini PCI-e」x1だということに今更気がついた。
無線LANが載っているわけだが、たぶん無線LANにしか使えない特殊ポートの可能性が高そう。
あと、このマザーではケースファンをPWMで制御できません。
ガッカリだ。
CPU温度はファン制御をquietの状態で40℃。
FOXCONNのマザーではsysctl dev.cpu.0.freq_levelsで電圧の確認もできていたのだが、このマザーでは-1表示になっている。
BIOSの設定がなんだかかなりややこしかったのだが、とりあえずSATAはAHCIモードにしておいた。
3.5インチベイに入れる2.5インチx4用ブラケットは、思った通りうまい具合にすっきりばっちり組み込め(ただしケース側に通常なら必要ない真ん中辺りのビス穴がなく、とりあえずは片方のみで固定)、全ての装置を組み込み完了。
さっそくDVD-RWに焼いたamd64用のFreeBSD-8.0-STABLEから起動、sysinstallのconfigure->fixitから直接HDDをいじる。
せっかく5台とも250GBにしたので、まずは5台まとめてraidz2を組んでかつ、ブートドライブにする方法をとってみる。
基本は、
http://wiki.freebsd.org/RootOnZFS/GPTZFSBoot のやり方を参考。
swapに関しては
こちらを参考。
感謝。
全ての操作をずらっと書いたものは
コチラ。
最初に各ドライブを掃除。
/devの中を見てドライブの名前っぽいのを確認。
このマシンではad4、ad6、ad8、ad10、ad12。
# gpart show ad4
で、ドライブの中身を確認。
パーティションがあれば番号を指定して削除。
# gpart delete -i 1 ad4
パーティションがなくなったら本体を掃除。
# gpart destroy ad4
以上をそれぞれのドライブについて実行。
掃除が終わったら再びcreateしてから、ブート領域とzfs領域のパーティションを切ってブートコードを入れる。
# gpart add -s 64K -t freebsd-boot ad4
# gpart add -t freebsd-zfs -l disk0 ad4
# gpart bootcode -b /mnt2/boot/pmbr -p /mnt2/boot/gptzfsboot -i 1 ad4
これもad4〜ad12まで各ドライブでやるのだが、disk0のラベル指定部分を0、1、2、3、4と数字を各ドライブで変えておく。
参考ページではここでswap領域も作っているが、今回は後でzpool上で作るので省略。
zfsのプールを作るところで、
# mkdir /boot/zfs
# zpool create zroot raidz2 /dev/gpt/disk0 /dev/gpt/disk1 /dev/gpt/disk2 /dev/gpt/disk3 /dev/gpt/disk4
# zpool set bootfs=zroot zroot
と、raidz2で統合。
壮観だ。
gptを経由せずに結合できないか試したが、operation not permittedだかでできない。
gptで起動するならこうするしかないのか。
もう少し調べて見た方がよさそうである。
この後はほぼ参考通りだが、
# zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
の部分はexec=onにしておかないと/usr/src下でビルドできなかったりするので、exec=onにする。
自分の場合はあとで気がついたので、
# zfs set exec=on zroot/usr/src
とした。
でもって、swapも作る。
# zfs create -V 4gb zroot/swap
# zfs set org.freebsd:swap=on zroot/swap
自分用のタンク領域も作る。
透過圧縮をgzip-1にしておく。
入れるデータは圧縮系のデータばかりな気もするので透過圧縮していいものかどうか微妙なところ。
# zfs create -o compression=gzip-1 -o exec=on -o setuid=off zroot/tank
# zfs set mountpoint=/tank zroot/tank
>7. Install ZFS aware /boot/loader (Required for 8.0-RELEASE and 7.{0-2}-RELEASE)
のところは8.0-STABLEなので必要なし。
/etc/fstabの設定も必要なし。
zpool.cacheのコピーは忘れるとブート時にマウントできないので必ずすべし。
で、参考通りマウントポイントの修正をして再起動、ブート直後のプローブでえらい間待たされたあげく、普通に起動した。
おめでとう。
Duke# zpool status
pool: zroot state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM zroot ONLINE 0 0 0 raidz2 ONLINE 0 0 0 gpt/disk0 ONLINE 0 0 0 gpt/disk1 ONLINE 0 0 0 gpt/disk2 ONLINE 0 0 0 gpt/disk3 ONLINE 0 0 0 gpt/disk4 ONLINE 0 0 0 errors: No known data errors
Duke# zpool list
NAME SIZE USED AVAIL CAP HEALTH ALTROOT zroot 1.13T 22.6G 1.11T 1% ONLINE -
Duke# zfs list
NAME USED AVAIL REFER MOUNTPOINT zroot 17.5G 663G 509M legacy zroot/swap 4G 667G 28.6K - zroot/tank 10.8G 663G 10.8G /tank zroot/tmp 44.7K 663G 44.7K /tmp zroot/usr 2.07G 663G 518M /usr zroot/usr/home 45.6K 663G 45.6K /usr/home zroot/usr/ports 914M 663G 807M /usr/ports zroot/usr/ports/distfiles 107M 663G 107M /usr/ports/distfiles zroot/usr/ports/packages 32.2K 663G 32.2K /usr/ports/packages zroot/usr/src 693M 663G 693M /usr/src zroot/var 105M 663G 164K /var zroot/var/crash 33.1K 663G 33.1K /var/crash zroot/var/db 104M 663G 103M /var/db zroot/var/db/pkg 828K 663G 828K /var/db/pkg zroot/var/empty 32.2K 663G 32.2K /var/empty zroot/var/log 96.5K 663G 96.5K /var/log zroot/var/mail 32.2K 663G 32.2K /var/mail zroot/var/run 92.0K 663G 92.0K /var/run zroot/var/tmp 34.0K 663G 34.0K /var/tmp
|
こんな感じ。
というわけで、DHCPの設定、cpufreq、powerdの起動設定などして基本的な整備完了。
その他、/usr/share/examples/cvsup/stable-supfileを使ってcsupで/usr/srcをアップデート、portsnapでportsの更新後、portsからnanoやらipmitoolやらbonnie++などを試しにビルドインストール、kernel の再構築などなどを粛々と遂行。
何かをインストールした後はrehashを忘れずに。
ちなみに、ビルド中に5台のHDDのうち一本の信号ケーブルを試しに引っこ抜いてみたが、当たり前にそのまま平気で動き続けた。
ただ、差し直してもホットスワップに対応してないのかremovedのままで、再起動しないと引っこ抜いたドライブは復帰しなかった。
sataのホットプラグの具合をよくわかってないので詳細不明。
何はともあれこりゃ強いサーバである。
気になる速度の方だが、一応bonnie++を取ってみた。
C2D E6300
FOXCONN G41S-K 1GB RAM
2.5inch 5400rpm HDD x1 UFS
| Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
mine 2G 401 99 38550 14 16470 10 723 99 39910 12 130.4 14
Latency 155ms 335ms 753ms 63733us 72525us 4593ms
Version 1.96 ------Sequential Create------ --------Random Create--------
mine -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 17995 71 +++++ +++ +++++ +++ 23435 53 +++++ +++ +++++ +++
Latency 114ms 421us 40us 128ms 1549us 27us |
C2D E6300
ZOTAC G43ITX-A-E 2GB RAM
2.5inch 5400rpm HDD x5 RAID-Z2
| Version 1.96 ------Sequential Output------ --Sequential Input- --Random-
Concurrency 1 -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
Duke 4G 75 98 53775 22 31648 13 192 98 85423 20 132.8 14
Latency 388ms 2969ms 5088ms 92425us 1291ms 1901ms
Version 1.96 ------Sequential Create------ --------Random Create--------
Duke -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 14991 96 +++++ +++ 13583 97 14137 97 +++++ +++ 13517 98
Latency 22816us 138us 166us 45212us 46us 690us |
RAID-Z2(RAID-6相当)ではドライブが増えるほど読み込みが速くなり、書き込みが遅くなるというふれこみ通りの結果か。
ちなみに-n 256を付けてbonnie++ってみたらmalloc関係でkernel panicを起こしてフリーズした。
見なかったことにしよう。
お金持ちになったら、Q8200とかメモリ4GB二本とかを積むことにする。
ところで、おそらくマザーのせいだと思うが、DVDドライブが不調気味。
作業途中で認識しなくなったりDVDブートしなかったり。
sata接続のドライブだけおかしくなるのかと思っていたが、USB外部接続でもダメなのか?インストールは済んだのでいいものの、かなりやっかいな症状だ。
その他懸念事項として、RAIDそのものにシステムが入ってるけど、システムアップデートなんかに失敗した場合少々面倒なことになるかもではある。
とりあえずいくら新しもの好きとはいえ、CURRENTにすることだけはやめておこうと心に誓う。
以上、おおよそ675GBのraidz2ファイルサーバ完成。
samba3サーバをおったててLANに参加させ、さっそく荷物を放り込み中。