2024年11月23日 | ノート定期点検 |
2024年1月22日 | セゾンゴールドアメックスカードの変化 |
2024年11月20日 | DS-C480W購入 |
2024年11月18日 | EOS R7ファームウエアアップデート |
2024年11月17日 | PX-M730Fのシアンインク交換 |
2024年10月19日 | 腕時計のファームウエア |
2024年10月5日 | RF-S 10-18mm F4.5-6.3 IS STM購入 |
2024年10月3日 | 三菱UFJニコスカード到着 |
2024年9月28日 | 三菱UFJニコスカード申込 |
2024年9月23日 | 第10世代iPad購入 |
部品寄せ集め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を実行して事なきをえる。
部屋を見回すと、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に変更した。
失敗談をもうひとつ。 今度は、内蔵させておいたDDS-2のドライブ(Surestore 8i)でバックアップを作ろうと思った。 が、ドライブを認識しない。 kernelを再コンパイルしてデバイスドライバを変えても、 PCIコネクタの位置を変えたりしてもダメ。 ところが部品寄せ集め3号だとちゃんと動くのだ。 これまたあきらめて、SCSI I/Fごと取り外した。
が、後日になってこのドライブ、 ターミネーションパワーは供給できても、 ターミネータにはならないことが判明。 部品寄せ集め3号だと、たまたまCD-RドライブがSCSIで、 それがターミネータになるような形で接続されていたのだ。 うーむ、 今までSCSIのターミネーションっていいかげんでも結構動いていたので盲点だった。
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のファイルサーバーができたわけだが、 バックアップをどうしよう...。
インストールが妙に遅いと思ったら、Time Outが頻発している。 さすがに、初代BigFootの4GBはもう寿命かも。
しかし、Linuxでは全二重にならなかった21143のNICが、 FreeBSDでは全二重になっている。
バックアップもとれないほどの大容量を誇るファイルサーバーなら、 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などを作り直したらちゃんと読み書きできるようになった。