障害復旧
このページでは、このサーバを運用していく中で遭遇した幾つかの
試練をどのように克服したか(?)を記録して行きたいと思います...。
事例1:ネットワーク障害(LANカードの熱暴走)
障害内容
2004年の夏は非常に暑かった...。Lib100本体の加熱により、本体PCMCIAスロットに2枚挿しされた
LANカードが頻繁に止まるようになった。
対策
ヤフオクで購入したまま、押し入れで眠っていたポートリプリケータを利用した。このポトリを
利用すると本体の2スロット以外にプラス2スロットのPCMCIAを利用出来るのだが、こちらのスロット
はポトリの左右に分かれていて、2枚のカードが接する事がなく、さらにカード上面に空間が空いて
いて排熱の面でも効果が有ると思われる。という訳で、2枚のLANカードをポトリのPCMCIAスロット
に挿して利用する事で対応した。
ただし、来年の夏には、やっぱりUSB接続のファンが必要になるような気がしている。
事例2:システムクラッシュ(マザーボード障害?)
経過
- 2004/10/14 Libretto100のrsyncによる外部ハードディスクへのバックアップ実施
(今にして思えば、虫の知らせってやつでしょうか)。
- 2004/10/15 fsckに失敗し、クラッシュ状態なのを発見。
前日より何度もリブートを繰り返していた様子から、ハードディスクの
障害と判断(後に間違いと判明)。
- 2004/10/15 TOSHIBA MK4310MAT 4.3GB 8.45mm 2.5'HD ヤフオク落札 4250円。
- 2004/10/16 MK4310MAT 到着。
- 2004/10/17 仮復旧するも、やはり突然のリブートを繰り返し動作不安定。
この時点でハードディスクの障害ではなく、長期間に渡る発熱によるマザーボードの障害と判断し、
ヤフオクでのLibretto100の出物を調査開始。
- 2004/10/19 Libretto100(改) CPU:MMX233MHz Memory:64MB HDD:4GB ヤフオク落札 25000円。
- 2004/10/21 Libretto100(改) 到着。
- 2004/10/22 完全復旧。
復旧手順
今回、たまたま障害発生の数時間前に外付ハードディスクにrsyncにてバックアップ
を取得していたので、そこからリストアする方法を考えた。なお、以下の記述には
私の環境に依存した記述(IPアドレス、ディレクトリ名等々)が見受けられるが
御容赦願いたい。
バックアップ先のハードディスクはLibretto100と同一LANセグメント上の別マシン
(192.168.0.97)の外付SCSIハードディスクとして接続されているので、リストア
する為にはLibretto100側でリストア用のlinuxを起動し、pcmciaを認識させて
ネットワークに接続させる必要がある。
ご存知のとおり、Librettoシリーズの外付フロッピーディスクは極々一部の
特殊なLinuxディストリビューションを除いてインストール時には使用できないので、
ちょっと工夫が必要になる。
- Libretto100に外付フロッピードライブを接続し、FreeDOS
(http://www.freedos.org/)のインストールFDでブート後、
直ちにインストーラを抜けてコマンドプロンプトに移る。
- FDISKにてハードディスクにFreeDOS用(16MB)、linux swap用(128MB)、
linux root用(4GB)、パーティションを作成する。なお、linux用の
パーティションはリストア用linuxがブートしてからでも確保できるが、
DOS互換OSのFDISKを使うとハイバネーション用のエリアが自動的に確保
されるので、こちらをお奨めする。
- FreeDOS用パーティションをフォーマットする。
FORMAT C:
- FreeDOSシステムを転送する。
SYS C:
- libretto100をリブートし、C: からFreeDOSを起動する。
- リストア用linuxのブートに必要なファイル群(Slackware-10から抜き出し、
スクリプトに若干の修正を加えた物 DISK1〜DISK6)を、
C:\INSTALL\にコピーする。
MD INSTALL
CD INSTALL
COPY A:\*.*
- 外付フロッピードライブを外し、ネットワークカードに差し替える。
- リストア用linuxの起動
INSTALL.BAT
- rootでログイン
- /dosにFreeDOSパーティションをマウントする。
mkdir /dos
mount -t vfat /dev/hda1 /dos
- ネットワークカードを認識させる。
/dos/install/pcmcia
- Libretto100のネットワークインタフェースにIPアドレスを振る。
ifconfig eth0 inet 192.168.0.100 netmask 255.255.255.0
- 後でnfsマウントするためにポートマッパー起動
/sbin/rpc.portmap
- fdiskにてlinux用パーティションのパーティションIDを設定しなおす(swap,root)。
- スワップ領域を初期化する
mkswap -c /dev/hda2
- ルートパーティションをフォーマットする
mke2fs -c /dev/hda3
- /mnt2にバックアップ領域をnfsマウントする。バックアップ内容は、/mnt2/backup_lib100に見えるようになる。事前に /sbin/rpc.portmap を起動しておかないと、マウントに時間がかかる(数分)ので注意すること。
mkdir /mnt2
mount -t nfs -o ro 192.168.0.97:/mnt/harddisk /mnt2
- リストア先パーティションを/mntにマウントする。
mount /dev/hda3 /mnt
- リストアの前準備。
umask 0
cd /mnt
- リストアを行う。
(cd /mnt2/backup_lib100 && tar cf - .) | tar xvpf -
- LILO登録の前準備。
rm /boot/System.map
ln -s /mnt/vmlinuz /vmlinuz
ln -s /mnt/System.map /System.map
- LILO登録を行う。
/mnt/sbin/lilo -C /mnt/etc/lilo.conf
- リブート&動作確認
cd /
sync;sync;sync
umount /dos /mnt /mnt2
reboot
懸案事項
今回、Libretto100の買い替えでCPUクロックが166MHzから233MHzにアップしているので、発熱への
耐性がさらに悪化していると思われる(^^;。USB接続のファン等の冷却装置の導入が必要か?。
事例3:ネットワーク障害(停電によるLANカード障害)
障害内容
2005年の冬の事でした。我が家では暖房器具に「エアコン」「電気カーペット」「ハロゲンヒータ」
を使っているのですが、これに追加して「湯沸しポット」「炊飯器」が頑張り始めると、かなりの
確立でブレーカが切れてしまいます。当初、Lib100はバッテリがあるので問題無いと思っていたの
ですが、ブレーカ切断の直後に必ずネットワークが切れて、復電後も元に戻りません。
対策
原因ですが、なんとポトリにはLib100本体のバッテリからは給電されてないのでした。ですので、
停電時にはLANカードへの給電が絶たれてしまい、復電後も認識出来ないようになってたようです。
ですので、冬の間(ブレーカの切れる確立の高い間)は、熱暴走の可能性は低いので、本体PCMCIA
スロットにLANカードを挿して運用する形態に戻しましたとさ...。
m-ito@myh.no-ip.org
[更新]