Eureka

アクアリウムとかサカナクションのこと

ファイルサーバが突然死んでしまったお話

適当に、忘れるな。2019年、年末を。

最終的には復旧してる。だらっと文章を書く癖があるので、結論から言うと、運用設計はしっかり、特にバックアップは大切だと身をもって実感したというお話。知ってはいたよ、でも身を持って実感できた。

弊社には、よく分からない理由で構築された2つのサーバ環境がある。一つは社員が繋ぐRDS環境。もう一つはインフラ検証用の環境。作った方々は社内におらず、いいタイミングで事業所勤務になった私が管理することになった。管理することになったはいいが、引継は一切ない、正しいかも定かではない設計書、毎週月曜日の早朝はメンテ日ね☆と記載された謎の運用ルール、ベンダのサポートが有効になってるかも分からない。

詳しくは省くが、とある日、ファイル共有が問題になることがあった。ストレージのアクセス権の関係上見せたい人に資料を見せられないとのこと。検証環境のリソースが空いていたこともあり、そこにsambaでファイル一時共有サーバを構築した。大前提として「一時共有」のためと念押しして置いたにも関わらず、それはいつの間にか業務情報を格納するファイルサーバに昇華していた。

そしてそれは突然起きた。いつもは現場に出ていて、たまたま帰社した時に「昨日からファイルサーバに繋がらないです…。」と別部署の後輩から突然報告を受けた。たまにネットワーク的に繋がらない場合もあるが、昨日からってなると期間が長すぎる。直属の後輩君が不慣れながらも仮想化環境にログインしVMを確認して一言『4号機のVM全部死んでますね』「おんやぁ…(震え)」

まだ脳みそが沸いてる私は「まぁ4号機(物理サーバ)が死んだら3号機とかに移せばいいんじゃない?」と甘く見積り、とりあえず物理サーバを目視で確認しに行く。すると、物理サーバは正常稼働していた。やっとここで事の重大さに気づく。死んでいたのはNAS*1で……、そしてディスク障害でなかった。

NASが沈黙している、パワーオンスイッチを押しても反応がない、電源障害だ、バックアップ取ってない、ファイルサーバのデータが…!データがぁ! などと脳内で色々考えていましたが、たった一言声を出せたのは「ヤバイ…」だけ。本気でヤバイ時って語彙力無くすよね。

そもそも、サーバもNASもEOS*2を迎えていてベンダサポートは受けられない状態。要するに終わった。さようならファイルサーバ内のデータ。とりあえず上司に報告をしました。「NASの電源が逝ってました。どーやっても動きません。」『ええ…?どうにかならない…?』どうにかしてよと言いたいのはこっちである。

 

壊れた筐体と同じ筐体が1台ある。それも絶賛運用中ではあるが、社員が使っているサーバのNASではなかった。これを止めて外側を使えば…、HDDのデータを復旧させることができる…?しかし、私の知見の中でそんなやり方の前例はない。しかし他に思いつく手立てがなかったので、上司の許可を得てレッツ行き当たりばったり復旧。

以下、壊れた筐体はNAS1、動いていた筐体はNAS2表記となります。

作業フローは結構簡単。

  1. 検証用VMを全部止める
  2. 物理サーバーを止める
  3. 生きているNAS2を止める
  4. 死んでるNAS1と生きてるNAS2のHDDを入れ替える
  5. NAS2(中身はNAS1)を起動
  6. 物理サーバを起動
  7. ファイルサーバを起動しデータを取得する

 

NASのHDD入れ替えまでは余裕でした。入れ替えてNAS起動するときが1番心臓に悪かった。エラービープ音で一撃死、私の心臓も停止します、頼むー動けー動けーとひたすら祈ってました。ガチ祈りしてたら後輩が冷めた目で見てきた。祈りの力はすげぇんだぞぉ?!

無事立ち上がった筐体のディスプレイには、NAS1と記載されている。良かった良かった、HDD認識してフォーマットかけるような仕様じゃなくて良かった…。上司がボソっと「人間でいうと脳の取り換えっこだねぇ…」とかほのぼの言っていた。ちょっと黙って。

LANを挿してWebコンソールから状態を確認するが繋がらない。PINGも通らない。おんおん(?)しながら再度サーバルームに入って筐体のディスプレイを確認するとLAN1のIPが164.254.100.100。リンクローカルアドレスぅ…。LANケーブルとノートPCを持ってサーバルームに突撃し、ノートPCのアドレスを164.254.100.101/24に固定しNAS2とLANケーブルでつないでWebコンソールに接続、繋がったー!!!

IPアドレスをリンクローカルアドレスから社内のIPアドレスに変更して、PINGを確認して疎通OK。物理サーバを起動して、ストレージを確認すると何にもなぁぃ?!仕方なく新規でストレージを追加する…が、作成者じゃないからフォルダパスがわかんねぇ。ホントどうでもいいんですけど、開発者はさ、ちゃんとさ、設計書書けよ!マジで。

NAS2のWebコンソールからフォルダの情報を確認し、ネットワークストレージの設定を物理サーバに入力して読み込ませる。物理サーバからネットワークストレージを参照して、ファイルサーバのvmxファイルを探して、インベントリ登録を行って起動して終了!!!と思ったら、VM側からエラー…。よく読むと「インベントリが重複してるよ!」とのこと。
NAS障害のせいで、アクセス不可と記載されているインベントリを片っ端から削除、削除、削除。何もなくなったところで、お目当てのファイルサーバのvmxファイルをインベントリ追加する。

インベントリに追加できればこっちのもの、VMをパワーオンする!応答がない!質問に答えろとのこと、サマリから「VMコピーしたん?」って聞かれていたので「したよ!」と半ギレで嘘の回答しておく。

VMも無事起動したので、社内ネットワークからファイルサーバにPINGを送る…、通じないorzなんでこう、ワンステップごとに繋がらない事象が発生するのか。
IPを確認すると、全く違うアドレスが登録されている。Linuxの「/etc/sysconfig/network-scripts/ifcfg-eth****」を確認、ちゃんとIPは振られてるのに…?あ、MACアドレスが違うのねー、ということでMACアドレスを直してnetwork restart。無事接続できて復旧。

ファイルサーバ内のファイルを確認し、接続断が起きた時点のファイルは残っているということが分かり、とりあえずクビにはならなかったよ、セーーーーーーフ。
色々書いたけど自分への備忘録でしかない。作業時間は4時間ぐらい、行き当たりばったりだったけど早かったほうだと思う。
忘れちゃいけないバックアップ、設計考えるのも重要だけど…めんどくさがらずファイルレイヤでもいいからバックアップすりゃドタバタしなかったんや…。

上司に「さすがフルスタックエンジニア」と言われました、フルスタックエンジニアのお給料はもっと高いです、お金をください。
迷惑をかけた別部署の後輩にはケンタッキーおごっておきました、おいしかったです。

*1:Network Attached Storage ネットワーク上のHDD

*2:End Of Support