Skype Blogs

News, stories, and updates from Skype

Share

スカイプの障害に関するお詫びと今後の対策について

先週発生したスカイプの障害について、ユーザーの皆様には多大なご迷惑、ご心配をおかけしたことを心よりお詫び申し上げます。

現在、すべてのスカイプの機能は復旧し、通常通り稼働しております。

少し遅れてしまいましたが、日本のユーザーの皆さまにも今回の障害に関する経緯やスカイプの対策についてお伝えしたく、スカイプのCIOであるラース・ラッベ(Lars Rabbe)が12月29日発表した、同事案に関するお詫びと今後の対策を以下のとおり、日本語に翻訳しました。

先週発生したスカイプの障害に関して、何が起きたのか、根本的な発生原因、今後同様の事態が発生することを最小限のとどめるための計画について詳しく説明させていただきます。まず、最初にスカイプはP2Pネットワークをベースとして成立していることにご理解をいただきたいと思います。先週、P2Pネットワークが不安定になり、重大な不具合が発生しました。この不具合は日本時間の12月23日午前1時から24日午前1時(12月22日、太平洋標準時 午前8時/グリニッジ標準時 午後4時 から12月23日、太平洋標準時 午前8時/グリニッジ標準時 午後4時)まで、約24時間継続しました。

不具合の原因は何だったのか。

12月22日(水)、オフラインのインスタント・メッセージをサポートするサーバの一群に過剰な負荷がかかりました。その結果、いくつかのスカイプ・クライアントでは、過剰な負荷がかかったサーバからの反応が遅延しました。Skype for Windowsクライアントのバージョン5.0.0152では、過剰な負荷が発生したサーバからの遅延した反応を適切に処理することができず、同バージョンを使用しているWindowsクライアントに不具合を引き起こしました。

最新のSkype for Windows であるバージョン5.0.0.156や、それより古いSkype for Windows バージョン4.0、Skype for Mac(マック用スカイプ)、Skype for iPhone(iPhone用スカイプ)、Skype on your TV(TV用スカイプ)、企業向けSkype ManagerやSkype Connectはこの最初の問題の影響は受けませんでした。

しかし、全世界のスカイプ・ユーザーの約50%は、Skype for Windowsバージョン5.0.0.152を使用しており、それらクライアントの約40%に不具合を引き起こしました。これらのクライアントは、利用可能なスーパーノードの25%から30%を含んでおり、この問題の結果として障害を引き起こしました。

全スカイプ・クライアントの約20%の不具合が、どうしてより大きなスカイプ機能の崩壊に繋がったのか。

スカイプのスタッフは負荷がかかり過ぎたサーバを機能不全にしたり、サーバへのクライアントの要求を取り除いたりと迅速に対応しましたが、多くのスーパーノードはすでに障害を起こしていました。スーパーノードはP2Pネットワークにおいて重要な役割を担っています。スーパーノードは通常のノードと比較して、ディレクトリーとして機能したり、他のスカイプ・クライアントをサポートしたり、それらの接続をサポートしたり、それぞれのスーパーノードごとに数百のピア・ノードをまとめたローカルな一群を作成する点において重要なのです。

一度、スーパーノードが故障すると、再度スタートしても、P2Pネットワークのリソースとして機能するには時間がかかります。その結果、P2Pネットワークのスーパーノードの数は、通常より25%から30%少なくなってしまいました。

なぜ他のスーパーノードが利用できなかったのか。

P2Pネットワークにおける25%から30%のスーパーノードの故障は過剰な負荷を引き起こしました。我々は通常、こうした負荷の高まりを想定していますが、同時に多くのユーザーが故障したWindowsクライアントを再起動させたのです。P2Pクラウドに再接続しようとしたため、これが負荷を最大限に高めました。この最初の障害が通常のピーク時間帯(日本時間翌日午前3時/大西洋標準時10時/グリニッジ標準時18時)の直前に発生しました。そして最初の障害発生の直後、通常同時刻に発生する約100倍のスーパーノードへのトラフィックが発生する結果になりました。

オペレーション上のパラメータが期待値の範囲内でない場合、スーパーノードには自らを守り、それらをホストするシステムに不利益となる影響を避けるためのメカニズムが組み込まれています。我々は、スーパーノードのトラフィックの増大によって、パラメータのいくつかが通常値を超え、その結果として、より多くのスーパーノードの閉鎖の開始につながったと考えています。これが残りのスーパーノードの負荷をさらに増大させ、発生した最初の事態から数時間後、ほぼ包括的な障害発生を引き起こした肯定的なフィードバックループを発生させました。

大変残念なことですが、サーバへの過剰負荷、Skype for Windowsクライアントのバージョン5.0.0.152のバグ、利用可能なスーパーノードの減少などが折り重なり発生したことにより、多くのユーザーにとって約24時間スカイプ機能が使えなくなる結果になりました。

どのようにしてスカイプはスーパーノードを回復させたのか。

スカイプのエンジニアリングとオペレーション・チームはスカイプの機能を回復させるため、P2Pネットワーク上に何百ものスカイプ・ソフトウェアのインスタンスを作成し、複数の専用スーパーノードの働きを担わせました。これは我々が「メガ・スーパーノード」と呼ぶもので、P2Pクラウドの復旧を早め、一時的に必要量のスーパーノードを提供するためのものです。

日本時間23日の昼(太平洋標準時22日の夜)の時点では、一部(約15~20%)のスカイプ・ユーザーの接続しか回復しておらず、スーパーノードへのトラフィックが引き続き非常に大量であったため、スカイプでは夜通し、数千のメガ・スーパーノードを作成しました。
引き続き、日本時間23日の夕方から深夜(太平洋標準時22日の夜)の間、P2Pネットワークの復旧に向けて作業を行い、日本時間23日未明(大西洋標準時22日の早朝)には、大多数のユーザーが通常通りP2Pネットワークに接続することができるようになりました。

皆さまにお知らせしたように、スカイプでは中核機能をできる早く回復させるために、日本時間24日昼から夕方(大西洋標準時23日の夜中)に渡って、スーパーノードを展開するために、普段はグループ・ビデオ通話に使われているリソースを使用し、日本時間25日未明(大西洋標準時24日の朝)には、これらのリソースを通常の状態に戻し、グループ・ビデオ通話機能をクリスマスに間に合うよう復旧させました。

これらのスーパーノードは、日本時間24日夕方から夜(大西洋標準時23日の夜中)に安定し、24日には数万のスーパーノードがP2Pネットワークをサポートするようになりました。スカイプでは日本時間25日(大西洋標準時24日)には、ある程度の量のメガ・スーパーノードをサービスから切り離しましたが、いくつかの稼働中のスーパーノードはクリスマスや新年の間のP2Pネットワークの安定を確保するために残してあります。

このようなことが二度と起きないために、スカイプは何をするのか。

スカイプは、全世界のユーザーにとって、ソフトウェアの信頼性、セキュリティ、そして品質がどれほど重要であるかを認識しています。

まず始めに、我々はソフトウェアが起こしうる問題について引き続き検証し続けます。そして、必要に応じてユーザーにダウンロードや自動配信用の「ホット・フィックス(修正プログラム)」を提供します。今回の場合は、Skype for Windowsのバージョン5.0.0.152にバグが見つかったため、我々はSkype 5.0 for Windowsを本件の前に修正しなければなりませんでした。今週には、ダウンロード用のアップデートを提供できる予定です。また、我々は、すべてのユーザーが最新のスカイプ・ソフトウェアを使用できるようにするため、自動更新の提供プロセスについても検証する予定です。スカイプはこれらの対策を講じることで、今回のような障害が再度起こる可能性を減らすことができると信じています。

次に、スカイプでは今回の一件から教訓を得るとともに、これまでのプロセスや手順を見直しています。特に、このような障害全般が起こる可能性を防ぐために、問題を素早く検知する方法や、システムを障害からより迅速に回復させる方法について見直します。

第3に、我々のSkype 5.0 for Windowsは広範囲に及ぶ社内テストや数十万のユーザーの方々に協力していただいた数カ月間のベータ・テストを経てはいたのですが、我々はシステムに影響を及ぼしかねないバグを検知し、排除するためのよりよい方法を確立するために、テストのプロセスを再検証する予定です。

最後に、スカイプでは今後も成長していくために、ユーザーをサポートする中核システムの容量を定期的に見直すとともに、システム容量や回復力に投資を続けて行きます。我々が1年前に開始した投資プログラムによって、すでに容量はかなり増加していますし、2011年にはさらなる投資を計画しています。これらの投資計画は、有料会員および企業向け製品の展開を引き続きサポートするとともに、何百万人ものユーザーが毎日信頼してくださっているスカイプ・ソフトウェアの中核機能の成長を継続的にサポートするためのものです。

スカイプはすべてのユーザーの方々に心から感謝するとともに、皆さまの継続的なご支援に身が引き締まる思いです。我々は皆さまがどれほどスカイプを信頼してくださっているのかを知っていますし、今回皆さまのご期待に応えることができず、また、今回の一件の間、ご期待に添えるコミュニケーションを取ることができなかったことについても理解しております。我々は今回の一件を教訓として、ソフトウェアの改善の余地を見極め、引き続き検証を続け、容量と安定性に投資し、障害からの復旧プロセスやユーザーの方々とのコミュニケーションをよりよいものに改善すべく努力します。皆さまのご理解に心から感謝いたします。

Share

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s