Last.fmがサーバにSSDを導入、分散ファイルシステムもSSD対応にしてスケール向上に成功!

2009年12月21日

音楽配信サイトのLast.fmは、今年の10月からXbox Liveでも利用できるようになったことを受けてユーザー数が大幅に増加。これに対応するためサーバにSSDを採用したところ、問題なくスケールの向上に成功してしまったことをブログ「Launching Xbox, Part 2 - SSD Streaming」で明らかにしています。

Last.fm - the Blog · Launching Xbox, Part 2 - SSD Streaming

SSDで同時接続数が300から7000に増加

Last.fmはこれまで7200rpmのSATAドライブをバックエンドに利用。ファイルシステムとしてオープンソースの分散ファイルシステムであるMogileFSを採用していました。

オーディオストリーミングの能力は基本的にこのMogileFSの管理下にあるハードディスクのランダムI/O性能に依存しており、現在は1つのハードディスクあたり約300同時接続をサポートしていたとのこと。

しかしXbox LiveがLast.fmをサポートしたことによるユーザー増加に対応するため、新たなスケール向上の仕組みとしてSSDの採用を検討することになりました。

彼らがまず行ったのは、SSDベースのサーバを構築して性能を評価すること。4コアのXeon 5572を2基、メモリを12GB搭載したサン・マイクロシステムズのSunFire X4170に、インテルのIntel X25-E SSDの構成を採用。インテルのSSDを採用した理由としては、以下のように説明されています。

We favoured the Intel SSDs because they've had fantastic reviews, and they were officially supported in the X4170.

そしてテストの結果、ブログでは次のように記述されています。

and in testing, we weren't disappointed. Each single SSD can support around 7000 concurrent listeners, and the serving capacity of the machine topped out at around 30,000 concurrent connections in it's tested configuration

テストの結果は我々の期待を裏切らなかった。それぞれのSSDが約7000同時ユーザーをサポートし、全体では3万同時接続をテスト構成で叩きだしたのだ。

しかもこの時点でテスト用のネットワークがバッファリングやコネクションが原因で飽和。そこで、10Gbイーサネット環境に置き換えたとのことです。て32GbEと64GbEで試した結果、64GbEでの利用を選択したそうです。(この部分はSSDの容量とGbEを勘違いしていたので取り消させていただきます)

MogileFSのSSD対応をオープンソースに

テスト結果を受けて、Last.fmはSSDサーバを本番環境に投入することを決定。投入に当たり、MogileFSを拡張して「Hotノード」と呼ばれる機能を追加してリクエストに対して優先的に対応するノードを設定し、さらに「Hotクラス」機能も追加。Hotクラスに指定されたファイルが自動的にSSDのノードにレプリケートされる機能です。これによって人気のある曲を優先してSSDにレプリケーションし、送出することができるようになります。つまり、ハードディスクで構成されたストレージの上に、SSDで構成されたレイヤを載せたような構成になりました。

これ以外にもSSDに対応した改良をいくつか加えたうえで、本番環境にSSDサーバを投入、その結果、

We used the same hardware as our final test configuration (SunFire X4170 with Intel X25-E SSDs), and we are now serving over 50% of our streaming from these machines, which have less than 10% of our total storage capacity.

テストの時と同じ構成を本番環境でも利用した。そして全ストレージの10%以下のストレージから、全体の50%以上のストリーミングをこれらのマシンから提供できるようになった

HotノードやHotクラスがうまく機能して、SSDサーバが効率的にストリーミングを提供する環境の構築に成功したようです。

そして今回行ったMogileFSの変更はオープンソースとして公開されるため、誰でも同じ機能が利用できるようになるとのこと。

We all had great fun with this project, and built a new layer into our streaming infrastructure that will make it easy to scale upwards. We'll be feeding our MogileFS patches back to the community, so that other MogileFS users can make use of them where appropriate and improve them further.

このプロジェクトは非常にうまくいった、そしてストリーミングのインフラに構築した新しいレイヤはスケールの向上を簡単にもたらしてくれた。我々はこのパッチをMogileFSのコミュニティに還元するつもりだ。それによって、ほかのMogileFSユーザーも同じようなスケールの向上を実現できるだろう

元の記事ではこのほかにもSSDの能力を発揮するためのLinuxスケジューラのチューニングなどに触れられていますので、ぜひ元の記事も参照してみてください。

あわせて読みたい

クラウド 運用・監視 SSD データセンター




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本