2017/09/14開催アプリケーション・パフォーマンス 2017の基調講演にて発表した資料となります。
株式会社DMM.comラボ 渡辺宣彦デジタルコンテンツの安定配信とコスト削減の両立を実現したシステム刷新1アプリケーション・パフォーマンス2017
View Slide
Copyright © since 2017 DMM All Rights Reserved. 2Topics1. はじめに2. 初期をふりかえる3. x86サーバx2004. マルチデバイス対応とGlusterFS導入の経緯5. Linuxへの完全移行6. ストリーミング配信基盤改善7. 負荷対策方法の確立8. まとめ
Copyright © since 2017 DMM All Rights Reserved. 31. はじめに
Copyright © since 2017 DMM All Rights Reserved. 4DMM.comにおける動画配信DMM.comの動画や電子書籍といったデジタルコンテンツの配信は古くは2002年から始まっておりロングテール型サービス提供のためコンテンツ数は年々増え続けています今回は動画配信のサービス開始から現在に至るまでに行ってきたシステムの変遷や改善点についてご説明させていただきたいと思います
Copyright © since 2017 DMM All Rights Reserved. 5タイトル数30万タイトル超ロングテール型さまざまな対応デバイスPC、スマートフォン、VR作品も展開年間1PBのペースで増え続けるコンテンツ6TB SATA HDD x 12構成のサーバを使用動画コンテンツの特徴
Copyright © since 2017 DMM All Rights Reserved. 6オリジンサーバコンテンツファイルが格納されているサーバエッジキャッシュエンドユーザーが直接アクセスするリバースプロキシとしての役割を持つミドルキャッシュエッジキャッシュとオリジンサーバの間に位置するオリジンへのアクセス数を限定させる役割を持つ本書で記載されている用語について
Copyright © since 2017 DMM All Rights Reserved. 72. 初期をふりかえる(2002~2007)
Copyright © since 2017 DMM All Rights Reserved.サービス開始当初の特徴DAS+Windows Serverの組み合わせ複数のストレージから運用ダウンロードはIISストリーミングはWindows Media Service同じコンテンツをダウンロード用、ストリーミング用にそれぞれストレージを分けて保持8
Copyright © since 2017 DMM All Rights Reserved. 9DASへの増設を週1回のペースで実施しており運用面の負担が増えてきていた空き容量、利用状況など管理面でも負担がかかってきていたためストレージ環境再構築の検討に入った当時をふりかえるとクラスタストレージの導入へ
Copyright © since 2017 DMM All Rights Reserved. 10丸一日要していた拡張作業が数時間程度に短縮RAIDよりも信頼性が向上した集中管理されるため、管理工数も削減できたストレージ導入で得られたメリット
Copyright © since 2017 DMM All Rights Reserved. 11導入後をふりかえるとすべていいことづくめだったわけではなく想定よりも性能が出ず、解消しないケースもあったストレージ機能においてバグを引いた際影響範囲が全体に拡大してしまったためストレージを分散してリスクヘッジ
Copyright © since 2017 DMM All Rights Reserved. 12影響範囲を限定できる仕組みが可能かコンテンツ制作側の作業フローも考慮する必要ありハードウェアのコスト削減(アクセスの頻度によっては全体的にGBあたりのコストが高くなってしまうため)12次への検討項目クラスタストレージのリプレイスを実施
Copyright © since 2017 DMM All Rights Reserved. 133. x86サーバx200台(2010~2012)
Copyright © since 2017 DMM All Rights Reserved. 14ストレージで負荷を捌かず前段で吸収する仕組みへ障害範囲を限定できるような構成負荷対策もサーバーごとに実施しやすくなるイニシャル/ランニングともにコスト削減効果が得られた14目指したところとその理由
Copyright © since 2017 DMM All Rights Reserved.15X86サーバへコンテンツの移行を行うSATA HDDを12本搭載した2Uモデルのサーバを採用Diskの故障率上昇に備えて12本中2本をHotSpareに設定15脱クラスタストレージ
Copyright © since 2017 DMM All Rights Reserved. 16キャッシュサーバのスケールアップを実施SATA HDDを12本(オリジンサーバと同様)メモリを128GB積んだサーバを使用事前にアクセス集中を把握できているものに関してはオリジンサーバへのアクセスを抑えることができた16性能面についても考慮しかし、ここで3つの問題点が浮かび上がってきた
Copyright © since 2017 DMM All Rights Reserved. 171. 増え続ける単一障害点2. 統一されたHWで発生した重大なバグ3. 1Gbのネットワークがボトルネックに3つの問題点とは・・・
Copyright © since 2017 DMM All Rights Reserved. 18コンテンツをサーバで冗長化するには要するサーバの台数も2倍になってしまうためファイルアップロードに要する時間も2倍に運用面でも現実的ではなかったHWの制約によって空きポートがなくチーミング不可能(※増設するPCIの空きもない)ユーザー影響のあるハードウェア起因の障害が増加①単一障害点となってしまったこと
Copyright © since 2017 DMM All Rights Reserved. 19RAIDコントローラのファームウェアでバグを引き「予期しないシャットダウン」やカーネルパニックが100台以上で周期的に発生使用するHDDのファームウェアでもバグを引いてしまい、一斉に障害検知されたりリビルドが正常に完了しないことも改善しないファームウェアのバグと3年近く格闘②HWがほぼ統一されたことによる弊害
Copyright © since 2017 DMM All Rights Reserved. 20リリース時やキャンペーンで集中するアクセス(ダウンロードは特に接続が長時間滞留する)コンテンツの高精細化が進み従来よりもファイルサイズが肥大していった上記によってダウンロード速度遅延の問題も頻発1Gbpsのネットワークでは限界に到達していた③スペック不足
Copyright © since 2017 DMM All Rights Reserved. 214. マルチデバイス対応とGlusterFS導入の経緯(2013~)
Copyright © since 2017 DMM All Rights Reserved. 22マルチデバイス対応によってPCとスマホなど複数デバイスへMP4をベースに配信従来、冗長構成されていないサーバ単体をオリジンストレージとして運用していたためPC向けのストリーミングが加わりトラフィックが急増することにマルチデバイス対応について
Copyright © since 2017 DMM All Rights Reserved. 23Backendのトラフィックが1Gbpsを超えるためサーバー単位で冗長構成を担保しつつスループットにおいてもある程度要求されていたハードウェア、ソフトウェアそれぞれの費用対効果を考慮オリジン強化の必要性
Copyright © since 2017 DMM All Rights Reserved. 242012年に初めてGlusterFSをStriping Volumeの10台構成で試験的に導入GlusterFSの導入Striping Volume性能、使い勝手も良好Apache+GlusterFS
Copyright © since 2017 DMM All Rights Reserved. 25クラスタストレージをGlusterFSへ移行配信サーバにFuseでマウントDistributed Replica構成のGlusterFSGlusterFSの導入Distributed Replica VolumeBackendはすべて10Gbps対応
Copyright © since 2017 DMM All Rights Reserved. 26GlusterFSは特性上ディレクトリやファイルのリスト取得を苦手としているためコンテンツ制作側のファイル操作に難があった適当なサイジングでボリュームを作成する必要が出てきた26次への検討項目
Copyright © since 2017 DMM All Rights Reserved. 275. Linuxへの完全移行(2014~2015)
Copyright © since 2017 DMM All Rights Reserved. 282015年7月15日(日本時間)Windows Server 2003とWMDRMのサーバSDKサポート終了に伴いWindows Media Playerでのライセンス認証も行えなくなることに・・・これがどのような影響を及ぼしたのか?
Copyright © since 2017 DMM All Rights Reserved. 29Windows Server 2003をリプレイスする必要がある→2014年時点で200台まで増えていたWindows Media Player経由のストリーミングが不可に→WMVに変わるストリーミング素材としてMP4を用意2PBのデータ移動ならびにMP4作成29ほぼ、配信基盤全体のリプレイスに匹敵膨大な影響範囲
Copyright © since 2017 DMM All Rights Reserved. 30期限がこれ以上ないほど明確なためコンテンツのコピー移動やエンコード遅延による延期は許容されない検証だけにじっくり時間を割くことはできず次世代の配信サーバを決定しなければならない30Windows 2008の選択肢も当然あったものの・・・OSサポート終了が与えたインパクト
Copyright © since 2017 DMM All Rights Reserved. 31実績を積んでいたGlusterFSで完全冗長構成にハードウェアも過去のナレッジを活かして選定しマルチベンダーでの調達を行ったネットワークの増強も合わせて実施し全て10Gのネットワークで構成312015年7月に大きなトラブルなく完了問題点を解消することに全力を注いだ
Copyright © since 2017 DMM All Rights Reserved. 32ダウンロードサーバをすべてGlusterFSへ移行IISからApacheへGlusterFSの導入Apache+GlusterFSReplicaVolumeApache+GlusterFSReplicaVolumeすべて10GbpsネットワークGlusterFS Replica 2
Copyright © since 2017 DMM All Rights Reserved. 33GlusterFSの導入のメリットとして複数台からなるオリジンサーバの構成によって問題なく配信できる結果を得られたGlusterFSの導入リリース1分後22.36Gbps
Copyright © since 2017 DMM All Rights Reserved. 34キャンペーン用負荷対策サーバもGlusterFSでGlusterFSの導入名前 用途 備考PicsMaster 画像マスター Redhat Gluster StorageTV用Gluster ファイルサーバMP4用Gluster ファイルサーバ動画CP用負荷対策Gluster DLサーバスマホDL用Gluster DLサーバ増設する工数もさらに削減!
Copyright © since 2017 DMM All Rights Reserved. 356. ストリーミング基盤改善(2016~)
Copyright © since 2017 DMM All Rights Reserved. 36SATA HDDをメインで使用していることもあり1ノードにつき3Gbps程度で限界に到達2012年から構築を行ってきたGlusterFSはすでに150ボリュームほどに構築数が増えたため構築時期とバージョンの差により管理上の問題が起きはじめていたGlusterFSの課題このあたり解決できるストレージを模索していた
Copyright © since 2017 DMM All Rights Reserved. 37PB規模のストレージでも運用上、特に問題となるような事象が起きなかった台数ごとにおけるデータ利用効率が従来より上がったGlusterFS (1.3PB) vs Scality RING (2PB)ライセンスが容量単位の精度になっていたことScality RINGの導入理由2016年7月より本番投入を開始
Copyright © since 2017 DMM All Rights Reserved. 3838ScalityRINGの導入後現在2PBのボリューム48ノードで運用中負荷対策専用のストレージを用意せずキャンペーンを乗り切ることが可能にScalityRINGをマウントしたFuse ConnectorをStreaming Serverとして使用既存のストレージ群と接続しコンテンツ管理を行うためCIFS Connectorを用意
Copyright © since 2017 DMM All Rights Reserved. 39Scalityの性能RINGノードからのトラフィックも60Gbpsを超えており、安定稼働中66.02Gbps
Copyright © since 2017 DMM All Rights Reserved. 407. 負荷対策方法の確立(2016~)
Copyright © since 2017 DMM All Rights Reserved. 41オリジンサーバはDisk性能に制約があるもののコンテンツは増え続けるため全てをSSD化することは非現実的(コスト的にも)コンテンツの高精細化によりファイルサイズが肥大化しておりキャッシュサーバの設計見直しは必須要件だったキャッシュサーバの改善
Copyright © since 2017 DMM All Rights Reserved. 42キャッシュ効率の向上大容量SSD導入後In平均↓ 4.13Gbps大容量SSD導入前In平均 9.52Gbps導入前と比較してキャッシュサーバに書き込まれるトラフィックが9.52Gbps→4.13Gbps倍以上の効果
Copyright © since 2017 DMM All Rights Reserved. 43キャッシュサーバの構成オリジンエッジキャッシュミドルキャッシュApache+GlusterFSReplicaVolumeエッジキャッシュとミドルキャッシュに大容量SSDを搭載HDDと比較して30TB→85TBまで増量
Copyright © since 2017 DMM All Rights Reserved. 44細かいチャンクファイルのI/Oが生じるためSATAのHDDでは15分程度で限界に到達パフォーマンス改善例 HDDの場合CPU1.4GbpsCPU iowait timeが50%を超えスループットが低下するトラフィック
Copyright © since 2017 DMM All Rights Reserved. 45Iowaitも上がらずトラフィックも順調に推移2.5Gbpsを計測パフォーマンス改善例 SSDの場合2.5GbpsIowaitもほぼ発生せず2.5Gbps到達トラフィックCPU
Copyright © since 2017 DMM All Rights Reserved. 46新キャッシュサーバの恩恵通常時の4倍以上のトラフィックが発生してもキャッシュサーバのみで乗り切ることが可能に47.58Gbps
Copyright © since 2017 DMM All Rights Reserved. 47ライブ配信に代表される配信する日時が決まっているコンテンツはピークで70Gbps以上到達することもあるが限られるためCDNがフィットしやすいCDNごとの特徴を把握して複数から選択できるような構成が理想CDNとの連携ある程度柔軟性を持たせる必要がある
Copyright © since 2017 DMM All Rights Reserved. 48マルチCDN対応 ストリーミング版オリジンstreaming serverキャッシュnginx各CDNとの連携ライブ配信やVODにて稼働中
Copyright © since 2017 DMM All Rights Reserved. 498. まとめ
Copyright © since 2017 DMM All Rights Reserved. 50トラフィックの推移103.1121.65151.3197.35215.140501001502002502013年 2014年 2015年 2016年 2017年配信インフラ基盤の変遷2013/ GlusterFS導入2014/ 10G化推進2015/ オリジンリプレイス2016/ Scality RING導入単位 Gbps
Copyright © since 2017 DMM All Rights Reserved. 51不具合解消の推移18610431 1024681012141618202013年 2014年 2015年 2016年アクセス過多による不具合サーバ故障に起因する不具合かねてより問題となっていた単一障害点の解消やボトルネックとなりえるハードウェアのリプレイスで改善の傾向が顕著に表れている※あくまでサーバ単体のトラブルとした数字
Copyright © since 2017 DMM All Rights Reserved. 52まとめ最適解はあくまでその時期によるものいずれは変わることを念頭にサービスの安定稼働に例外を持たないCDN、クラウド、オンプレミス問わず柔軟な構成を担保する意識を強く持つこと
ご清聴ありがとうございました