先日ConoHaちゃんでディスク障害があったようです。
自分はVer3.0を利用しており、収容先ホストが変更となった対象にも含まれていたので、おそらく障害の影響を受けてしまったようです。
何が起こったか
症状として、Dcokerコンテナが起動できなくなり、Dockerデーモンの再起動を試してみたらDockerデーモンも起動できなくなった、という症状が起きました。
復旧のため、VPSを再起動したら今度はVPSも起動できなくなった、という流れです。初めての出来事だったため、かなり焦りました
復旧方法
VPSに関してはConoHaのWebコンソールからログインを行い、復旧しました

サーバー一覧のコンソールをクリックすればWebコンソール画面にアクセスできます。
余談ですが、ConoHaのコントロールパネルがバレンタイン仕様になっていて、とても可愛いです!
ここからはスクショを撮っておらず記憶ベースになりますが、以下の作業で復旧させました
rootユーザーでログイン
VPSの起動に失敗していると、「rootユーザーでログインすると、メンテナンスモードになります」のような画面が表示されているので、rootユーザーでログインします
システムログ確認
以下のコマンドでシステムログを確認します
journalctl -xb今回のケースでは、以下のようなエラーが発生していました
/dev/vda2 ファイルの整合性が壊れている(UNEXPECTED INCONSISTENCY: RUN fsck MANUALLYのような表記)ファイルシステムの復旧
ログに出力されていた通り、fsckを利用してファイルシステムのチェックと復旧を行います
fsck -y /dev/vda2-yオプションはエラーを自動で復旧するオプションです。これがないとエラーを修正する際、毎回聞かれます
自分の場合、修正数が多かったため-yオプションを付けてすべて復旧としました
fsckコマンドが終了したら、VPSを再起動して正常に起動するか確認します
Dockerファイルシステムの復旧(は、できなかった・・・)
VPSはfsckで復旧しましたが、Dockerは起動できないままでした。
エラーを確認するとDockerが管理しているファイルシステムが破損している可能性があり、もっとも簡単な復旧方法は/va/lin/dockerディレクトリの作り直しでした(要するに、Dockerコンテナに関連するすべての設定やファイルを失う)
自分の場合、対象がWebサーバーだったので残しておきたいデータが無く、簡単に復旧する可能性がある方法としてDockerファイルを削除する方法で対処しました。
行ったことは以下のコマンドを実行しただけです
mv /var/log/docker /var/log/docker.broken
mkdir /var/log/dockerディレクトリを作り直した後、Dockerデーモンの起動、各種Dockerコンテナが正しく起動するようになりました
ただし、Dockerのネットワーク設定や、ボリューム設定も消えてしまっているため、これらの設定は戻す必要があります
以上です
今夏はVPSのハードウェア故障というなかなかにレアな障害に遭遇しました。
幸い、Webサーバーだったため失っても良いデータしか保存されていなかったのが幸いです。
後は環境はdocker-composeで管理していたため、環境復旧もかなり簡単に行うことができました。
今回は色々と運が良かったと思います。
ただ、これがDB環境だったら話が変わってきますね。
DBデータはmysqldumpでバックアップは取っていますが、正しく復元できるかなど、訓練を行っておいたほうが良さそうです。
オブジェクトストレージについては・・・ 流石に壊れないと思っています・・・