VPSサービスは安い割にいろいろとできてコスパがよいのですが、サーバー会社のメンテナンスなどで再起動が発生したりします。
通常は事前にアナウンスがされますが、ネットワーク機器などの障害などで緊急メンテナンスによる再起動が発生し、ごくまれにですが再起動がうまくいかないことがあります。
これがマネージドプランなどであればサーバー会社に問い合わせれば対応してくれますが、VPSは基本的に管理者権限をいただいているので自分たちで対応しなければいけません。
特にKernel panicなどが出た場合は本当に冷や汗しか出ないので、忘備録がわりにまとめておきます
緊急再起動でKernel panic発生!
サーバーが起動せずにSSHで接続ができないので、コンソールから確認すると、Kernel panicの文字が
なんど再起動しても結局出るので、(ダメ元で)サポートセンターに問い合わせつつ、復旧手段を考えてみました
この時点で恐れているのは
- ストレージが壊れてデータが全壊している
- 現時点でデータは無事だがOS再インストールを行うしかない=データが消える
さくらのVPSの場合、レスキューモードを行うにはサーバー選択した後に「各種設定」ー「OSインストール」で「ISOイメージ」からあらかじめアップしたOSのISOイメージを選択して行う。
しかしさくらのVPSの場合は「データが初期化されます」みたいな感じのアラートが出るので、サポートセンターで「レスキューモードを使うときは出ないですよね」と確認しつつ作業を行う。
(実際、WindowsでいうところのF8などを押しながら起動してコマンドプロンプトを呼び出すようなものなのでフォーマットをしない限りデータは消えない)
ストレージが見つからない?
レスキューモード進めるうちに上記のような画面が表示された。
よく見ると、パーティションが見つからないとのこと。
つまりOSが入っているドライブが見つからないですという状態
レスキューモードでストレージをマウントしようとしても見つからずにエラーが出ている状態。
ここでようやく障害の原因が特定。
再起動のタイミングで何らかの理由でストレージがおかしくなり、マウントが外れたことでOSが起動しなくなった感じ。
最悪データが消えたのではという不安に駆られながらとりあえずディスクをチェックしなきゃということで
1 |
# fsck -y /dev/vda3 |
これでディスクの検査と復旧を行い、大量のエラーを吐き出しながらなんとか起動することができました。
データも消えておらず、データベースが起動しなくなっていたのでそこを修正することで問題なく復旧しました。
復旧したあとに気づいたこと
おそらく今回の場合はレアパターンとなりますが、これはWindowsに例えると使用している最中に電源が落ちた状態で再起動した場合にHDDが見つからなくて起動しなくなったパターンそのものでした。原因調査などで1日くらいかかりましたが、なんとか復旧できてよかったなというのと定期的なバックアップをする必要があることを痛感した次第です。
もしKernel panicで同じような状況になった人がいれば、データ削除や初期化をせずにチェックディスクをしてほしいと思います。