今更ストレージサーバーをFreeBSDとZFSで組んだ話 - kuenishi's blogで作ったサーバーがチマチマとアップデートを繰り返しつつ FreeBSD 11.1 までアップデートされていた。
%> freebsd-version 11.1-RELEASE-p3 (v)kuenishi@kushana:~ %> uname -a FreeBSD kushana 11.1-RELEASE-p1 FreeBSD 11.1-RELEASE-p1 #0: Wed Aug 9 11:55:48 UTC 2017 root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64
2年半何事もなく普通に動いていて、「HDDそろそろ壊れないと障害対応の方法忘れてしまいそう」などと思っていた…ところ、ようやく来た。今日ひさしぶりにアクセスしようとしたら(Macにマウントしようとしたら)返事しなくなっていた。とりあえず "zpool status" と打ち込むもものすごく返事が遅い。なので "/var/log/messages" をみると ata1 がおかしそうなので、もうちょっと調査する。
%> sudo smartctl -a /dev/ada1
これをやると「なんかオカシイ」みたいな文字が出る(保存してなかったのでなくなりました)。一方壊れてなさそうなディスクでやってみると
%> sudo smartctl -a /dev/ada2 | grep "No Errors" No Errors Logged
となるので、どうもやっぱりディスクがおかしいということが確定する。ちなみに smartctl のコマンドは "pkg install smartmontools" でインストールできる。
仕方ないので物理的に交換する。実はこれはメインのデータ用ディスクじゃなくて控えのディスクをそのままSATAに挿して遊び場に使っていたディスクだったので、重要なデータに特に問題は起きていない。とりあえず挿してからZFSプールを作るところまでサクッとやっちゃう。gpart create のオプションはいろいろあるのだが、まあ賢いと信じて任せる。
%> sudo gpart show ada1 Password: gpart: No such geom: ada1. %> sudo gpart create -s GPT ada1 ada1 created %> sudo gpart show ada1 => 40 5860533088 ada1 GPT (2.7T) 40 5860533088 - free - (2.7T) %> sudo gpart add -t freebsd-zfs ada1 ada1p1 added %> sudo zpool create attic ada1 %> zpool status attic pool: attic state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM attic ONLINE 0 0 0 ada1p1 ONLINE 0 0 0 errors: No known data errors
とまあサクッとできたので、いちおうデータ用のZFSプール (data/user) のスナップショットを注入しておく。
% sudo zfs snapshot data/user@snapshot20171120
# zfs send data/user@snapshot20171120 | zfs recv -F attic
これでシコシコとスナップショットを送り始めるので、まあ一通りの作業は終了。そういえば何となく心配になってきたのでscrubも回しておくことにする。
% sudo zpool scrub data
なお特にオチはない。