某VPSでKernel panicが出てパニックになったお話

  • このエントリーをはてなブックマークに追加

VPSサービスは安い割にいろいろとできてコスパがよいのですが、サーバー会社のメンテナンスなどで再起動が発生したりします。

通常は事前にアナウンスがされますが、ネットワーク機器などの障害などで緊急メンテナンスによる再起動が発生し、ごくまれにですが再起動がうまくいかないことがあります。

これがマネージドプランなどであればサーバー会社に問い合わせれば対応してくれますが、VPSは基本的に管理者権限をいただいているので自分たちで対応しなければいけません。

特にKernel panicなどが出た場合は本当に冷や汗しか出ないので、忘備録がわりにまとめておきます

 

緊急再起動でKernel panic発生!


サーバーが起動せずにSSHで接続ができないので、コンソールから確認すると、Kernel panicの文字が

なんど再起動しても結局出るので、(ダメ元で)サポートセンターに問い合わせつつ、復旧手段を考えてみました

この時点で恐れているのは
  • ストレージが壊れてデータが全壊している
  • 現時点でデータは無事だがOS再インストールを行うしかない=データが消える
なんとかデータが生きているかどうか確認したいので、レスキューモードで起動を行う。

さくらのVPSの場合、レスキューモードを行うにはサーバー選択した後に「各種設定」ー「OSインストール」で「ISOイメージ」からあらかじめアップしたOSのISOイメージを選択して行う。

しかしさくらのVPSの場合は「データが初期化されます」みたいな感じのアラートが出るので、サポートセンターで「レスキューモードを使うときは出ないですよね」と確認しつつ作業を行う。
(実際、WindowsでいうところのF8などを押しながら起動してコマンドプロンプトを呼び出すようなものなのでフォーマットをしない限りデータは消えない)

 

ストレージが見つからない?


レスキューモード進めるうちに上記のような画面が表示された。
よく見ると、パーティションが見つからないとのこと。

つまりOSが入っているドライブが見つからないですという状態
レスキューモードでストレージをマウントしようとしても見つからずにエラーが出ている状態。

ここでようやく障害の原因が特定。
再起動のタイミングで何らかの理由でストレージがおかしくなり、マウントが外れたことでOSが起動しなくなった感じ。

最悪データが消えたのではという不安に駆られながらとりあえずディスクをチェックしなきゃということで

これでディスクの検査と復旧を行い、大量のエラーを吐き出しながらなんとか起動することができました。

データも消えておらず、データベースが起動しなくなっていたのでそこを修正することで問題なく復旧しました。

 

復旧したあとに気づいたこと

おそらく今回の場合はレアパターンとなりますが、これはWindowsに例えると使用している最中に電源が落ちた状態で再起動した場合にHDDが見つからなくて起動しなくなったパターンそのものでした。

原因調査などで1日くらいかかりましたが、なんとか復旧できてよかったなというのと定期的なバックアップをする必要があることを痛感した次第です。

もしKernel panicで同じような状況になった人がいれば、データ削除や初期化をせずにチェックディスクをしてほしいと思います。

 

 

執筆者:松本[ エンジニア ]

関連記事

プログラミング

SharePoint REST APIを使用してリストの情報を取得し、headerにナビを作る

SharePointで作成したリストの情報をREST APIを使用して取得してみましょう。 今回は、APIで取得した情報を、headerにリンクとして差し込んでみます。サイト全体共通のナビでも、リストを使用すると、一か所で管理できるので便利です。 目次1 前提条件2 1.REST APIで情報を取得2.1 REST APIのURL2.2 データを取得する処理3 2.取得した情報をheaderに表示 前提条件 SharePoint Online モダンUI カスタムJSが使用で […]

WordPress

WordPressで権限やユーザーごとに管理画面のサイドメニュー表示を切り分ける

デフォルトだといろいろな項目が表示されているWordPressの管理画面のサイドメニュー。 慣れていない人にはわかりづらいですよね。 また、権限によってデフォルトで非表示にしてくれたりもしますが、この部分は見せたくないな…ということも多いと思います。 今回はWordPressで権限やユーザーごとにサイドメニューの表示を変更する方法をご紹介します。 目次1 権限の種類について2 function.phpに記述する2.1 サイドメニューの非表示用のコード2.2 権限ごとに振り分け […]

プログラミング

jQuery+PHPで大容量ファイルを分割アップロードするお話

ファイルのアップロードを行う際に注意しないといけないのが「アップロード容量」と「タイムアウト」です。 どちらもサーバーの設定に関わるところでレンタルサーバーでは対処しきれないところもあり、大容量にするとそれだけアップロードに時間がかかりタイムアウトが発生しやすくなります。 そこでフロント側で分割してファイルをアップし、バックエンド側で受け取った後に結合するようにするとよいでしょう 注意すべき点として通常のPOSTでの送信ではないため、あらかじめそこら辺を考慮した処理が必要とな […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。