仮想サーバー用ストレージ・パフォーマンス向上のコツ10箇条
著者:David Davis
Storage Magazine 2013年5月号より
仮想サーバーは、時としてストレージI/Oに大きな影響を与える事がある。以下に、あなたのストレージを最高のパフォーマンスで動かすのに役立つコツ10項目を紹介しよう。
エンタープライズの仮想化基盤では、共有ストレージを使うのが普通だ。VMware vSphereおよびMicrosoft Hyper-Vの先進的機能を使おうと思えば、すべてのホストが仮想マシン(VM)を構成するファイルにアクセスすることになるのは、理の当然である。最新版のVMware vMotionやMicrosoft Live Migrationは共有ストレージを必要としないものの、VMware v Sphere High AvailabilityやMicrosoft Failover Clusteringは、まだ共有ストレージを必要としている(というより、おそらく将来も必要)。
仮想化基盤(とあなたの基幹アプリケーション)を良好なパフォーマンスで動かすには、仮想CPU、仮想メモリ、仮想ディスクI/Oに、彼らが要求するだけのリソースを充分与えてやらなければならない。ハイパーバイザがより多くの統計データを提供し、監視ツールがより賢くなって、仮想CPUと仮想メモリの監視は以前より容易になった。しかし、仮想基盤ストレージのパフォーマンスの監視は、多くの場合、依然として科学というより職人芸の世界である。もちろん、ストレージ・パフォーマンスを分析した科学的統計データは存在するのだが、ストレージはハイパーバイザや物理サーバーの外部に存在し、それ故にハイパーバイザ(およびあなたの仮想化パフォーマンス監視ツール)は、ストレージで何が起こっているのかを判断する術を持ち合わせていないのだ(しかし、この状況は現在急速に変わりつつある)。
とはいえ、あなたの仮想サーバーストレージのパフォーマンスを向上させる方法は沢山ある。以下に、あなたのVM用ストレージシステムのパフォーマンスを改善するのに役立つ10個のコツをご紹介しよう。
あなたのIOPSを知ろう
仮想サーバーストレージのチューニングを科学するという事を、簡単にいえば、「IOPSで入ってくるものvs. IOPSで出ていくもの」という事になる。一つのLUNの中のドライブは、1秒あたりのI/Oに対してある数値を出しており、サーバーとストレージ間のパスも一定のスループットを出している、そしてアプリケーションがある程度の要求を出している、という環境がある。ここでの問いは「これで充分なのか、何か足さなければならないのか」というきわめて単純なものであるが、その答えはいつも簡単だとは限らない。リンク先で語られている沢山のツール、技術、ソリューションの特集記事は、I/O容量をいかに増やすかを教えてくれるだろう。あるいは、I/O要求を減らす方法もある(この方法には、使っているアプリの知識とアプリのオーナーや開発者の協力が必要だ)。仮想化基盤において、VMとデータ保存に対する一般的なI/Oを理解するための最善の方法は、仮想化専用のパフォーマンス解析ツールを使うことだ。これらのツールには、VMware esxtop CLItoolやvCenterに入っているパフォーマンス・グラフ(IOPSは、disk.numberRead.summationとdisk.numberWrite.summationのカウンターで表示される)やサードパーティ製の製品が含まれる。vCenterの統計は、IOPSを算出するために計測時間で割らなければならないので面倒だ。サードパーティ製品は(あるいはVMware vCenter Operation Managerであれば)コストはかかるが、ずっと使い易いし、はるかにインテリジェントだ。
本項以降に挙げられている他項目と比べて、LUN構成とRAIDの選択はI/Oパフォーマンスに多大な影響を与えるという事に留意してもらいたい。
あなたのアプリケーションを知ろう
ストレージと仮想化の管理者がI/O増大を手助けするツールを沢山持っていても、彼らがI/O要求を削減するためにとれる方法は所詮限られている。そしてまた、あまりにも多くのITプロがデータセンター基盤のジャングルの奥深くに喜々として分け入り、内部で動いているアプリケーションを全く顧みないという現実がある。
あなたのアプリケーションの中でどれが最もI/Oを要求しているか、どんなVMが中で動いているか、どんなサーバークラスター上でアプリが動いているのか、アプリが使っているストレージは何か、を知らずに、ストレージのパフォーマンスを真に理解するのには無理がある。そのアプリケーションはリード主体なのかライト主体なのか。これらの質問に答える事があなたのストレージチューニングの努力とつながっていく。アプリケーションを理解し、アプリのオーナーや開発者と協力することで、I/Oの作業負荷を減らす事ができるかもしれないし、新しいストレージアレイを買ったり、高パフォーマンスドライブを追加する事を不要にする事で会社にひと財産貢献できるかもしれないのだ。
もし、アプリケーションが既に仮想化されているのであれば、前述したツールを使って、それらのアプリの使用時の平均的なI/Oやリード主体かライト主体かを知ることができる。あるいは、アプリは仮想化されていないが、構想の正しさを証明するために、アプリを仮想化して、現実のものと同等の負荷をかけて、本番環境における作業負荷を規範化したいと思う事があるかもしれない。もし本番のアプリがすでにSANを使っているのであれば、仮想化する以前に物理サーバーのI/O作業量をSANベンダーのパフォーマンスツールを使って測定できるかもしれない。
既存ストレージを極大化しよう
ストレージのパフォーマンスを改善する一つの方法は、既にあるストレージを最大限に活用する仕組みを確立することだ。そこには、ONにした事もない機能があるかもしれないし、最小限のコストで使えるようになる機能があるかもしれない。ストレージのLUNやRAIDグループの構成を変更するのも、仮想化基盤のパフォーマンスを改善できるかもしれない。多くの場合、管理者は、仮想化基盤のストレージ・パフォーマンスの問題を従来の物理サーバーに起こっているのと同じ問題と考えて「目立つ方」に目を向けがちだ。
VAAIかODXか
VMwareのvStorage Apls for Away Integration(VAAI)を使うと、vSphereハイパーバイザ環境でいくつかのストレージ関連のタスクをストレージにオフロードすることができるようになる。例えば、ハイパーバイザ経由でVMをクローニングする替わりに、ストレージの中だけでそれを行う事ができてしまう。VAAIはまた、ハードウェアによる高速ロック機能を使って、ディスクがロックされている時間を大幅に短縮する。あなたのストレージにVAAI機能がついているかをチェックして、仮想化基盤がストレージオフロードの恩恵を受けていることを確認しよう。
Microsoft Hyper-V の世界では Offloaded Data Transfer (ODX)がVAAIに相当する。 あなたがHyper-Vを使っているのであれば、ODX対応のストレージが欲しくなるはずだ。.
あなたの使っているストレージがVMware VAAIに対応しているかを確認する場合は、VMware Compatibility GuideであなたのSANあるいはNASを調べることができる。ODX対応を確認する場合は、ベンダーにあなたの製品がMicrosoft ODX認証を受けているかを問い合わせることになる。自社のエンタープライズストレージ製品にVAAIおよびODX対応機能を追加するベンダーは日々増えている。
スナップショットを制限しよう
仮想化の最も便利な特徴の一つが、仮想マシンをスナップショットする機能だ。VMと仮想ディスクのポイント・イン・タイムのイメージは、万が一アプリケーションやOSのアップグレードがうまくいかなくなった時や、構成変更のテストが必要になったときに役に立つ。スナップショットはまた、ダウンタイムを発生させることなく仮想ディスクの変更をキャプチャするものとして、仮想化バックアップやレプリケーションのアプリケーションでも使われているとはいえ、あまり多くスナップショットをとると、ディスクスペースを喰うだけでなく、バックアップアプリケーションやvMotion、その他ストレージ関連の機能のパフォーマンス低下をもたらす。スナップショットは一時的な用途で使い、使い終わったら削除するようにしよう。
シック・プロビジョニングvs. シン・プロビジョニング
シン・プロビジョニングの仮想ディスクからVMを作製する機能は非常に便利だ。私はラボの環境で、いつもシン・プロビジョニングを使っている。とはいえ、仮想レイヤーにおけるシン・プロビジョニングと物理ストレージアレイは、慎重に計画を立て運用されるべきである。シン・プロビジョニングにおける最大の問題は、単純にストレージが不足してしまうことだ。しかし、もしあなたがVAAI対応のストレージを持っていないのなら、シンプロビジョンされた仮想ディスクの容量を増やす必要が出た時に、パフォーマンスの低下が起こる可能性がある。そういう場合は、VMのディスクとしてシック・プロビジョニング(正しくはlazyzerothick*訳注1)を使い、その後にストレージアレイでシン・プロビジョニングを使うといいかも知れない。
仮想化アウェア・ストレージ
最近出てきたいくつかのストレージは、「仮想化アウェア(知覚型)」といううたい文句がつけられている。これが意味するところは、そのストレージがVMware vCenterと会話をし、どんなVMが動いていてSAN/NAS上におけるそれらの仮想マシンディスクファイル(VMDK)のパスも理解する、という事だ。ストレージとvCenterの仮想化管理者にもストレージ管理表にも多大な恩恵をもたらす。
例えば、これを使えばどのVMが最もIOPSを発生しているか、どのVMが最もストレージ・レーテンシーを起こしているか、を知ることも可能だ。いくつかの仮想化アウェア・ストレージシステムでは、VM毎のスナップショットやクローンを作ることもできる。別にあなたのストレージアレイを仮想化アウェアのものに替える必要はない。しかし、将来のプロジェクトのために検討すべきものであり、ストレージベンダーに、あなたが現在持っているストレージに将来同様の機能を付加する予定があるか否かを問い合わせておくべきものである。
パーティション・アラインメント
古いオペレーティングシステム(OS)で、パーティション・アラインメントのことを考慮せずにVMを走らせると、パフォーマンス問題を引き起こすことがある。といっても、Windows vista、Windows7、Windows2008(あるいは、Windows8、Windows12などそれ以降のOS)では、もうこの問題は起こらない。いくつかの仮想化アウェア・ストレージは、OSが何であるかにかかわらず自動的にVMDKのアラインメントを行うことができる。しかし、もしあなたの会社ではまだ古いOSを使っているのであれば、仮想マシンファイルシステム(VMFS)やSAN LUNでVMDKがアラインされているか確認すべきだ。
Windows VistaやWindows2008以前のOSでパーティション・アラインメントの確認を手助けするツールは沢山出ている。無料のUberAlignや製品のvOptimizer Proはそれらのツールのひとつである。
ストレージI/Oコントロール
複数の仮想化ホストで同一のストレージを共有している時、ストレージがI/O要求の激しいアプリケーションに占有されていないか、あるいは、基幹アプリケーションにおいてI/Oが枯渇していないかを確かめる必要がある。VMwareのvSphere Storage I/O Controlは、VMFSデータストアのチェックボックスを. 一個チェックしておくだけでこれを実行してくれる。
ストレージ分散リソース・スケジューラー(SDRS)
VMwareのDistributed Resource SchedulerがCPUとRAMに対して行うことを、SDRSはストレージに対して行う。SDRSは、データストアのレーテンシが高くなったり、ディスク使用率が高くなった時に、仮想マシンディスクを(ダウンタイムなしで)別なデータストアへ移行してくれる。vCenterがSDRS用のストレージの能力を判別し、ストレージのトラブルを上手く回避できるように、あなたのストレージが、VMware vStorage Apls for Storage Awareness(VASA)を使ってvCenterと会話ができるかを確認しておこう。
他のどの手法もだめなときは…
誰にとっても予算をとるのが難しい状況ではあるが、あなたは、仮想化基盤のパフォーマンス改善のために、新しいストレージシステム購入に何がしかのお金を使う必要が出てくるかも知れない。
50以上のVMが一つのディスクLUNに襲いかかる仮想化基盤のI/O作業量は、1台のサーバーと1個のディスクLUNが1:1でマッピングされている、従来の構成における作業量とは全く違うものだ。あなたの新しいストレージは、より良いパフォーマンスを提供してくれるだけでなく、仮想化アウェア・ストレージ、ハイブリッドストレージ、VAAI、VASAといった新しい機能を提供してくれることだろう。 VMが統合化され、ストレージの見直しと装置の入れ替えが必要とされる今日、仮想化はデータセンターの新しい考え方となっている。
訳注1:Lazyzerothickは、VMware環境で仮想ディスクを作成するときに選択する方式の一つ。ディスクサイズは固定で割り当てられるが、作成時点では割り当てられた領域は、あらかじめゼロは書き込まず、実際のデータを書き込む直前にゼロを書く方式。実際に事が始まるまで怠けている(lazy)ように見えるためにこの名前がついているようだ。対照的な方式として、領域を割り当てた時点でデータを書き込む、Eagerzeroedthickという方式もある。(eager:頑張り屋の)
著者略歴:David Davisはwww.TrainSignal.comのVMware vSphere and Microsoft Hyper-V video training libraryの著者。エンタープライズIT18年の経験と、vExpert、VCP、VCAP-DCA 、CCIE #9369の資格を持ち、多くの著作がある。
Copyright 2000 - 2013, TechTarget. All Rights Reserved,
*この翻訳記事の翻訳著作権はJDSFが所有しています。 このページに掲載されている記事・写真・図表などの無断転載を禁じます。