概要

Googleは、Cloud Storageのus-central1リージョンで発生した障害についてのインシデントレポート(#mSFVt6PiP557bjRyYsut)を公開した。障害は10月8日04:00(PDT)に始まり、同日16:30(PDT)に解消するまで約12時間30分続いた。影響はus-central1リージョンに限定され、他のリージョンや他のGoogle Cloudサービスへの波及はなかったが、この間、アップロードおよび書き込み操作でHTTP 503 UNAVAILABLEエラーやクライアント側タイムアウトが発生し、レイテンシとエラー率が上昇した。読み取り操作にも軽微な影響があったという。

障害の技術的な原因

根本原因は、特定のバックエンドストレージノードで発生した容量不足への対応だった。Googleはこの容量制約に対処するため、トラフィックをソートして最適化する機能を適用していたが、この最適化処理自体が一部のバックエンドストレージノードで深刻なリソース枯渇を引き起こした。リソースが枯渇したノードでは、オブジェクトデータの取り込み(インジェスト)処理がタイムアウトし始め、アップロード・書き込みの失敗につながった。さらに、基盤となるメタデータベースサービスの問題がこの期間のメタデータ処理エラーに寄与したことも明らかになっており、単一の要因ではなく複数の問題が重なって障害が長期化したことがうかがえる。

復旧までの対応

Googleはまず緊急の容量を動的に割り当てる対応を試みたが、これは奏功しなかった。次に、過負荷状態のノードから選別的にトラフィックを排出(ドレイン)する対応を実施し、同時に問題の原因となったトラフィックソート最適化機能自体を無効化する設定を展開した。加えて、メタデータベースサービスに対して行われていた直近の更新をロールバックした。これらの対応を経て、ドレインされたノードを順次正常なサービスに復帰させることで、最終的に障害は解消された。

今後の対応

Googleは予備報告の段階であり、完全な根本原因分析と予防措置を含む最終報告書を今後提供するとしている。現時点では、容量不足への対処として導入した最適化機能そのものが新たな障害を生んだという経緯が示されており、最終報告でどのような再発防止策が示されるかが注目される。