BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Windows Azureの停止を調査

Windows Azureの停止を調査

原文(投稿日:2012/03/16)へのリンク

MicrosoftのAzureクラウドコンピューティングプラットフォームが最近、閏年バグのために、部分的なサービス停止を被った。サービスを提供しているサーバーとソフトウェアが2月29日 00:00 USTになったら、障害が起き始めた。日付の変化が閏年を正しく考慮していないコードの欠陥を露呈した。そして追加のサーバーが配置されると、障害は Windows Azureクラウドプラットフォーム中に次々と伝搬し始めた。

では、障害の真因は何だったのか? Laing氏の説明 によると、アプリケーション仮想マシン(VM)は、このVMとホストOS間のセキュアな通信を容易にするために、転送証明書を使っている。転送証明書が生成されると、1年間だけの寿命となるように設計されている。元々バグのあるコードは、現在の日付を取って、年フィールドに1を加えて、満了日としていた。その結果、2012年2月29日に作成された転送証明書は、2013年2月29日が満了日になったが、これは存在しない日である。このエラーのために、新しい転送証明書が作成できなくなり、ヒューズが燃えた。

Laing氏は、予防、検知、レスポンス、回復に関して、Microsoftはいくつかもの手段を嵩じた、と結論している。Microsoftは、33%のクレジットを「 Windows Azureコンピューティング、アクセスコントロール、サービスバス、キャッシングの全ての顧客に対して」、実際の利用に影響があったかどうかにかかわらず、支払う。

Windows Azure Service Dashboard  

Windows Azure 停止の推移(時刻はPST)

2012-02-28 16:00  USTが2012年2月29日 00:00になった時にエラーが始まった。新しいVMは、適切な証明書を生成できなかった。25分間の沈黙の後に、ホストOSがVM生成プロセスを再スタートしたが、これも失敗するだろう。25分間隔で、全部3回の再スタートを試みるプロシージャコールがあった。

2012-02-28 17:15  障害が起きて、正確に75分( 3 x 25 分)後に、エラー閾値に達し、障害のあるクラスターが最初の対応者に、障害のあるシステムが回復できないことを通知した。

2012-02-28 18:38  対応チームが問題の原因となる最初の日時を確認した。

2012-02-28 18:55  問題に対するチーム評価に基づいて、顧客が更なるダメージの原因にならないように、Microsoftは世界中の全クラスタでサービス管理機能をオフにした。

2012-02-28 22:00  対応チームは、アップデートコード用のテストとロールアウト計画を作成した。

2012-02-28 23:20  コードのアップデートを完了した。

2012-02-29 01:50  対応チームは、テスト用クラスタにテストとアップデートしたコードの入ったアプリケーションをリリースした。

2012-02-29 02:11  1つの製品クラスタにパッチを出した時には、チームは全クラスタにパッチをデプロイし始めていた。

2012-02-29 02:47  7つのクラスタは、部分的にアップデートされた状態のままだった。これらは元々のバグで被害があった時に、アップデートされていたのである。これらの7つは、デプロイ前にテストをしなかった別のアップデートがなされており、このアップデートは、ネットワーク接続性を停止する、別のバグをもたらした。

2012-02-29 03:30  修正されたパッチがこの7つのクラスタように作られ、今回は、デプロイ前にテストされた。修正版は 05:40にインストールが予定された。

2012-02-29 05:23  Microsoftは大多数の顧客へのサービス管理は回復した、とアナウンスした(別個の7つのクラスタは除く)。

2012-02-29 05:40  7つのクラスタがネットワーク機能を回復するために、アップデートを受け取り始めた。

2012-02-29 08:00  7つのクラスタは、ほとんど稼働できる状態になった。いくつかの個々のサーバーが様々な停止によって引き起こされたエラーを経験した。Microsoftのスタッフがそれらを修復するために1日中働き続けた。

2012-03-01 02:15  全クラスタとサービスの機能が完全に回復した。

この記事に星をつける

おすすめ度
スタイル

BT