未解決
Community Manager
•
3.1K メッセージ
0
452
ScaleIO : OpenStackのブロックストレージ最適解!
*このブログは旧EMC日本語コミュニティからの転記になります。
*投稿当時(2015年)と転記時では情報が異なる場合があります。(2022年転記)
オリジナル投稿者 MihoNaozumi 投稿: 日本語コミュニティ on Nov 16, 2015 10:39:00 AM
先日開催された、OpenStack Summit TokyoにてRandy Bias(EMC Vice PresidentでOpenStackのBoardメンバー)が、CephとScaleIOのストレージ性能比較デモを行ない、ScaleIOの優れたIO性能を紹介しました。
日本語通訳なしの英語セッションでしたので、ここでポイントを解説します。
動画はこちら
1.アーキテクチャ
多目的か、専用か?
多目的ツールは様々な用途に使え便利ですが、用途が決まっている場合には専用ツールが有利です。
ネジを回すにはドライバーを使うのが一般的なように。
Cephは多目的ストレージ、ScaleIOは専用ストレージに例えています。
ScaleIOはブロック専用ストレージなので、Tier1のシステム等の性能(IOPS)を重視する用途に有利となります。
CephはOpenStackにおいて実績もあり、多目的ストレージの選択肢となります。
ファイルストレージは汎用的、オブジェクトはアーカイブや大容量といった特性を考えると、大規模なOpenStack環境ではワークロードに合わせた専用ストレージを使い分けるという考え方です。
Cephとは
OpenStackのブロックストレージにおいてNo1のシェアとなっているオープンソースのCeph。
分散型のオブジェクト・ストアをベースに、ブロック/ファイル/オブジェクトのインターフェースを持つ多目的(マルチプロトコル)ストレージです。
RADOS(reliable autonomic distributed object store)という分散オブジェクトストアのコアコンポーネント上に、各プロトコル(Block,File,Object)用のモジュールを組合わせた構造です。
今回はブロックストレージの比較なので、RBD(RADOS Block Device)を用いています。
ScaleIOとは
ScaleIOはEMCのブロック専用ストレージで、スケールアウト型のソフトウェア・デファインド・ストレージです。
Cephと同じく分散型のソフトウェアストレージですがScaleIOはブロック専用です。
Cinderをサポートし、コモディディ・ハードウェアでスケールアウトしますので、OpenStack環境との親和性も高いです。
クライアント・コンポーネントのSDC(ScaleIO Data Client)とサーバ・コンポーネントのSDS(ScaleIO Data Server)によるシンプルな構成です。
サーバのローカルストレージはRAWデバイス・マウントのため、Filesystemレイヤが不要となっています。
アーキテクチャの違い
下図はデータ書込み時のフローです。(左がCeph、右がScaleIO)
Cephに存在する赤いブロックは、シンプルなブロックストレージのScaleIOにはありません。
- ブロックデータをオブジェクトデータにマッピング
- LinuxのFilesystemレイヤへの書込み
このアーキテクチャの違いが性能の差として現れることになります。
2. デモ構成
Apples to Apples の同じ条件で比較するため、サーバとクライアントの構成と台数を同じにしています。
デモ環境はAWS上に構築しています。
クライアント:
- 同一クライアントからCephとScaleIOのストレージをマウント
- 5台のインスタンスにCeph(RBD)とScaleIO(SDC)の両方をインストール
- インスタンスタイプはAWS c4 large(Compute Optimized)
- ベンチマークはfioを使用
サーバ:
- サーバはCephとScaleIOでそれぞれ5台のインスタンスを使用
- インスタンスには2つのEBS(Elastic Block Store)デバイスをマウント
- インスタンスタイプはAWS m4 large(General Purpose)
- EBSは3000IOPSのバースト性能
テスト条件:
- 4KB、ランダム、Read/Write比50%、32キュー
サーバ側の構成を変えて3パターンで比較しています。
- バトル1 5台のサーバ、2デバイス/サーバ (下図はバトル1)
- バトル2 上記から4デバイス/サーバにスケールアップ
- バトル3 上記から10台のサーバにスケールアウト
3. テスト結果
バトル1(5サーバ、2デバイス)の結果は、ScaleIOはCephの約3倍の20000IOPSとなっています。
但し、これは Max Backend(EBS性能)の制限値30000IOPS(3000IOPS * 10 = 30000)に到達しているため、ScaleIOの限界ではありません。
表中の ScaleIO SDS Backend の30000IOPSとは、ScaleIO書込みの2面ミラーで20000IOPSが書込み、読込の10000IOPSと合わせた30000IOPSでEBSを100%使い切っていることが分かります。
バトル2、3では、ScaleIOは40000IOPSから80000IOPSと、ほぼリニアに性能向上しています。
Cephとの性能差はさらに広がって5.6倍、6.6倍となっています。
但し、ここでもEBSを使い切っているため、ScaleIOはまだ余力があることを意味しています。
OpenStack環境で数十、数百ノードへの拡張を想定すると、このスケールアウト性は強力な武器となります。
4. まとめ
EMCはポートフォリオの会社です。 ワークロードに合わせてストレージを選択するという戦略を取っています。
プロダクトの優劣ではなく特性を理解し、使い分けることが重要です。
OpenStack環境で、Tier1アプリや大規模な環境で性能(IOPS)を重視するならScaleIOです!
(ScaleIOはLinuxだけでなく、WindowsやESXiもサポートするためOpenStack以外の用途も広がりますが、今回は省略)
また、ScaleIOは自由に試すことができます。
「Free and Friction less」という表現をしていますが、無料でしかもアカウント登録やメールアドレス不要で利用可能です。
ダウンロードはこちら
https://www.emc.com/products-solutions/trial-software-download/scaleio.htm
*(2022年9月時点では無効)
ScaleIOをぜひお試しください!