自宅のメインサーバとして、HP ML115 G5をFreeBSD 8/amd64で運用している。フルZFS構成で、大事なデータはraidz2プール内に置き、バックアップはsnapshotで取るようにして数ヶ月。snapshot作成に時間が掛かり、パーティショニングの柔軟性も低いUFS2に比べとても管理が楽になった。
まだHDD故障を経験していないが、(zfs send & receiveで別ディスクにバックアップを取った上で)わざと1台のデータを破壊してデグレード状態で動作すること、さらにもう1台壊してもちゃんと動くことまでは検証できている。
先日、netatalkでTime Machineサーバに仕立て上げ、何台かあるMacのバックアップを担わせるようにしたところ、残容量が非常に心許なくなった。さらに、おんぼろHDD 2台を活用して作ったNASの寿命もそろそろ心配になってきたのでファイルサーバも集約したいのだが、そうするには容量が圧倒的に足りない。
今ML115 G5に入っているのは、先々代のサーバから引き継いで使っているHGSTのDeskstar T7K500の群れだが、こいつらの低いゴリゴリ音は実によく響いてうるさい。設置場所はリビングルームの端、レンジ台の脇の隅っこだが、音はけっこう気になる。
ということで、大容量のHDDを新調して移行しようと決めた。停止時間を短くするには稼働中にデータコピーを行う必要があるが、USB 2.0に数台ぶらげて書き込むのはスループット的に難がある。ハードウェアRAIDを備えた箱もあるが、あまり期待はできない。移行後の使い出も考えた結果、最近のFreeBSDでは使えるらしいeSATA port multiplierに対応した外付けHDD箱を買うことにした。
価格が手ごろでeSATAインターフェースPCIeカードも付属しているというセンチュリー ドライブドア SATAボックスレイド EX35PM4B-PEを購入。事前の調べで付属のカードに載っているのはFreeBSDでも対応しているSiI 3132だと分かっていたが、port multiplierについては同じチップが載っていてもカードによって動かないものもあるという話もあり、また見つかる事例はSATAの話の方が多く、出たとこ勝負だった。
…が、動いたよ!OSバージョンは先月初旬の8.0-STABLEだが、たぶん8.0-RELEASEでも行けるだろう。(7.xは、MFCされていないのできっと無理)
何も設定しないとataドライバがSiI3132を掴んでしまって動かないので(最初気づかず絶望しかけた)、以下の行を/boot/loader.conf
に追加する必要がある。(あるいはdevice siis
でカーネルに静的に組み込んでもいいだろう。probe後では遅い。)
1 |
siis_load="YES" |
これで、以下のようにada0, ada1, ada2, ...
として認識される。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Apr 13 22:02:57 daemon kernel: siis0: port 0xef80-0xefff mem 0xfcfffc00-0xfcfffc7f,0xfcff8000-0xfcffbfff irq 16 at device 0.0 on pci4 Apr 13 22:02:57 daemon kernel: siis0: [ITHREAD] Apr 13 22:02:57 daemon kernel: siisch0: at channel 0 on siis0 Apr 13 22:02:57 daemon kernel: siisch0: [ITHREAD] Apr 13 22:02:57 daemon kernel: siisch1: at channel 1 on siis0 Apr 13 22:02:57 daemon kernel: siisch1: [ITHREAD] ... Apr 13 22:02:57 daemon kernel: ada0 at siisch0 bus 0 scbus0 target 0 lun 0 Apr 13 22:02:57 daemon kernel: ada0: ATA-8cd0 at ata7 bus 0 scbus7 target 0 lun 0 Apr 13 22:02:57 daemon kernel: ada0: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) Apr 13 22:02:57 daemon kernel: ada0: Command Queueing enabled Apr 13 22:02:57 daemon kernel: ada0: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C) Apr 13 22:02:57 daemon kernel: ada1 at siisch0 bus 0 scbus0 target 1 lun 0 Apr 13 22:02:57 daemon kernel: ada1: ATA-8 SATA 2.x device Apr 13 22:02:57 daemon kernel: ada1: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) Apr 13 22:02:57 daemon kernel: ada1: Command Queueing enabled Apr 13 22:02:57 daemon kernel: ada1: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C) Apr 13 22:02:57 daemon kernel: ada2 at siisch0 bus 0 scbus0 target 2 lun 0 Apr 13 22:02:57 daemon kernel: ada2: ATA-8 SATA 2.x device Apr 13 22:02:57 daemon kernel: ada2: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) Apr 13 22:02:57 daemon kernel: ada2: Command Queueing enabled Apr 13 22:02:57 daemon kernel: ada2: 1430799MB (2930277168 512 byte sectors: 16H 63S/T 16383C) ... |
これで積めるHDDの台数制限がなくなったので、みみっちくraidz2するのはやめてmirrorの連結(いわゆるRAID1+0相当)にするつもり。
なお、HDDは見ての通り4KB sectorのWD15EARSなので、アラインメント問題が待ち受けている。それを含めた性能の評価と、期待のホットスワップの可否検証はまとまって時間が取れるときにするつもり。とりあえず動いてほっとした!(・∀・)!
ピンバック: 工夫と趣向と分別と。 – WD15EARSの性能を計測
ピンバック: 工夫と趣向と分別と。 – FreeBSDでeSATAのホットスワップは…