いつも Azure IaaS テクニカル サポート チームのブログを参照いただきましてありがとうございます。
今回は日本時間の 10/13 に発生しました仮想マシンの障害について、RCA (Root Cause Analysis) レポートの日本語版の抄訳を紹介します。原文は 状態の履歴および根本原因分析 (RCA) を確認ください。
日本語版の抄訳の PDF については、以下のリンクよりダウンロード頂けます。
本障害では、仮想マシンをご利用いただいている一部のお客様に対し、多大なるご不便をおかけすることとなりました。あらためて、今回の障害により多くのお客様にご迷惑をお掛けしましたことを深くお詫び申し上げます。
影響の概要:
日本時間 10 月 13 日 午後 3 時 27 分から午後 9 時 42 分まで Windows ベースの仮想マシンをご利用されている一部のお客様で、起動、作成、更新、削除などの管理オペレーションを実施されている時、失敗のメッセージを受け取られた可能性がございます。また、新規仮想マシンのデプロイや拡張機能の更新も、失敗となっていた可能性がございます。可用性セットや仮想マシンのスケールセットへのオペレーションも同様に影響を受けていました。
Windows ベースではない仮想マシンは影響を受けなかったものの、Windows の仮想マシンに依存しているサービスは、リソース作成時に同様の影響を受けていた可能性がございます。
原因:
Windows ベースの仮想マシンは、仮想マシンと Azure ファブリック間の相互作用を管理する Windows 仮想マシンエージェント(VM エージェント)を利用します。
Windows 仮想マシンの作成や更新を実施する際、Computer Resource Provider(CRP)はプラットフォームイメージリポジトリから最新版の VM エージェントパッケージのダウンロードするロケーションを取得いたします。VM エージェントはこの取得した情報を用いて、仮想マシン内でエージェントを最新版に更新します。
クラシックリソースを Azure Resource Manager (ARM) へ移行する行程の一つとして、弊社はイメージと拡張機能の発行元を、地域的(リージョナル)な ARM 発行パイプラインへマイグレーションしており、現在は約 20% 程完了しております。
午後 3 時 27 分ころ、弊社内のツールはこれらの移行を行うため ARM テンプレートを生成しましたが、このツールはエッジケース(最大や最小限の動作パラメータでのみ発生する問題または状況) を考慮していなかったため、意図されてない結果として、マイグレーション後に、 ARM リージョナルサービス内でのみ発行されているサブスクリプションに対して、Windows VM エージェント拡張機能が表示されるようマークされてしまいました。その結果、地域的なプラットフォームイメージリポジトリから何も受け取れず(zero results)、VM 管理オペレーションが失敗し始めました。
お客様の Windows 仮想マシンにおける起動、停止、作成や削除などのオペレーションは Windows VM エージェントの拡張機能を見つけることができなかったため、完了することができない結果となってしまいました。
私たちの変更管理のプロセスの一部は、Safe Deployment Practice (SDP) のフレームワークをレバレッジすることです。
(https://azure.microsoft.com/en-us/blog/advancing-safe-deployment-practices/). この場合、弊社クラシックモデルのインフラ機能のいくつかは SDP フレームワークと合致しません。この不適合性は私たちが ARM への完全なマイグレーションを行う重要性を強調するものになります。マイグレーションが完了しましたら、クラシックリソースに特化したツールを使わないまま、SDP フレームワーク使用し、すべて変更ができるようになります。
緩和策:
根本原因の特定にあたり、Azure コンポーネント用の複数のリリースがプラットフォーム上で同時に実行されており、それぞれを調査するため時間を要することになりました。根本的な原因を確実に特定できるよういくつかの想定されるシナリオを排除するため、それらに関連するコンポーネントに特化した技術者たち(SMEs)が調査対応を進めていたことも時間を要した理由でした。
私たちは問題自体を確定し、いくつかの緩和策を確認した後、まず始めに一つの地域にて拡張機能を公開し影響を軽減させて、その結果を検証しました。そして仮想マシンへの膨大なリクエストでもこれ以上影響が出ない事を確認いたしました。この検証の後、一つ一つの地域で新しいパイプラインへの変更を展開し始め、事象緩和へと至りました。変更が完了した後、エンジニアたちはオペレーションの成功率を監視しておりました。
次のステップ:
影響があったお客様へ深くお詫び申し上げます。Microsoft Azure プラットフォームの改善、そして将来的にこのような障害が再発しないよう私たちは下記を継続して取り組んでいきます。
- すべての復旧作業が実施されるまで、未実施のパッケージ(Linux バージョンの VM エージェントも含む)のマイグレーションを一時中断します。
- 追加の事前確認 (pre-check) と事後確認 (post-check) を開発し、実装いたします。
- VM オペレーション中に VM エージェントが見つからないエラーが発生したとき、VM オペレーションがエラーから復旧できるよう改善いたします。
- エンジニア部門は各拡張タイプをフライトするため、そしてマイグレーションの残工程に存在しうる障害を防ぐために、他の安全策も評価しています。
フィードバックのお願い:
Azure カスタマー・コミュニケーション・エクスペリエンスの向上のためのアンケートにご協力ください: https://aka.ms/AzurePIRSurvey
※本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。