Windows Azure中斷調查

fmms 12年前發布 | 10K 次閱讀 Windows Azure

作者 Jeff Martin 譯者 曹如進

        近日,微軟 Azure 云計算平臺部分服務發生中斷,起因是一個閏年 bug。Azure 服務器和軟件時間剛過 2 月 29 日 UST 時間 00:00,服務故障便拉開了序幕。日期變化暴露代碼中存在缺陷——閏年沒有被正確處理好。隨后附加服務器的部署,讓整個 Windows Azure 云平臺陷入了級聯錯誤。

        那么什么是導致失敗的根本原因呢?Laing解釋說, 應用程序虛擬機使用傳輸證書與托管操作系統之間進行安全通信。傳輸證書創建后的持續時間僅被設計成一年。原有的缺陷代碼在創建失效日期時,采用的方法是將 當前日期的年份字段加1,結果 2012 年 2 月 29 日創建的傳輸證書失效期被定為一個不存在的日期——2013年 2 月 29 日。該錯誤阻止了新的傳輸證書的創建,并成為了此次事件的導火索。

Laing 總結了微軟采取的針對預防、檢測、響應及恢復方面的幾個步驟。此外,微軟對于“所有使用 Windows Azure 計算、訪問控制、服務總線與緩存”的用戶,不管是否受到此次事件影響,都將提供 33% 的費用返還。

Windows Azure中斷調查

        Windows Azure 服務儀表板 

        Windows Azure 中斷時間線(以下所有時間均為美國太平洋時間)

  • 2012-02-28 16:00  錯誤最開始發生在 2012 年 2 月 29 日 00:00。新的虛擬機無法生成正確證書,結果自行終止。25分鐘過后,托管操作系統重新啟動虛擬機創建過程,但結果仍然失敗。整個過程需要 3 次重啟嘗試,每次相距 25 分鐘。
  • 2012-02-28 17:15  在錯誤發生整整 75 分鐘之后,誤差閾值達至上限,失效集群通知首要響應人員“受影響的系統無法恢復”。
  • 2012-02-28 18:38  響應團隊初步確定問題出在日期/事件 bug 上。
  • 2012-02-28 18:55  基于團隊對問題的評估,也為了防止用戶造成額外的損害,微軟禁用了全球范圍內所有集群的服務管理功能。
  • 2012-02-28 22:00  響應團隊為更新代碼創建測試及上線計劃。
  • 2012-02-28 23:20  代碼更新完畢。
  • 2012-02-29 01:50  響應團隊完成上線測試,將更新代碼后的應用程序部署到測試集群中。
  • 2012-02-29 02:11   團隊完成對生產集群的補丁部署,同時開始向所有集群部署補丁。
  • 2012-02-29 02:47  原有 bug 發生時,有 7 個集群在剛好處于部分更新狀態。這 7 個集群收到的單獨更新在部署之前并沒有測試,結果又引入了另外一個 bug,繼而導致網絡連接失效。
  • 2012-02-29 03:30  為這 7 個單獨的集群創建修訂后的補丁,并在部署前進行了測試。修訂版本計劃在 05:40安裝。
  • 2012-02-29 05:23  微軟宣布大部分客戶的服務管理功能已經恢復(除了那單獨的 7 個集群以外)。
  • 2012-02-29 05:40  7個單獨的集群接受更新以恢復網絡功能。
  • 2012-02-29 08:00  7 個單獨集群大部分可以運作。少數個別服務器由于各種不同的中斷問題還存在錯誤,微軟員工當天繼續工作以進行修補。
  • 2012-03-01 02:15  所有集群服務全部功恢復正常。

        查看英文原文:http://www.infoq.com/news/2012/03/azure_outage

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!