RaidZで構築したファイルサーバーが故障したけど復旧できた話

書くネタができました(嬉しくない
復旧までやったことを書きます。

RaidZと書いていますが、今回壊れたのはマザーボードです。
壊れたマザーボードはASUSのH87-PLUS
状態としては、

  • PCの電源を入れるとASUSのロゴが出た状態でフリーズして進まない
  • キーを押しても何も反応しない
  • HDD全部外してCPU、メモリだけで起動しても変わらない

原因はわかりませんが、
MacのTime Machineのバックアップにて、
ディスクがすでに使用中みたいなエラーが出たので
再起動してみたらこうなりました。

軽く調べてみてもここから直ったみたいな情報が見つからなかったので、
諦めてマザーボード交換することにしました。

ちなみにHDDは以下のようなRaidZ4台構成
1台目:OS(CentOS7)が入ってるHDD
2台目:RaidZのHDD
3台目:RaidZのHDD
4台目:RaidZのHDD
5台目:RaidZのHDD
6台目:Raid組んでないHDD
※6台目は消えてもいい録画データを入れてました。

壊れかけのマザーボードが余ってたのでひとまずそれと交換。
1台目のHDDでブートして復旧!
と思ったらエマージェンシーモードとか言うのに入った。

Welcome to emergency mode! After logging in. type "journalctl -xb" to view
system logs, "systemctl reboot", "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):

初めての遭遇。どうすればいいかわからん。
とりあえずControl-Dを押してみると

Error getting authority: Error initializing authority: Could not connect: No such file or directory

こんなエラーが表示されました。
これを手がかりに調べてみると、どうやら存在しないパーティションを
/etc/fstabで指定していると発生するみたいですね。
※ちなみにfstabはOS起動時にマウントするファイルシステムが書かれているらしいです。

で、さっきのエマージェンシーモードでルートパスワードを打てば
メンテナンスモード?でログインできたので/etc/fstabを編集して
接続できないエントリを削除してみます。

#
# /etc/fstab
# Created by anaconda on Tue Mar 29 23:49:55 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=[UUIDが書いてある] /boot                     xfs     defaults        0 0
/dev/mapper/centos-home /home                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdb /record                                ext4    defaults        0 0

どれを?(笑
とりあえずfstabファイルをバックアップとって
一つだけUUIDで書かれてる仲間はずれな行を削除。
exitで抜けてエマージェンシーモードで

systemctl reboot

を実行!変わらず!

でも/bootとか消しちゃっても状況が変わらないなら
1行ずつ消してみるか?とか思いつつなんか情報ないかなーとログを探していた時、
Control-Dを押した時のメッセージに「/dev/sdb」と表示されることを発見。
※メッセージはメモってなかったのでわかりません。

このディレクトリは6台目のHDDマウントしているところでした。
まさかここなのかとfstabの/dev/sdbの行を削除して
system rebootしたところ、無事起動しました。

やったー直ったーと思ってsambaに接続しようとしたところ、
繋がらない(笑

調べてみるとzfsプールがマウントされてない様子。
状態を確認してみると

# zpool status
no pools available

# zfs list
no datasets available

raidZ消えとるやないか。
でもfdiskで確認すると4台とも生きてる様子。
なんかスキャンとかできないのかと思いましたが、zfsの操作とかわからない
構築だけして復旧テストしてないといざという時困る(笑

調べてみると

# zpool import

でインポートできるプールが確認できるらしいので実行してみると
無事プールが出てきました。
そして

# zpool import [プール名]

を実行して、ようやくファイルサーバーにアクセスできるようになりました。
もちろんデータも全部無事です。
やっぱりファイルサーバーには
何年分もの思い出が詰まってますから壊れると焦りますね。

ちなみにまだ6台目のHDD接続できるか、とか
Time Machineのバックアップできるかとか試してません。
新しくマザーボード買ってからにしようかと思ってます。