RAID 5 のパフォーマンスを考えよう
サーバー用ストレージでは、RAID を設定しますが、パフォーマンスはどうなっているのでしょう。
3 台以上のハードディスクを使って RAID 5 に設定すると、1 台のハードディスクが故障した場合にもデータを救い出すことができます。故障したハードディスクを、新品のハードディスクに取り換えると、自動的に修復してくれます。
RAID については、富士通の用語解説ページがお勧めです。
RAID レベル別に動画で、どのように書き込みが行われるのか、見ることができます。
では本題のパフォーマンスについて考えます。
パフォーマンスで考える指標は、シリアルアクセス性能の転送帯域とランダムアクセス性能のIOPS です。
- 転送速度
- IOPS
特に注目するのは、ハードディスクの台数によって性能がどのように影響するかです。ハードディスク台数を増やすと、性能は上がるのでしょうか。
RAID 0, RAID 1, RAID 5 を比較してみました。
横軸がハードディスクの台数、縦軸が性能です。性能は、ハードディスクが 1 台の場合を 1 としています。
グラフの結果は、理論上の値を示しています。特定メーカーのストレージの性能を示すものではありません。
- RAID 0 はハードディスクの台数が増えると、転送速度も対応して上がります。
RAID 5 も RAID 0 に近い転送速度の向上が見込まれます。
一方 RAID 1 は、ミラーリングの構造上、ハードディスク台数の半分の転送速度が理論上の値になります。
- 次に、ランダムアクセス性能 IOPS を比較します。
これも理論上の性能をグラフにしました。
RAID 1 は、IOPS でも ハードディスクの台数の増加にともなって性能が上がっていきます。
一方、RAID 5 は、ハードディスクの台数が増えても、性能は 2 倍になることがありません。
データをハードディスク台数だけ分割し、パリティを書き込んでいるためです。
RAID 5 は IOPS 性能が低い
と考えていいと思います。
ストレージ構成時には、メーカーから RAID 1, RAID 5 での性能試験結果を取り寄せることをお勧めします。
iSCSI 100万IOPS とは
Intel と Microsoft が 今年 2010年1月に iSCSI による 100 万IOPS のテストをしました。
今、仮想化やデータベースに、高い IOPS の性能が求められていますので、100 万 IOPS 達成の実際を確認しておきたいと思います。
サーバー構成は、Hyper-V が稼働するサーバー1台と、ストレージサーバー 10 台から構成されています。
Hyper-V サーバーでは、10 台の仮想マシンが稼働しています。
ストレージは、CPU にXeon 5500 を搭載した Windows Server 2008 サーバーです。
仮想マシンは、それぞれ、別のストレージにつながっています。
ネットワークカードは、 Intel X520-2 で、10GbE にて接続されています。
Intel Ethernet X520 Server Adapters
このネットワークカードは、VMDq, Virtual Machine Device queues に対応しますので、仮想マシンからのネットワークアクセスを最適化できます。キューは、ポートあたり 64 個提供されます。
ネットワークスイッチは、Cisco Nexus 5020 です。
ストレージサーバー上の iSCSI Target ソフトウェアは、StarWind 社から提供されています。
ハードディスクの影響を避けるため、StarWind の LUN は、メモリ上に確保されています。
負荷テストは、IOmeter が利用されました。
テストの報告は、マイクロソフト TechNet にて提供されています。
TechNet Webcast: Maximizing Hyper-V iSCSI Performance with Microsoft and Intel (Level 200)
登録すると、セミナーの動画を視聴することができます。
資料を PDF でダウンロードすることもできます。
資料は31ページあります。
4 ページ目に IOPS のグラフがあります。
512バイトのランダムアクセスで、100 万 IOPS を達成しています。
4KB の場合、60 万 IOPS を割っています。
理由は、ネットワーク帯域が飽和したためです。
HDD をエンタープライズ SSD に変更することにより、ボードあたり 10 万IOPS を超えることができるようになっています。iSCSI 経由でも性能が出せるようになれば、ストレージ設計の柔軟性、冗長性を高められますね。
iSCSI での 100 万 IOPS は実現可能
Fusion-io ioDrive とは
Fusion-io 社から提供されている ioDrive を取り上げます。
すでに、楽天や DeNA などの企業が大量に導入して効果を上げています。
Fusion-io 社が提供する ioDrive は、SSD を PCI-Express に接続するストレージです。
容量は、160 GB ~ 5 TB です。
特徴は、IOPS 性能です。
ioDrive DUO 320GB, SLC タイプの場合、26万IOPS を記録します。
(Random Wirte IOPS, 512 bytes)
販売は、HP, DELL などから提供されます。
アプリケーションでの性能評価も進んでいます。
Fusion-io Driveを使用した場合のデータベースパフォーマンス (英語)
SQLio は、SQL Server のディスクアクセスパターンを使った負荷テストツールです。
このテストでは、ioDrive 160GB/SLC が 14,000 IOPS を超えています。
従来の SAS, 15,000 回転のハードディスクを RAID 1 構成した場合は、 1000 IOPS に届いていません。
従来の 14 倍の性能が、ioDrive 1 台、PCI-Express ボード一枚でだせることになります。
マイクロソフトは、SQL Server カスタマサポートチームが、 Analysis での評価を公開しています。
Analysis Services Distinct Count Optimization Using Solid State Devices (SQLCAT)
この資料では、Analysis のキューブの Distinct Count を処理する性能を HDD, SSD, Fusion-io ioDrive を使って計測しています。
この図は、縦軸が処理時間、横軸が集計対象期間になっています。
グリーンの SAN ストレージを使った場合に、処理時間が急速に長くなっているのに対して、パーフルのFusion-io をつかった場合、処理時間は十分短い時間で押さえられているのがわかります。
エンタープライズ SSD の登場で、サーバーのストレージは大きな変化を迎えます。
ITプロ、経営者、開発者は、ぜひ Fusion-io ioDrive の驚異的な IOPS による変化に対応していきたいですね。
DELL オブジェクトストレージ
DELL から HTTP アクセスができるDX オブジェクトストレージ が発売されました。
ファイル用ストレージではなく、BLOG データなどオブジェクトを扱うストレージです。
Azure Stroage や Amazon S3 と同じですね。
概念は、ASCII.JP にて解説されています。
通信プロトコルが、SMB, CIFS, NFS や iSCSI などではなく、HTTP RESTful でのアクセスになっています。
CIFS などへの対応は別途というところがポイントですね。
カタログをみると、RAID は不要とあります。
複数のストレージサーバーで冗長化されますので、たとえば 2U サーバーで、12 ドライブ、最大 24 TB が利用できることになります。これを複数のサーバーに冗長化と分散を自動的におこなってくれるものになります。
オブジェクトストレージは、開発パートナーがあります。
DX オブジェクトストレージをファイルサーバーやメールシステムのストレージにするためのソリューションが提供されています。
たとえば、SharePoint 用のソリューションを提供している STEALTH があります。
STEALTH Software は、SharePoint の BLOB データを DX オブジェクトストレージ上で保存できるようにするソリューションを提供しています。SharePoint は、通常 メタデータも ファイルなどのデータもすべて SQL Server データベース上に配置するため、大量のファイルを運用する場合に注意が必要ですが、ファイルなどの BLOB データを分割することにより データベースのサイズを抑制し、運用しやすくなります。
クラウドでは、Amazon S3 をはじめ、たくさんの分散オブジェクトストレージが提供され、活用事例がでています。
DELL DX オブジェクトストレージは、そんな BLOB データ用ストレージを構築できるソリューションですね。



