どどんとふ公式鯖の派手な障害やらかし

どどんとふ公式鯖稼働系の物理サーバーのファイルシステムが溢れたことにより稼働系仮想マシンのファイルシステム破損が発生し待機系に切り替わったものの稼働系と待機系のデータ同期が一部不完全だったことから部屋データと画像データの不一致が発生しておりました。

状況を調査した結果、どどんとふ公式鯖の全部屋データを不整合がない状態の最新バックアップである2018/05/21 23:30時点に全データのロールバックを行いました。 避難所についても同様の状況であることから、救済措置として第壱~第四鯖の部屋削除日数を5→10日に延長しております。 (第五、第六鯖はもとから10日のため)

部屋データの消失およびロールバックが発生した原因というか経緯は以下の通りです

  • 5/21に発生した障害時にramdisk→hddへのコミット処理が多重起動防止のフラグを残したまま異常終了。
  • 多重起動防止フラグが残っているので同期処理が実行されなかった
  • ramdiskのデータが未コミットのため、待機系へのデータ同期、避難所へのコピー、日次バックアップについては、 ramdisk上の部屋データのみ全て5/21時点しかない
  • サーバー再起動時にはフラグファイル有無に関係なくコミット処理を行うため、5/21 23:00のリカバリー時に実行した再起動時の状態が唯一整合性のある状態
  • 5/26 14:50 稼働系の画像データがあるSSD領域のファイルシステムが溢れたことによってどどんとふ公式鯖の稼働系が停止し、待機系に切り替わった
    • ファイルシステム溢れの原因は5/19のメンテナンス後にバックアップを取得した際に実行したsnapshotが残存していたため、公式鯖の画像データの増減によりbtrfsのmetadataが削除されず蓄積され続けたため
  • 待機系は部屋データの同期が5/21時点で止まっていたため、部屋データは5/21なのに画像データは日次バックアップにより5/26が最新という不整合状態になっていた

また、全ての部屋データとキャラクターデータの整合性確認は現在の運用体制では不可能ですので、申し訳ございませんが、 上記以外の不整合や不備がありましても個別のリカバリー等には応じかねます。

で、以下のような再発防止策を実施しています。

  • 日次バックアップ処理の改良
    • ramdisk→hddへのコミット処理を多重起動防止のフラグ有無関係なしに実施
    • 多重起動防止のフラグをリセット(日次バックアップ時は定期コミットをそもそも動かしていないため多重起動しようがない)
  • 5/19の不安定化になった原因はKernel更新により対策済
  • ファイルシステム溢れの原因となったsnapshotを削除