先週大規模なダウンタイムを経験したSkypeのCIO Lars Rabbeが、このほど事故の詳細を発表した。
原因は、Skype for Windowsのクライアント(バージョン5.0.0152)のバグだった。
Rabbeは記事の最初のほうで、12月22日水曜日にオフラインのインスタントメッセージングを担当するサーバのクラスタがオーバーヒートした、と説明している。
そこでSkypeのクライアントの多くが、過負荷のサーバからの応答の遅れを経験し、その遅延をWindowsのクライアントは適切に処理できなかった。そして結果的に、そのバージョンのクライアントが機能しなくなった。
最初は、そのバージョン以外の新旧のWindowsクライアントや、Mac、iPhone、テレビ受像器などからのSkypeユーザは影響を受けなかった。
しかしそれでも、問題のバージョン5.0.0152はWindows上で最も多く使われているクライアントだったため(Rabbeによれば、全世界のSkypeユーザの50%以上が使っている…その約40%に不具合が生じた)、やがて全システムが崩壊した。
SkypeのグローバルP2Pネットワークを構成しているスーパーノードのほぼ1/3が、問題のWindowsクライアントだった。それらのスーパーノードも、たちまち機能しなくなった。
ブログ記事は、次のように述べている:
スーパーノードは通常のノード以上の職務を担当するから、SkypeのP2Pネットワークにとってきわめて重要である。それらはディレクトリのような機能を担当して、そのほかのSkypeクライアント同士の接続を確立する。一つのスーパーノードの下には、数百ものピアノードからなるローカルクラスタが形成される。
スーパーノードが機能しなくなると、それがリスタートしたときでも、P2Pネットワークのリソースとして再び可利用となるためには、かなりの時間を要する。その結果、しばらくのあいだSkypeのP2Pネットワークは、通常よりも25%から30%ぐらい少ないスーパーノードで動かざるを得なくなった。それにより、可利用スーパーノードへの負荷も異常に増加した。
また、Windowsクライアントのクラッシュを経験したユーザの多くがそのソフトをリブートしたため、SkypeのP2Pネットワーク全体の負荷が急増した。Rabbeの説明によれば、スーパーノードへのトラフィックが通常の100倍にも達し、そのため最終的に大規模なシステムダウンが生じた。
いわば、P2Pクラウド(cloud, 雲)に生じた嵐だ。
Skypeがスーパーノードのネットワークをどうやってリカバリしたか、再発防止策として何をしたか、などを知りたい方は、ぜひブログ記事の全文をお読みいただきたい。
でも、迅速に、そしてこれほど詳細に、事故の原因や対策を説明できる企業は、偉いと思うな。
지난 주대규모 다운 타임을 경험한Skype의 CIO Lars Rabbe가, 이번에 사고의상세를 발표했다.
원인은, Skype for Windows의 클라이언트(버젼 5.0.0152)의 버그였다.
Rabbe는 기사의 최초 쪽으로, 12월 22일 수요일에 오프 라인의 인스턴트 메시징을 담당하는 서버의 클러스터가 오버히트 했다, 라고 설명하고 있다.
거기서 Skype의 클라이언트의 대부분이, 과부하의 서버로부터의 응답의 지연을 경험해, 그 지연을 Windows의 클라이언트는 적절히 처리할 수 없었다.그리고 결과적으로, 그 버젼의 클라이언트가 기능하지 않게 되었다.
처음은, 그 버젼 이외의 신구의 Windows 클라이언트나, Mac, iPhone, 텔레비젼 수상기등에서의 Skype 유저는 영향을 받지 않았다.
그러나 그런데도, 문제의 버젼 5.0.0152는 Windows상에서 가장 많이 사용되고 있는 클라이언트였기 때문에(Rabbe에 의하면, 전세계의 Skype 유저의50%이상이 사용하고 있는 그 약40%에 불편이 생긴), 이윽고 전시스템이 붕괴했다.
Skype의 글로벌 P2P 네트워크를 구성해 있는 슈퍼 노드의 거의1/3가, 문제의 Windows 클라이언트였다.그러한 슈퍼 노드도, 금새기능하지 않게 되었다.
브로그 기사는, 다음과 같이 말하고 있다:
슈퍼 노드는 통상의 노드 이상의 직무를 담당하기 때문에, Skype의 P2P 네트워크에 있어서 극히 중요하다.그것들은 디렉토리와 같은 기능을 담당하고, 그 다른 Skype 클라이언트끼리의 접속을 확립한다.하나의 슈퍼 노드아래에는, 수백의 피아노드로부터 되는 로컬 클러스터가 형성된다.
슈퍼 노드가 기능하지 않게 되면, 그것이 restart 했을 때에도, P2P 네트워크의 자원으로서 다시 가능 이용이 되기 위해서는, 상당한 시간을 필요로 한다.그 결과, 당분간의 사이 Skype의 P2P 네트워크는, 통상보다25%에서30% 정도 적은 슈퍼 노드로 움직이지 않을 수 없게 되었다.그것에 의해, 가능 이용 슈퍼 노드에의 부하도 비정상으로 증가했다.
또, Windows 클라이언트의 크래쉬를 경험한 유저의 대부분이 그 소프트를 리부트했기 때문에, Skype의 P2P 네트워크 전체의 부하가 급증했다.Rabbe의 설명에 의하면, 슈퍼 노드에의 트래픽이 통상의 100배에도 달해, 그 때문에 최종적으로 대규모 시스템 다운이 생겼다.
말하자면, P2P 곳간 땅두릅(cloud, 구름)에 생긴 폭풍우다.
Skype가 슈퍼 노드의 네트워크를 어떻게 리커버리 했는지, 재발 방지책으로서 무엇을 했는지, 등을 알고 싶은 분은, 꼭브로그 기사의 전문을 읽어 주시기 바란다.
에서도, 신속히, 그리고 이 정도 상세하게, 사고의 원인이나 대책을 설명할 수 있는 기업은, 훌륭하다고 생각하지 말아라.
http://jp.techcrunch.com/archives/20101229skype-reveals-a-bug-in-its-windows-client-was-what-crashed-its-system/