トップ > 興味のあること > コンピュータ > ハードウェア > パーソナルコンピュータ > 部品寄せ集め6号
モッピー!お金がたまるポイントサイト
日々の生活にhappyをプラスする|ハピタス

2001年の部品寄せ集め6号

2001年3月20日

部品寄せ集め3号のマザーボードとCPUを交換したので、 それをネタに家庭内向けサーバーである部品寄せ集め4号をアップグレードする。 買ってきたのはATXのケースだけ。 メモリはブックサイズ1号に入っていたものを、 部品寄せ集め3号から取り出して使う。 かなり部品が入れ替わったので、部品寄せ集め6号と命名。

当初、ATA100 I/Fを認識せずにあせったが、 これはI/Oアドレスが変わったため。 さらにkernelをSMP対応にした段階で、またATA100 I/Fを認識しなくなる。 今度はIRQの問題だった。 cat /proc/pciでI/OアドレスとIRQを確認後、 lilo.confにパラメータを書いてからliloを実行して事なきをえる。

2001年3月21日

部屋を見回すと、IBM製7200r.p.m.の40GB HDが落ちていた。 これ幸いと組み込む。 以前から40GB HDがふたつあったので、 これを加えてRAID-5が構成できると踏んだのだ。 が、kernel標準の古いコードだとうまくRAID-5が組めない。 かといって、新しいRAID関係のパッチを当てると、 今度はkernelがコンパイルできなくなってしまう。 あっさりとRAID-5をあきらめ、ストライプを組んだ。 これで120GBのファイルサーバーである。 個人がこんな代物をもてるようになるなんてなあ。

失敗談をひとつ。 RAID-5にせよストライプにせよ、 当然40GB×2で組んでいたストライプの中身は無くなる。 このバックアップをワークマシンである部品寄せ集め3号にコピーした。 細かいファイルをたくさんコピーするより、 ひとつにまとめた方が速かろうと、 まずtar zcvfで適当にまとめてからエクスプローラーでコピー。 当然、sambaで共有している。 40GB×3のストライプを組んでからサーバーにコピーして、 tar zxvfを実行。 すると「ファイルが途中で終わっている」という趣旨のエラーが出る。 おかしいと思ったが、 よくよく考えてみたら部品寄せ集め3号のファイルシステムがFAT32だった。 これでは1ファイル2GBまでの制限が付く。 で、2GBを越えたファイルは全滅だった。 幸い、別にバックアップがとってあるデータだったの事なきを得たが。 もちろん、問題のファイルシステムはさっさとNTFSに変更した。

2001年3月23日

失敗談をもうひとつ。 今度は、内蔵させておいたDDS-2のドライブ(Surestore 8i)でバックアップを作ろうと思った。 が、ドライブを認識しない。 kernelを再コンパイルしてデバイスドライバを変えても、 PCIコネクタの位置を変えたりしてもダメ。 ところが部品寄せ集め3号だとちゃんと動くのだ。 これまたあきらめて、SCSI I/Fごと取り外した。

が、後日になってこのドライブ、 ターミネーションパワーは供給できても、 ターミネータにはならないことが判明。 部品寄せ集め3号だと、たまたまCD-RドライブがSCSIで、 それがターミネータになるような形で接続されていたのだ。 うーむ、 今までSCSIのターミネーションっていいかげんでも結構動いていたので盲点だった。

2001年12月23日

debinがちっともバージョンアップしない。 おまけに、いまKernelを入れ替えると、 ReiserFSやmdデバイスがちゃんと動くかどうか怪しい。 なので、FreeBSD 4.4に入れ替えてしまった。 15GBのHDにシステムを入れ、 42GBと39GB×2をファイルサービス用のHDにする。 インストールそのものは慣れたもので、 /と/varと/tmpを200MBずつ、/usrを2GBとっておく。

LinuxのKernelと違って、 FreeBSD 4.4だと特別な指定なしでPromiseのIDEインターフェイスを

 atapci1: <Promise ATA100 controller> port 0xe400-0xe43f,0xe000-0xe003,
 0xdc00-0xdc07,0xd800-0xd803, 0xd400-0xd407 mem 0xea000000-0xea01ffff irq 10
 at device 10.0 on pci0
 ata2: at 0xd400 on atapci1
 ata3: at 0xdc00 on atapci1
          

と認識してくれる。HDのほうといえば、

 ad0: 14655MB <Maxtor 51536U3> [29777/16/63] at ata0-master UDMA33
 ad2: 43979MB <IBM-DTLA-307045> [89355/16/63] at ata1-master UDMA33
 ad4: 39083MB <Maxtor 34098H4> [79408/16/63] at ata2-master UDMA100
 ad6: 39082MB <Maxtor 94098U8> [79406/16/63] at ata3-master UDMA66
          

と認識された。 マスターが偶数で、 スレーブが奇数というのはLinuxと同じような認識のしかたである。 これらをひとつの大きなパーティションにまとめるため、vinumを使った。 /stand/sysinstall経由でfdiskとdisklabelを実行して、 まずad0h(システム以外の余ったところ)、ad2e、ad4e、 ad6e(ad2からad6まではディスク丸ごと)をvinum用のパーティションにする。 が、ata2とata3 につながったHDはディスクラベルを書き換えられないし、 本当のディスクラベルも読めないようだ。 とりあえず、ひとつずつata1につなげてディスクラベルを書き換える。 その後で配線を元に戻し、

 # vinum
 vinum -> concat /dev/ad0h /dev/ad2e /dev/ad4e /dev/ad6e
 vinum -> quit
 # newfs /dev/vinum/vinum0
 # tunefs -n enable /dev/vinum/vinum0
          

でファイルシステムのできあがり。 ただし、このファイルシステムはfstabではマウントできない。 vinum startコマンドを実行した後でないと使えないからだ。 したがって、rc.localに

 #!/bin/sh
 /sbin/vinum start
 mount /dev/vinum/vinum0 /usr/share/public
          

と書いておく。 もちろん、/usr/share/publicはあらかじめ作成して、 パーミッションを777にしておく。 これでおよそ130GBのファイルサーバーができたわけだが、 バックアップをどうしよう...。

2001年12月24日

インストールが妙に遅いと思ったら、Time Outが頻発している。 さすがに、初代BigFootの4GBはもう寿命かも。

しかし、Linuxでは全二重にならなかった21143のNICが、 FreeBSDでは全二重になっている。

2001年12月27日

バックアップもとれないほどの大容量を誇るファイルサーバーなら、 RAIDくらいは組まないと怖い。 結局40GBのHDを1台買ってきて、RAID-5を組んだ。 設定ファイルは

 drive d1 device /dev/ad2e
 drive d2 device /dev/ad4e
 drive d3 device /dev/ad5e
 drive d4 device /dev/ad6e
 volume raid5
   plex org raid5 479k
     sd length 37g drive d1
     sd length 37g drive d2
     sd length 37g drive d3
     sd length 37g drive d4
          

として、vinum create raid5.cfgである。 公称40GBといっても、42GBあるHDもあれば37GBしかないHDもある。 一番小さなHDに合わせることになるので、37GB×4、 実際には110GBの容量になる。 いろいろと制御用に使うので目減りするようだ。 なお、事前に2回くらいvinum resetconfigを実行しておかないと、 エラーが出たりする。

さらにraid-5の時は、このままnewfsをかけるわけにいかない。 まず、vinum init raid5.p0でプレックスをゼロクリアする必要がある。 この時の動作を見ていると、なかなか興味深い。 単独でひとつのチャネルにつながった7200r.p.m.のHDが最も早く終了する。 ついで、単独でひとつのチャネルにつながっている5400r.p.m.のHD、 最後にひとつのチャネルにぶらさがったふたつのHDといった具合だ。 一番遅いのを1とすると、中間が1.5、早いのが2くらいの速度差になる。 普通にファイルシステムとして使う場合はここまで性能差がはっきりでることはないだろうが、 見事なまでに理屈通りの動作だった。

ちなみにディスクラベルの読み書きがうまくできない件だが、 MAKEDEVで/dev/ad6などを作り直したらちゃんと読み書きできるようになった。