ハイエンドストレージの導入を検討することになった場合悩みどころがたくさんあります。思いつくことを挙げるだけでもメーカー、モデル、ディスク実容量、ディスク本数、RAID構成、キャッシュ容量、ファイバーチャネル本数、FCスイッチポート数、パーティションの切り方とデータの載せ方等々いろいろあります。今回はその中でも特にディスク総容量とディスク本数の話題に触れてみたいと思います。

ディスク実容量の決め方

 例えば現在データが50GB、年内100GB、来年末に200GBになることが見込まれているとした場合、どれくらいのディスク実容量にするのが妥当だと思いますか? ここで判断のために重要となるの今何が問題なのかです。すなわちディスク容量が足りないことが問題なのか、単にDASからNAS/SANへ移行することだけが目的なのか、もしくはパフォーマンスが遅いことが問題なのかということです。

 ディスク容量が足りないことが問題な場合や、DASから単にNAS/SANへ移行することだけが目的な場合では、必要な分のディスク総容量を用意すればよいでしょう。それが200GBなのか300GBなのか500GBなのかはどこまで余裕を持たせるかということなので価格と予算を見て決めればよいでしょう。

 それに対してパフォーマンスが遅いことが問題な場合。この場合はちょっとパラダイムシフトが必要です。パフォーマンスを上げるためにはディスク本数が多ければ多いほど良い。よってディスク総容量は大きければ大きいほど良いです。現在データが50GBなのだとしたら、例えば1TBとか10TBとか、それくらいディスク総容量を持つくらいの勢いで行くのがよいと思います。

パフォーマンスを上げるためのディスク本数の決め方

 パフォーマンスを上げるための基本的な考え方を記します。

  1. HDD回転数が最大のものを選ぶ。(現在であれば15000rpm)
  2. HDD容量が極力小さいものを選ぶ。(が、製造中止の恐れのあるものは選ばない)
  3. 1と2のものをたくさん並べてストライピングする。

 ストライピングは偉大です。どんなにディスクI/Oが高いシステムであっても、基本的にストライピング本数を増やせば増やすほどディスクI/Oが分散されるのでレスポンスが上がっていきます。また現在HDD回転数が15krpmのものは36GB,72GB,144GBになると思いますが、36GBのHDDはそろそろ製造中止が予想されるので選ばないことが無難そうです。

※例えば同じ144GBでも下記の3パターンの中では3.がパフォーマンス最速

  1. 144GB: [HDD]
  2. 72GB: [HDD][HDD]
  3. 36GB: [HDD][HDD][HDD][HDD]

ストライピング可能本数はシャーシによってまちまちである

 ただしストライピング可能本数が、ストレージ本体によってまちまちであることに要注意です。4本、8本、16本、もしくはまれに無制限というものもあります。これはメーカーによってもばらばらですし、同じメーカー内でもばらばらなことが多いです。カタログにこの制限が書いてないこともありますのでその場合は代理店さんに質問するのがよいでしょう。

 ただしこの制限を回避する裏技もあります。それはソフトウェアRAIDを使うことです。ハードウェアRAIDによるストライピンググループをソフトウェアRAIDで束ねるという方法です。ソフトウェアRAIDを使うことは不安定なOSではとても不安がよぎりますが、安定性を謳うハイエンドUNIXサーバやメインフレームの世界では意外と現実的だったりします。

注意事項

 一応注意事項を述べます。それはキャッシュの存在です。ストレージにおけるキャッシュの効用は、ストレージのアクセス方法によって違ってきます。具体的な話しは次回に述べるとして、例えばシーケンシャルなデータを連続して読み込む場合はキャッシュが有効に働くので、HDDの本数を増やすよりはキャッシュ容量を増やした方がパフォーマンスが向上します。それに対してランダムアクセスが多い読み込みの場合はキャッシュがあまり有効に働かないのでキャッシュ容量を増やしてもあまり意味がないです。