みんな大好きzfs(断言
ということで、うちの二大サーバのベースのファイルシステムは zfs を採用しています。
ファイルサーバに至ってはFreeBSD 8.0 のころから継ぎ足し継ぎ足しで、ローリングアップデートして
HDDの交換をして使い続けているわけですが、今までFSが原因でファイルをロストしたことがないので
ものすごく信頼して使っています。(バックアップは重要)
ということで、お仕事関係の税務処理とか、請求書発行システムとか、いろいろ重要なのも動いている
のですが、そのマシンに、以前、zil とl2arc として mvme の ディスクを追加して、さらなる高速化を
求めていました。その nvme のディスクが死にました。
zil が死ぬと、fs をマウントできません。そのため、zfs root のマシンでは、再起動かけてしまったら
コンソールで作業しないと、立ち上がってこないままになります。ちなみにうちのサーバは二台とも
モニターにつながっていませんので、いきなり詰みます。
でも大丈夫、FreeBSD にはシリアルコンソールという素敵な機能があって、シリアルポート経由で
あれこれできたりします。
ということで復旧方法。
何はともあれ、まず壊れた mvme を除去します。
次に、電源を入れてzfs がマウントできる CD とか、USBメモリから立ち上げます。
あとは zpool import -m -f してあげて、import できたら、zpool status して、
いなくなっている zil を remove してあげればおけおけ。
同様に、見えなくなってしまった l2arc も remove してあげましょう。
これであとは再起動すれば、通常の zfs root で立ち上がってきます。
めでたしめでたし。
というわけにはいかないのでした。
ファイルサーバのメモリを増やそうと思って、いろいろあって録画サーバのメモリが増えることになったのだが、ファイルサーバのメモリが足りていないのも放置してはおけないので、とりあえず対策をすることに。
とりあえず、スワップを nvme デバイスに取るかってことで、ついでに zil と l2arc も追加。
このへん、はまることもなかんべと思ってたら意外にもはまったので、記録として残しておくことに。
たぶん、未来の私が感謝する。
前回録画サーバのHDDを追加した際に、「あともう1玉6TiBのHDD追加すれば2TiB増える」って書いてから早半年。
やっとHDD追加しました。これでミラー終わったら4TiBの玉を切り離せば安全に2TiB容量が増えるぞ。
そしてそれだけ撮りためても、結局見る時間は増えないので、意味が無いような気もするけど、まあ気にしない。
そして、もう一点。
前回のHDD交換の際に使った4TiBのHDDは SMR 方式のやつだったため、遅い。まあ、メーカーがブートドライブには
使うなよって言ってるくらいだからしょうがないと言えばしょうがないのだが。
「遅い」程度だったらまあ我慢できたのだが、そのおかげで、テレビを見ている際に裏で録画が走ると駒落ちするという
問題が発生していて、これ、録画されたものには問題ないのだが、リアルタイムで見ていると駒落ちしたりノイズが入ったり
して、家族からとても不評でした。
たぶん、正攻法としてはHDD交換なんだけど、いろいろアレなので、SSDを追加して l2arc と zil にして、ごまかすことにした。
さくっと挿して認識させたら
# gpart create ada4 # gpart add -s 64g -t freebsd-zfs -l l2arc ada4 # gpart add -s 64g -t freebsd-zfs -l zil ada4 # zpool add zroot cache gpt/l2arc # zpool add zroot log gpt/zil
でおっけーです。
録画マシンのHDDから不吉なメッセージが表示されはじめてしまったのだが、このマシン、
なぜか重要なのにRAIDで保護されていないことに気が付いて、とりあえずどうにかすることにした。
アーカイブ用に4TBのミラーがあるので、こいつにもう一台6TBのHDDを足して、その後、4TBの一台を
rootディスクのミラー用に充てるという、玉突き移植です。これで来月にもう一台6TBのHDDを買えば
アーカイブ用は6TBになる。やったね。
ということで例によって例のごとく書いておかないと忘れてしまうので以下HDD玉突き交換の手順
なお、交換自体は電源を落とさない方向で行います。録画マシンだから随時録画されているからね。
FreeBSD-12.0-RELEASE が出たんですよ。
いつもはEoLまでぎりぎりひっぱってから更新するということが多かったのですが、毎回それで痛い目にあうので
今回は早めに更新かけたんですよ。
で、どっぱまりました。
結論から書くと、ブート領域につかっているUSBメモリが死亡したせいで、OSのバージョンが中途半端に更新されて
しまっていろいろコマンドが動かなくなって死亡。っていうか、libc.so.7 がアレになると、ほんと困るな。
自宅のメインサーバは ML110G7 だった。
これは本当にいいマシンで、トラブルというトラブルは無く、
本当に24h365日問題なく稼働し続けてくれて、我が家のインフラの
一角を担ってくれていた。
ただ、一点の問題を除いては。
以前書いたHP ML110G7 と VMWare ESXi 5 を使って、ファイルサーバとクライアントを同居させるのおまけのようなエントリーです。
以前書いた時には、その手前までで疲れ果ててしまって、あまりにもざっくり書いたので、
今回は Windows のインストールをメインに書く。
うえで書いた環境をしばらく使っていて、特に問題もなく、 windows 8.1 まで更新して使っていたのだが、急に立ち上がらなくなってしまった。
お仕事系の環境は、qjail + xrdp でサーバ上にあるので、リモートデスクトップ使えればどこからでも大丈夫だったので、そんなに問題でも無かったのだが、
それでも無いと不便なので、入れなおそうと思ってみたら、windows 8.1 のインストールメディアが見当たらなかったので、7から入れて、10に上げることにした。
準備:
windows10を入れるためのHDDの空き
大体100Gくらいあれば大丈夫かな。今回は同じESXi 上で動いているファイルサーバからiSCSIで100Gほど切り出して、それをESXiで領域を認識させて、そこにインストールしました。
なんでこんなことするかって、まるごとバックアップとか、まるごとスナップショットを取りたかったから。
手順:
windows7を入れます。
VMWare tool を入れます。
グラボのドライバを入れて、パススルーさせます。
ここまでは、以前とまるっきり同じ。
ここまで動いたら、一旦スナップショットを取っておきます。
次に、Windows10のメディアを入れて、アップグレードします。
この、アップグレードの途中は、パススルーされたモニタの方には表示がでませんので、vSphere Client が必要になります。
ここだけちょっと面倒かも。
あとは、windows10が立ち上がってきたら、グラボのドライバを更新して、パススルーも見えるようになるので、終了です。
意外に時間がかかるのですが、基本的に放置しておけばいいだけなので、なにか別のことをやりながら、ときどき確認するだけでおっけーです。
おやくそくの、CAPSロックをCTRLキーにするレジストリも問題なく使えました。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,3a,00,3a,00,00,00,00,00
ということで、先日購入した ML110G7 上に、ESXi を入れて、DirectPath I/O を使って
今まで動いていた FreeBSD の zfs root の環境を載せて、さらに、クライアントとして、
Windows 7 でこれまた DirectPath I/O を使ってグラボをパススルーして、一台で二役を
させる方法がうまく動き出したので、後々の自分のためのメモ。うまくいくかどうかは
保証できません。猛犬注意。ぬれていて滑ります。
おうちサーバのストレージの容量が逼迫してきたのと、そろそろいくつかHDDが死に始めたのでこれを機にHDDを入れ替えることにした。
おうちサーバのメインの方は RAID Z2 なので、HDDが2台死んでもデータは保存されるので、6台あるHDDを、壊れるたびに 1.5TiBから3TiBのものに
入れ替えていって、ただいま最後のHDDがリビルド中なのである。これが終わると約10TiBの大きな保存庫が完成するのである。