« 2010年4月 | トップページ | 2010年6月 »

2010年5月

2010.05.23

ニコニコ動画のストレージの話を聞いてみた

 5月13日に東京ビッグサイトに出向いて、「第12回 データストレージEXPO」の基調講演

「ストレージ先進ユーザーが語る!日本最大の動画コミュニティサイト「ニコニコ動画」を支える、ドワンゴのストレージ戦略」
千野裕司氏((株)ドワンゴ 執行役員 研究開発本部長)

を拝聴してまいりました。
 本当はTwitterを使ってリアルタイムにツイートできれば良かったのですが、会場のWi-Fiの電波状況があまりよろしくなかったので断念。
 意外にも分かりやすく面白い話だったので、これは自分用の記録として書き残しておかねば、と思いつつ、ついサボってしまい、10日が経過してしまいました。

 ということでほとんど思い出し日記状態ですが、以下、講演の概要です。

 まず、長年「赤字事業」が半ばキャッチフレーズ化していたニコニコ動画(以下「ニコ動」)について、5月13日 15:00から開催されたドワンゴの決算説明会でついに「事業黒字化」が発表されました。この講演会は13日 10:00開催でしたので、その事実が直接発表されることはありませんでしたが、
「赤字と言われていますが、プレミアム会員増加等もあってそろそろ黒字?と言った所です」
「本日決算説明会をニコニコ生放送で中継するのでご覧ください」
という感じで事実を匂わせてくださっていました。

 「動画サービスはストレージが激しいという巷の認識」(千野氏の発言より)のとおり、動画数4,100,000動画、平均25MB/本、総データ量140TBを誇るニコ動。
 これまで、システムを保たせるための運用上の割り切りとして、

  • 提供画質を「高画質」(2Mbps程度)と「低画質」(400Kbps程度)の2種類しか用意しない(YouTubeは4種類に対応)。
  • ユーザがアップロードした元の動画ファイルは消去する(YouTubeは元ファイルを保存しており、故にHD画質に対応できた)。

を実践してきたようですが、今後はiPhone、Android、Chrome OSなど、「HTML5」「H.264ブラウザ内再生」「Wi-Fi+3G」への対応に向けてH.264向け高画質、3G画質を加えた4種類の画質に対応していくということでした。オリジナルファイルを保存するということなのか、それとも対応画質を増やすだけで、これまで同様オリジナルファイルは捨てるということなのかについては、言及されませんでした。

 サーバ構成としては、大きく分けて次のようになっているそうです。

  1. エッジサーバ:約400台。人気動画・祭り動画はほぼここで蓄積を担当、消費される。
  2. オリジンサーバ:約100台。直近半年内でリピートされる動画を蓄積担当
  3. ストレージシステム:3台。過去3年内でほとんど再生されていない動画を蓄積担当
  • エッジサーバにキャッシュ用ストレージを搭載
  • httpリクエストをロードバランサでエッジサーバに振り分け。キャッシュを見に行き、ファイルがあれば返す。
  • キャッシュがない場合はオリジンサーバにファイルを探しに行く。
  • それでもファイルがなければストレージでファイルを探す。
    ちなみにストレージまでリクエストが送られた場合、結果を返すまでに約10秒。

 さらっと書いてある数値がいちいち凄いんですが……(^_^;)。
 ちなみにエッジサーバも役割により3種類に分けられるそうです。
 1分ごとに動画へのアクセス状況をリアルタイム集計して、1つの動画の視聴回数が一定以上(200回/分)に達した場合は「祭り用」のエッジサーバに振り分けを変更しているとか。
 実際、今年の正月に「アイマス新年会」としてニコ動上の100以上の「アイドルマスター(アイマス)」動画がより抜き視聴された時、その動画を担当していたエッジサーバが即死し、そのサーバに載っていた他の無関係の動画も再生不可状態になったそうで、故にこうした「祭り対策」が必須となるようです。
 更に具体的なサーバの構成は次のとおり。

  1. エッジサーバ
    • ヘッド用エッジサーバ
      少ない種類の動画の大量配信に特化(=祭り用サーバ)
      同時接続数:20,000 要求ストレージ速度:高速 容量:低→SSD化+10GbE化を進めスケールアップ
    • ミドル用エッジサーバ
      比較的新しめで、そこそこ見られている動画の配信
      同時接続数:120,000 要求ストレージ速度:大
    • テール用エッジサーバ
      同時接続数:60,000 要求ストレージ速度:最大(2TB程度)
  2. オリジンサーバ
    エッジサーバにキャッシュされていない動画をここから取得 要求ストレージ:極大 ストレージサーバへのアクセスを極少にする。

  3. ストレージ
    容量数百TBのストレージ:現3台
    • 来年にはPBに到達
    • NFSでアクセス→とても扱いやすい。現場としては今後もこれで行きたいという意見。
    要件
    • 可用性、スケーラビリティ、コスト→こちらがより重要である。
    • 速度はそこそこ必要(3~4Gbps)

 この辺りから、ではドワンゴのアプローチはどのようなものか?というまとめに入りました。

  1. 自前主義:アプリケーション設計とサーバ構成で課題クリア
    多段キャッシュ、負荷分散、アクセス頻度による動画の置き場所調整, etc.
  2. それらを実現してくれる製品はあるがあえて採用しない(例:SSD/HDDハイブリッドストレージ等)
  3. 自前主義のメリット
    • 各レイヤーのリソース配分の自由度、スケーラビリティ
    • 個々のコンポーネントに求める要件がシンプル→製品選択幅広。混在がしやすい。
  4. 自前主義のデメリット
    • 集積度が低くなりがちである。
    • 場所代、電気代の問題

 今後ドワンゴとして求めているストレージ製品は、

  • ドライブレベルでは、SSD導入。また高速・長寿命であること。
  • ストレージレベルでは、安価なHDDの大量積みができること。大ボリュームとして扱えること。

だそうです。
 以上で講演は終了となりました。多段構成かつ大容量のストレージが必要な理由など、日頃動画を消費する一方の素人にも分かりやすく語られていて、基礎技術をおろそかにしていないことが伝わってくる、とても好印象な内容でした。
 但し、自分に個々のストレージ製品レベルの知識があれば、「こんなことができるのはきっとあの会社の製品に違いない」等、また違う角度で理解できたかも知れません。その辺りは経験値の積み重ねなので、まあ、今の自分にはどうしようもない所です。

| | コメント (4) | トラックバック (0)

« 2010年4月 | トップページ | 2010年6月 »