“ストレージハック”――仮想環境を最大限に生かすには仮想サーバ用のストレージを改善する10の方法(前編)

仮想化は、データセンターに新しい価値をもたらす。ただし、仮想マシンを統合する場合はストレージを再検討し、その構成自体を見直す必要がある。

2013年07月18日 08時00分 公開
[David Davis,TechTarget]

 仮想サーバに接続しているストレージの動作は、ストレージを接続しているネットワークのパフォーマンスに深く影響を及ぼす。使用しているストレージが、サポートしている仮想マシン(VM)に対して最高の入出力(I/O)パフォーマンスを発揮していることを保証するのに役立つ10の方法を紹介する。

 エンタープライズレベルの大規模な仮想インフラでは通常、共有ストレージを使用する。これは紛れもない事実である。米VMwareのvSphereや米MicrosoftHyper-Vなどの高度な機能を利用する場合、ホストは全てVMを構成しているファイルにアクセスする。VMwareのvMotionにしても、Microsoftのライブマイグレーションにしても、最新のエディションでは共有ストレージが必須ではないという一方で、VMware vSphere High Availability(HA)やMicrosoft Failover Clustering(MSFC)などのほとんどの機能では、やはり共有ストレージが必要だ(しかも、今後不要になる可能性も低い)。

 仮想インフラ(および基幹アプリケーション)が優れたパフォーマンスを発揮するには、仮想インフラが要求する仮想CPU、仮想メモリ、仮想ディスクI/Oを割り当てる必要がある。ハイパーバイザーの統計情報が多くなり、監視ツールがよりスマートになったことから、仮想CPUとメモリの監視は容易になった。ただし、仮想インフラのストレージのパフォーマンス監視となると、今でも多くの場合は、サイエンスというよりはアートに近い。確かに、ストレージのパフォーマンスを分析した科学的な統計は存在する。ただし仮想CPUやメモリと違い、ストレージはハイパーバイザーや物理サーバの外部にある。従って、ハイパーパイザー(およびパフォーマンス監視ツール)は通常ストレージの内部の状況を把握していない(しかも、その変化は速い)。

 それでも、仮想サーバに接続しているストレージのパフォーマンスを改善するためにできることはたくさんある。パフォーマンス改善に役立つ10個のヒントを以下に挙げる。

1. IOPS(1秒当たりの入出力処理回数)を把握する

 仮想サーバ用のストレージのチューニングのサイエンスとは、最も簡単にいえば、「読み取り速度と書き込み速度のバランスで決まるIOPS値」だ。1つのLUN(論理ユニット番号)に含まれるドライブは1秒当たり一定数のI/Oを提供する。また、サーバとストレージの間のパスには一定のスループットがあり、アプリケーションの要求は多い。素朴な疑問を投げかけるならば、「使用中のストレージのIOPSは十分なのか、それとも足りないのか」ということになるが、この答えは簡単に出せるとは限らない。以下のヒントで説明するツール、テクノロジーおよびソリューションを利用して、I/Oのキャパシティーを増やす、またはI/O要求を減少させる(通常はアプリおよびアプリのオーナーまたは開発者に通知することによって実現する)方法を見つけてほしい。

 仮想インフラ内のVMやデータストアの通常のI/O値を把握するには、仮想化固有のパフォーマンス分析ツールを使用するのが最善の方法である。そのようなツールは大抵どれでも、「使用しているシステムのIOPSを測定する」際に役立つ。そのツールとは、内蔵されているVMwareのCLI(コマンドラインインタフェース)ユーティリティのesxtop、vCenter内部のパフォーマンスグラフ(そこで示されているdisk.numberRead.summationとdisk.numberWrite.summationカウンターがIOPSに相当する)、またはサードパーティーが提供する有償のツールなどである。vCenterの統計は、IOPS値を算出するためのサンプル時間は計算に入れていないので、値の解釈には注意が必要な場合がある。サードパーティーのツール(またはVMwareのvCenter Operations Manager)はさらに高価だが、ずっとインテリジェントで使いやすい。

 以下の説明の中では、LUNの構成とRAIDの選択はI/Oのパフォーマンスに大きく影響することに注意が必要だ。

2. アプリケーションを理解する

 ストレージと仮想化システムの管理者は、I/Oを大量に増やすツールは多数持っているが、I/O要求を減少させる方法については、ごく限られた方法しか知らないことが多い。また、データセンターインフラの構築には進んで没頭する一方で、内部で動作しているアプリケーションには全く目を向けないITプロは実に多い。

 「最も多くI/Oを発生させているアプリケーションは何か」「内部で動いているのはどのVMか」「どのサーバクラスタを稼働させているのか」「どのストレージを使用しているのか」などが分からない場合、ストレージのパフォーマンスを本当の意味で理解することは困難だ。また、アプリケーションからのI/Oで多いのは、読み取りか書き込みなのだろうか? こうした疑問に対する答えを探ることで、ストレージのチューニング作業の方針が見えてくる。アプリケーションを理解し、アプリのオーナーとアプリの開発者と協力すれば、I/Oの負荷を減らすことができる。こうすれば、ストレージアレイを追加したり高性能のドライブを購入したりしなくて済むので、会社の経費も節減できる。

 アプリケーションが既に仮想化されている場合は、ここまでに挙げたツールを利用すれば、時間の経過に伴うI/Oの負荷と、負荷が高いのは読み取りか書き込みのどちらなのかを把握できる。仮想化されていない場合は、アプリの仮想化に関する概念実証を作成し、仮想化されたアプリに現実的な負荷をかけてテストを実行し、そのテスト結果に基づいて、稼働環境の負荷をモデル化することが必要になるかもしれない。または、本番環境のアプリで既にSAN(Storage Area Network)を使用している場合は、そのSANの供給元が提供しているパフォーマンスツールを利用して、仮想化する前の物理サーバに対するI/O作業負荷を測定する方法もある。

3. 現存のストレージのパフォーマンスを最大化する

 ストレージのパフォーマンスを改善するには、現在の設定でストレージのパフォーマンスを既に上限まで実現しているのかどうかを確認する方法もある。触ったこともない機能があるかもしれないし、コストを節約できる機能も備わっている可能性がある。仮想インフラのパフォーマンスを改善するには、ストレージLUNまたはRAIDグループを再構成するのも1つの手だ。I/Oの作業負荷は時間の経過に伴い変化するため、LUNのレイアウトとRAIDグループが数年前に配置されたとすれば、恐らく現在はもう最適ではなくなっている。複数のLUN間で作業負荷をリバランス(平均化)したり、LUNに接続しているRAIDの種類を変更すると、物理サーバだけでなく仮想インフラのパフォーマンスを改善できる可能性がある。仮想インフラのパフォーマンスの問題が発覚すると、とかく管理者は、パフォーマンスを向上させるための新しい「派手なオプション機能」に目を向けがちだが、根本の原因は、従来の物理サーバでもパフォーマンスに問題が起こる状況と共通していることが往々にしてある。

4. VAAIまたはODXへの対応

 VMwareの「vStorage APIs for Array Integration」(VAAI)は、vSphereのハイパーバイザーで実行していたストレージ関連のタスクをストレージにオフロードさせる仕組みである。例えば、VMのクローニング(クローンの作成)ならば、ハイパーバイザーを経由しなくても、ストレージに備えられた機能だけで処理できる。またVAAIでは、ハードウェアアクセラレーションのロック機能を使用することで、ディスクをロックする時間を大幅に短縮する。使用している仮想インフラが、ストレージへのオフロード機能を持つVAAIに対応しているかどうかを確認しよう。

 一方、Microsoft Hyper-Vの世界でVAAIに相当するものは、Offloaded Data Transfer(ODX)だ。Hyper-Vを使用している場合は、ストレージをODXに適応させたいところだろう。

 使用中のストレージがVMware VAAIに対応できるかどうかは、VMwareの互換性ガイド(VMware Compatibility Guide)で、使用中のSANまたはNAS(Network Attached Storage)について調べれば分かる。ODXに適応しているかどうかの確認は、そのストレージがMicrosoft ODX認証を受けているかどうかを、ストレージの供給元に問い合わせる必要がある。いずれ時間が経てば、エンタープライズ向けのストレージアレイにVAAIおよびODXの両方について互換性を持たせるメーカーは増えていくだろう。

5. スナップショットを制限する

 仮想マシンのスナップショット(ある時点のVMの状態を保存する)機能は、仮想化の中で最も便利な機能の1つである。ある時点のVMのメモリと仮想ディスクの状態を保存しておくことは、アプリケーションまたはOSのアップグレードで問題が起こった場合、または構成変更をテストする必要がある場合に役立つ。スナップショットは、仮想化のバックアップやレプリケーションを実行するアプリケーションが、システムのダウンタイムを発生させることなく仮想ディスクイメージの変更をキャプチャーするのにも利用される。ただし、スナップショットを何度も過度に使用すると、ディスクスペースを占有するだけでなく、バックアップアプリケーション、VMotionおよびそれ以外のストレージ関連機能のパフォーマンスの低下につながる。スナップショットはあくまで一時的に使用するもので、使用後は削除することだ。

 次回は、「シンプロビジョニング」「仮想化対応のストレージ」など残り5つの方法を紹介する。

ITmedia マーケティング新着記事

news098.jpg

イーロン・マスク氏がユーザーに問いかけた「Vine復活」は良いアイデアか?
イーロン・マスク氏は自身のXアカウントで、ショート動画サービス「Vine」を復活させるべ...

news048.jpg

ドコモとサイバーエージェントの共同出資会社がCookie非依存のターゲティング広告配信手法を開発
Prism Partnerは、NTTドコモが提供するファーストパーティデータの活用により、ドコモオ...

news112.jpg

「インクルーシブマーケティング」実践のポイントは? ネオマーケティングが支援サービスを提供
ネオマーケティングは、インクルーシブマーケティングの実践に向けたサービスを開始した...