ZFSの説明やらなんやらは面倒なので割愛(それどころじゃないって理由もあるが。。。)
一応参考はこんな感じ
ZFS – Wikipedia
http://ja.wikipedia.org/wiki/ZFS
@IT:一瞬でのバックアップを実現するSolaris ZFS(1/4)
http://www.atmarkit.co.jp/flinux/rensai/opensolaris04/opensolaris04a.html
Solaris ZFS 管理ガイド – Sun Microsystems
http://docs.sun.com/app/docs/doc/819-6260
ZFS Best Practices Guide – Siwiki
http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
RAIDシステムとちがって”ファイルシステム”で冗長化を実現したってのがポイントですか。
ディスクの管理も今時のハイエンド外部ストレージシステムの考え方が入っていて
使うだけなら管理がすごく楽になってる。パーテッション作るどころかフォーマットすらいらないし
コマンド一発で望みのアレイを作ってプールとしてマウントしてくれる。
fstabにちまちまとマウント情報を書くのも不要
一応個人的な欠点としては、前も書いたけど、RAIDレベルのアップデート、ダウングレードが不可
ディスクをRAIDアレイに追加不可、書き込みが遅いってあたり
Solarisには実装されてるけど、FreeBSDには無い機能とかもあるから
今のZFSのフルセットを使用したいならOpenSolarisを使うのがベスト
上の欠点もそのうち克服されるだろうけど、FreeBSDのRに降りてくるまでには少し時間がかかるはず
今回のオイラのHDD構成なら、よほどのことが無ければHDDを増やそうとかは思わないはずだ!w
ATA channel 3:
Master: ad6 <WDC WD10EADS-00L5B1/01.01A01> Serial ATA II
Slave: no device present
ATA channel 4:
Master: ad8 <WDC WD10EACS-00D6B1/01.01A01> Serial ATA II
Slave: no device present
ATA channel 5:
Master: ad10 <WDC WD10EADS-00L5B1/01.01A01> Serial ATA II
Slave: no device present
ATA channel 6:
Master: ad12 <WDC WD10EADS-00L5B1/01.01A01> Serial ATA II
Slave: no device present
ATA channel 7:
Master: ad14 <WDC WD10EADS-00L5B1/01.01A01> Serial ATA II
Slave: no device present
raidzで約4Tのストレージを作るヽ(・∀・ )ノ キャッ キャッ
一応、zfsを利用するための呪文は必要
ZFSTuningGuide – FreeBSD Wiki
http://wiki.freebsd.org/ZFSTuningGuide
カーネルに”options KVA_PAGES=512″を追加して再構築、インストール
/boot/loader.confに下記を追加
zfs_load=”YES”
vm.kmem_size_max=”1536M”
vm.kmem_size=”1536M”
vfs.zfs.arc_max=”512M”
vfs.zfs.vdev.cache.size=”20M”
メモリ4Gなので、パフォーマンス重視の設定です
早速作ってみる、とりあえずベンチ目的のストライプで。
>
[root@nekosaba]/# zpool create zpool0 ad10 ad12 ad14 ad16 ad18
[root@nekosaba]/# zpool status
pool: zpool0
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zpool0 ONLINE 0 0 0
ad10 ONLINE 0 0 0
ad12 ONLINE 0 0 0
ad14 ONLINE 0 0 0
ad16 ONLINE 0 0 0
ad18 ONLINE 0 0 0
errors: No known data errors
そしてbonnie++でベンチマークしてみる。
[root@nekosaba]/# bonnie++ -d /zpool0/ -n 0 -b -u root
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Version 1.93d ------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
nekosaba.nekolov 7G 90 98 155798 54 124857 47 171 86 338094 70 202.0 19
Latency 173ms 1473ms 1937ms 335ms 514ms 204ms
1.93c,1.93d,nekosaba.nekolove.jp,1,1233734113,7G,,90,98,155798,54,124857,47,171,86,338094,70,202.0,19,,,,,,,,,,,,,,,,,,173ms,1473ms,1937ms,335ms,514ms,204ms,,,,,,
読み330Mbyte/sぐらい?
書きは155Mbyte/sぐらいか・・・ストライプにしては遅いけど、ZFSはこんなもん
[[root@nekosaba]/# df
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/ad8s1a 2026030 414162 1449786 22% /
devfs 1 1 0 100% /dev
/dev/ad8s1e 2026030 1138 1862810 0% /tmp
/dev/ad8s1f 199947006 88419976 95531270 48% /usr
/dev/ad8s1d 24372460 9973930 12448734 44% /var
linprocfs 4 4 0 100% /usr/compat/linux/proc
devfs 1 1 0 100% /var/named/dev
zpool0 4804853504 0 4804853504 0% /zpool0
-h付けるの忘れて見にくいけど。。。
4.5Tbyteぐらい?おっそろしー
一度ぶっ壊して目的のraidz(RAID5相当)で作り直す
[root@nekosaba]/# zpool destroy zpool0
[root@nekosaba]/# zpool create zpool0 raidz ad10 ad12 ad14 ad16 ad18
[root@nekosaba]/# zpool status
pool: zpool0
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
zpool0 ONLINE 0 0 0
raidz1 ONLINE 0 0 0
ad10 ONLINE 0 0 0
ad12 ONLINE 0 0 0
ad14 ONLINE 0 0 0
ad16 ONLINE 0 0 0
ad18 ONLINE 0 0 0
errors: No known data errors
[root@nekosaba]/# bonnie++ -d /zpool0/ -n 0 -b -u root
Using uid:0, gid:0.
Writing a byte at a time...done
Writing intelligently...done
Rewriting...done
Reading a byte at a time...done
Reading intelligently...done
start 'em...done...done...done...done...done...
Version 1.93d ------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
nekosaba.nekolov 7G 88 97 130865 46 98056 39 193 97 262815 59 73.8 9
Latency 327ms 1278ms 2254ms 124ms 298ms 486ms
1.93c,1.93d,nekosaba.nekolove.jp,1,1233733157,7G,,88,97,130865,46,98056,39,193,97,262815,59,73.8,9,,,,,,,,,,,,,,,,,,327ms,1278ms,2254ms,124ms,298ms,486ms,,,,,,
[root@nekosaba]/# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad8s1a 1.9G 405M 1.4G 22% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad8s1e 1.9G 1.1M 1.8G 0% /tmp
/dev/ad8s1f 191G 128G 48G 73% /usr
/dev/ad8s1d 23G 9.5G 12G 45% /var
linprocfs 4.0K 4.0K 0B 100% /usr/compat/linux/proc
zpool0 3.6T 0B 3.6T 0% /zpool0
devfs 1.0K 1.0K 0B 100% /var/named/dev
3.6Tのストレージキタコレヽ(・∀・ )ノ キャッ キャッ
読みは262Mbyte/s、書きは130Mbyte/sぐらいかな?結構変動するみたいだけども
十分すぎるほど高速なストレージタンクだ
PT1であれこれしたデータを置いておくには十分だのう
ZFSの良いところは、イニシャライズとかアレイ作成時のビルドがいらないってところ
コマンドで作ったら即フルスピードで使えるのがいい
↑のテストもbonnie++動かすのに時間かかっただけで、アレイの作成、解放は一瞬で終わる
ストレージプールの拡張は即座に反映され、わざわざボリューム拡張などしなくとも良いのはいい
まあ、こいつはただのストレージタンクとしてしか使わない予定だから、あんまり余計な機能はいらないっちゃいらないが。
で、こっからは涙のトラブルシューティング
前回のエントリはいい死亡フラグだったぜ。。。
zpool0作ってヽ(・∀・ )ノ キャッ キャッしてたら、一時的に外したHDDを付け直した時に動かなくなってたの巻
経緯はこんな感じ・・・
システム用のHDDx1,zpool0用HDDx5でマザーのオンボードSATAポートを使い切る
仕方がないので玄人志向のSERIALATA1.5-PCI(相当古い製品)を刺してHDD2台を接続
何故かカードBIOSでフリーズ状態、先に進まない
何度かトライしてダメだったのでBIOSに問題があると判断
Webで情報げっと、BIOSのアップデートがneed
Sil3112のBIOSをダウンロードしてきてアップデートする
もっかい繋いで立ち上げたらHDDを認識せず
あまりに静かなのでこれHDDの電源入ってないんじゃ疑惑
別PCに繋げて立ち上げ→やっぱダメでした
\(^o^)/オワタ
HDD自体はどうでもいいが、中身のデータは困るんだ(;´Д`)
ディスクが死んだ訳じゃなくて、コントローラが死んだっぽい予感
生きてるHDDから基盤載せ替えにチャレンジするか・・・?