非常に多くのオプションがあり、それらすべてをテストする時間はほとんどありません...誰かがビデオストリーミングとストレージ/エンコーディング用の分散ファイルシステムの経験があるのではないかと思います。
どこかに保存する必要のある巨大なビデオファイル(50GBから250GB)がたくさんあり、それらをmp4にエンコードして、いくつかのAdobeFMSサーバーからストリーミングすることができます。これをすべて処理する唯一の方法は分散ファイルシステムを使用することですが、問題はどれですか?
これまでの私の研究は私に教えてくれます:
- 光沢:多くの大企業で使用されている成熟した実績のあるソリューションで、10Gを超えるファイルに最適なのはカーネルドライバーです。
- Gluster:新しい、成熟度の低い、FUSEベース。つまり、インストールは簡単ですが、FUSEのオーバーヘッドのために遅くなる可能性があります。多数の小さなファイルを処理する方が良い〜1GB
- MogileFS:小さなファイル〜MB専用のようですが、アクセスにHTTPを使用しますか?将来的にはFUSEバインディングの可能性があります。
これまでのところLustreが勝者のようですが、私が持っている特定のアプリケーションの実際の経験を聞きたいと思います。
また、Hadoop、Redhat GFS、Coda、Windows DFSがオプションとして聞こえるので、どんな経験でも歓迎します。誰かがベンチマークを持っているなら、共有してください。
いくつかの実際の経験の後、これは私が学んだことです:
- 光沢:
- パフォーマンス:驚くほど速い!Lusterは多くのストリームを提供でき、Lustreを介してファイルにアクセスしてもエンコード速度は影響を受けないと断言できます。
- POXISの互換性:とても良いです!。光沢を使用するためにアプリケーションを変更する必要はありません。
- レプリケーション、負荷分散、フェイルオーバー:非常に悪いです!。レプリケーションの負荷分散とフェイルオーバーについては、仮想IPやDRDBなどの他のソフトウェアに依存する必要があります。
- インストール:最悪!単なる人間ではインストールできません。それを機能させるには、カーネル、光沢パッチ、および微調整の非常に特殊な組み合わせが必要です。また、現在の光沢パッチは通常、新しいハードウェア/ソフトウェアと互換性のない古いカーネルで機能します。
- MogileFS:
- パフォーマンス:小さなファイルには適していますが、中規模から大きなファイルには使用できません。これは主にHTTPオーバーヘッドが原因です。これは、すべてのファイルがbase64のすべてのデータをエンコードするHTTPリクエストを介して送受信され、各ファイルに33%のオーバーヘッドが追加されるためです。
- POXIXとの互換性はありません。ほとんどのストリーミングサーバーとエンコードツールはMogileFSプロトコルを理解していないため、すべてのアプリケーションを変更して、ストリーミング/エンコードに使用できないmogilefを使用する必要があります。
- レプリケーションとフェイルオーバーをすぐに使用でき、一度に複数のトラッカーにアクセスすることで、アプリケーションに負荷分散を実装できます。
- インストールは比較的簡単で、すぐに使用できるパッケージがほとんどのディストリビューションに存在します。私が見つけた唯一の問題は、単一障害点を排除するためにデータベースのマスタースレーブを設定することでした。
- Gluster:
- パフォーマンス:ストリーミングには非常に悪い。10Gbpsネットワークで数Mbpsを超える速度に到達できません。大量の書き込みでクライアントとサーバーのCPUが急上昇します。ネットワークとI/Oの前にCPUが飽和しているため、エンコードは機能します。
- POXIS:ほぼ互換性があります。私が使用するツールは、ディスク内の通常のフォルダーとしてglusterマウントにアクセスできますが、一部のエッジケースでは、問題が発生し始めます。glusterのメーリングリストを確認すると、多くの問題があることがわかります。
- レプリケーション、フェイルオーバー、および負荷分散:最高です!彼らが実際に働いた場合。Glusterは非常に新しく、多くのバグとパフォーマンスの問題があります。
- インストールが簡単すぎます。管理コマンドラインは素晴らしく、複数のサーバー間で複製、ストライプ、および分散されたボリュームを設定することは、これ以上簡単なことではありません。
最終結論:
残念ながら、結論は「単一の特効薬はない」です。
現在、ストレージとトランスコーディング用に複製されたボリュームにGluster3.2のメディアファイルがあります。サーバーの数が少ない限り、ジオレプリケーションやストライプボリュームは問題なく機能します。
メディアファイルをストリーミングするときは、DR:DBを介して2番目の光沢ボリュームに複製される光沢ボリュームにそれらをコピーします。次に、wowzaサーバーは光沢ボリュームからメディアファイルを読み取ります。
そして最後に、MogileFSを使用してWebアプリケーションサーバーでサムネイルを提供します。