ストレージ効率の改善(前半)

著者:Jacob N. Gsoedl
Storage Magazine2012年8月号より

 

ストレージのシステムを最大限に活用するのは必須の要件だが、あまた数多の効率化技術を検討する上で、パフォーマンスと容量のどちらが重要なのか決断を迫られるだろう。

 

困難な経済情勢は、既存ストレージシステムの効率化改善のきっかけとなったが、データストレージ管理者にとって、今や効率化は日常業務の一つになっている。使用効率50%未満のずさんなディスク利用や処理リソースのごく一部しか使われていないストレージコントローラーなどは、殆どのITの現場ではますます厳しくチェックされるようになってきた。サーバー・コンソリデーションと仮想化によって、物理サーバー・リソースの利用の極大化が可能になっているデータセンターでは、非効率的なストレージの運用はアキレス腱になっている。

 

サーバー仮想化は、ストレージシステムが従うべき効率化の先例になっただけでなく、ストレージシステムがさらに効率化するよう強制している。1台のストレージアレイに接続されるサーバーの数が増えるにつれ、容量とストレージリソースを割り当てる機能のないストレージの利用は、徐々に減っている。データセンター・コンソリデーションの効果を最大限に引き出すためには、サーバー仮想化とストレージ効率化はうまく連携を取っていかなければならない。

 

ストレージの効率化とは、可用ストレージ容量と処理リソースの両方を極大化する組み合わせの事だが、この二つの作業は往々にして対立するものになる。「要求されているIOPSを達成するために、ストレージシステムを酷い容量使用率の状態にしながら、非常に多くのスピンドルを並べる設計にするか、圧縮や重複排除などのシン・テクノロジーを活用して非常に高い容量利用率を達成する、ただし、これらのテクノロジーはパフォーマンスには悪影響があるかも知れない、こういう対立構造があります。」ミネソタ州Stillwaterに会社を置くStorageIOのGreg Schulzはこう語る。ストレージの効率化を達成するには、そのストレージシステムを運営するアプリケーション要件のもとで、可用なリソース(容量と処理能力)の利用率、パフォーマンス、コストをバランスを取りながら最適化する必要がある。

 

 

ストレージ効率の基礎条件

 

ストレージシステムのパフォーマンス最適化に必要なのは、ストレージシステムの混雑を最小限に抑えながら、ストレージ処理リソース利用を最大化する事だ。処理リソースの利用が増加するにつれて、残存するリソースと追加で来る要求に対応する能力も減少する。このバッファーが小さすぎると、ストレージシステムがパフォーマンス限界に到達する可能性は増加する。例えば、平均50%のパフォーマンス利用率で運用されているストレージアレイが限界に到達する可能性は、平均80%で運用されているストレージアレイよりも少ない。

 

ストレージシステムに付随している、もしくは拡張機能としてベンダーやサード・パーティーから入手可能な、レポート機能・監視機能・ストレージ解析機能は、パフォーマンス利用の最適化や必要に応じて処理リソースを追加していくのに欠くことの出来ないコンポーネントである。これらを使う事で、ストレージアレイを過剰配備や、対応が後手に回るのを避けることが出来る。「パフォーマンスであろうと容量であろうと、ストレージベンダーまたはサード・パーティー製のツールを使って、各項目の値を測定し現在の状況を把握するのは最も重要なことです。」シュルツは語る。

 

これらのツールは、パフォーマンスの問題を特定するのに役立つだけではない。適切な処置を決める上で重要な役割を果たしてくれる。ストレージシステムのパフォーマンスは単一の指標だけで決まる訳ではなく、アプリへの高速データ提供に影響を与える複数の要因の組み合わせによって決定される。IOPS、スループット、レーテンシーは主要な要因ではあるが、これらの要因は、処理内容(ランダムvs.シークエンシャル)、ブロックサイズ(大きいvs.小さい)、トランザクション・タイプ(リードvs.ライト)によって変わってくる。また、これらの要因のパフォーマンスへの関連性と影響度はアプリケーションに依存する。例えば、動画ストリーミングのアプリケーションにおいては、大きめのファイルと大きめのブロックに対する高速シークエンシャル・リードが主役だが、仮想化環境においては通常、トランザクションのランダムなリードが主役である。

 

さて、次にパフォーマンスと容量利用の最適化に関する技術を見ていこう。ストレージに万能薬はないので、どの方法も、それぞれ長所・短所がある。

 

 

パフォーマンス改善のためにディスクを追加する

 

ディスクとは、データを見つけ出しアクセスするために、リード・ライトヘッドが、高速で回転する円盤の中心と周縁の間を移動する、機械的な装置である。1分間に1万5千回転する高速ディスクでさえも、機械のアームが位置決めする時間やレーテンシーを合わせると数ミリ秒になり、このためにディスクあたりのIOPSの値は毎秒数百、スループットは100Mbpsが限界となる。

 

パフォーマンスを向上させる一つの方法は、データを複数のディスクに展開し、アクセスがあった時にディスクが連携するようにしておくことだ。IOPSやスループットの値は、これに関わるディスクの数に比例して上がっていく。さらに、ストレージベンダーはアームの動きを最小限に抑えるショート・ストローキングのような技術を実装するようになってきた。データを円盤の周縁に置くことにより、リード・ライトヘッドの動きは大幅に減り、著しいパフォーマンス向上をもたらす。大量のディスク使用やショート・ストローキングによって、所与の目標は達成されるだろうが、非常に高価であり、また、円盤の周縁部しか使わないためストレージ使用率はひどいものになる。半導体ディスク(SSD)が登場するまでは、大量ディスクの利用やショート・ストローキングなどの方法は、高パフォーマンス要件を満たすために使われてきた。今日でも、高価なSSDよりもディスクの方が相応しいアプリケーションでは、これらの手法が使われている。「大きなブロックやファイルのシークエンシャル・アクセスには、通常こちらの方が、コスト効率が優れています。」NetAppのアメリカ営業部門戦略技術ディレクター、Mike Rileyはこう語る。

 

 

RAIDとワイド・ストライピング

 

往々にして見過ごされがちだが、RAIDとRAIDレベルはパフォーマンスと容量の両方に影響を与える。パフォーマンスまたは容量の利用率を改善するために実現可能性のあるオプションの一つは、既存ストレージのRAIDレベルを変更することである。パリティディスクの数、大きなストライプvs小さなストライプ、RAIDグループのサイズ、RAIDグループ内のブロックサイズ。これらは全てパフォーマンスと可用容量に影響を与える。

 

標準的なRAIDレベルの特性についてはよく知られているものの(「RAIDレベルとパフォーマンスと容量使用に与える影響」参照)、効率的ストレージを議論する際に、あまり知られていないが、特に注意を払っておくべき項目がいくつかある。まず初めに、RAIDグループのサイズはパフォーマンス、可用性、容量に影響を与える。通常、多数のディスクを内蔵した大きなRAIDグループは高速である。しかし、ディスク障害の際にはリビルドにより多くの時間を要する。数年おきにサイズが倍々になっている大容量ディスクのリビルド時間は増え続けており、一台のディスクが障害を起こす危険性も増大している。

 

RAID6はパフォーマンスをある程度犠牲にして、デュアル・パリティディスクがディスク2重障害を防ぎ、危険性を低減する技術だが、これよりもっと良い方法がある。パリティ専用に使われているディスクを無くすことだ。例えば、NetAppのDynamic Disk Pools (DDP) は、データ、パリティ情報、空きスペースをドライブプールのあちこちに分散させ、処理の負荷が集中する障害ディスクのリビルドの際には、プール内の全ドライブを利用する。

 

HPの3PARストレージシステムは、ワイド・ストライピングと呼ばれる技術を市場に展開している。この技術は、多数のディスクを横断してデータをストライピングし、プール内のrawストレージ容量を「チャンクレット」という小さな塊に分割するものだ。3PARのボリューム・マネージャーはこれらの「チャンクレット」を使って、パリティ「チャンクレット」が入ったマイクロ(極小)RAIDを構成する。一つのマイクロRAIDの「チャンクレット」は全て別々のドライブに置かれ、サイズも小さいため、ディスク障害とそれに続くリビルドが、システムの危険性とパフォーマンスに与える影響は極小化される。

 

 

 

 

 

著者略歴:Jacob Gsoedlはフリーのライター兼業務システム部門取締役。

 

Copyright 2000 - 2012, TechTarget. All Rights Reserved,

 

*この翻訳記事の翻訳著作権はJDSFが所有しています。
このページに掲載されている記事・写真・図表などの無断転載を禁じます。