Storage Magazine翻訳記事

仮想デスクトップのストレージ管理

著者:Eric Siebert
Storage Magazine 2011年3号より


仮想デスクトップは、サーバー仮想化が実現しているのと同様のコスト削減や統合を約束する。しかし、ここでもまたストレージは大きな課題である。

 

仮想デスクトップ基盤(VDI)の導入には多くの重要な考慮点があるが、ストレージはシステムの善し悪しを決定する最重要課題だろう。多くの場合、VDI導入の成功を左右するのはユーザーの経験知だが、中でもストレージはユーザーの経験値が最も影響力をもつ分野かもしれない。VDIストレージを正しく設計、導入、管理しなければ、トラブルを呼び込むことになる。

 

 

ストレージに対するVDIの影響度

 

VDI環境のストレージにおいて最も難しいのは、ストレージI/Oが最も高くなる使用ピークの期間の調整だ。I/Oの急上昇が起こる最も一般的なイベントは、多数のユーザーが一斉にマシンを立ち上げ、アプリケーションを読み込む「ブート・ストーム(boot storm)」である。デスクトップの起動は、OSとアプリケーションがディスクにたいして大量のリードを行う、リソース集中型の処理だ。数百ものデスクトップにより発生するストレージI/Oの量は、ストレージ装置が音(ね)を上げるには十分な量だ。ブート・ストームは一時的な現象ではない。30分から2時間続き、システムに重大な影響を及ぼす事もある。

 

ユーザーがマシンを立ち上げ、ログインし、アプリケーションを読み込んだ後は、ストレージI/Oは落ち着くのが普通だ。とはいえ、デスクトップへのパッチやアンチウィルス・ソフトのアップデート/スキャン、そして終業時のユーザー・ログオフもまた高いI/Oを生み出す。従って、これらのピーク期間をこなすデータストレージ基盤を持つことは非常に重要になってくる。

 

コストも気になるところだ。VDIのROI(投資利益率)はサーバー仮想化と同じではないので、適切な予算の確保が極めて困難になることもある。適正なVDI用ストレージ基盤の構築は、得てして非常に高価になる。さらに、1秒間におけるI/O処理(IOPS)要求を満たすために、必要以上のデータストレージ容量を購入することになるかもしれないのだ。

 

 

ストレージ要件の決定

 

VDI基盤を適正に設計するには、仮想デスクトップユーザーのリソース要件を理解する必要がある。憶測をしてはならない。リソース要件を適正に計算するには、デスクトップが仮想化されるユーザーの実際の統計が必要だ。ユーザーのプロフィールを把握し、リソースの使用量を計測する事がストレージ要件決定への鍵となる。Lakeside Software Inc.やLiquidware Labs Inc.などのベンダーの製品は、ユーザーのデスクトップからデータを収集してくれるので、環境評価を行い、ニーズを決めることが可能になる。データ収集の期間が長くなればなるほど、例外的な作業や定期的な作業に影響されることは少なくなる。

 

ストレージの測定においてキーとなるのはIOPSだ。IOPSに影響を与える要因はいくつかあるが(キャッシュ、ブロックサイズなど)、基本的な計算はハードディスクのメカニズム、回転数(rpm)と遅延およびシーク時間、に基づいて行われる。標準的な7,200rpmのディスクは理論上75 IOPSの能力を持ち、10K(1万)回転のディスクは125 IOPS、15K回転のディスクは175 IOPS、半導体ディスクでは5000IOPSになる。RAIDグループにおける計算では、RAIDグループ内のディスクの数にディスクのIOPSを掛けたものがそのRAIDグループのIOPSという事になる。(例: 15K回転のディスク6台×175 IOPS = 1,050 IOPS) その他、キャッシュのようにIOPSを増加させる要因もあれば、RAIDのオーバーヘッドやネットワークストレージ・プロトコルにおける遅延のようにIOPSを減少させる要因もある。

 

常に、ユーザーの実際のリソース使用量を測定するべきだが、取っ掛かりとして一般に認められた平均値を利用することもできる。この平均値はユーザのタイプ別の特徴に基づいて作られている。(下表参照)

 

 

 

I/O負荷の平均値だけを見てVDIストレージを設計してはならない。ユーザーに良い使用実感を持ってもらうためには、I/O負荷のピーク分も勘定に入れるべきだ。十分なストレージ容量を持つことは、もちろん大事なことだが、システムがどれだけのパフォーマンスを発揮するかはもっと大事だ。ストレージのパフォーマンスにおいては、スピンドルの数が重要な役割を果たすので、要求IOPSを得るため、結果として必要以上の容量を割り当てるということが起きる可能性がある。

 

 

ファイバチャネル vs. iSCSI vs. NAS

 

ストレージの種類は、予算やストレージ基盤の入手可能性によって決まる事が多い。ファイバチャネル(FC)SANは十分なパフォーマンスを提供してくれるだろうが、VDIの導入としてはあまりにも高価だ。iSCSIとNAS(NFS)は魅力的な選択だが、これらのプロトコルがI/O要件を確実に満たすことを保証しなければならない。10 Gbイーサネット(10 GbE)はiSCSIやNASの機器のスループットを劇的に向上させるが、10 GbEを未だ導入していないのであれば、結局はFCを導入するのと同じくらい高くつく。

 

負荷のピークにおけるIOPSは、iSCSIとNAS(NFS)の機器が処理しうるIOPSの数を上回るかもしれない。しかし、キャッシュやアクセラレーターをストレージ機器の前に置くことにより、十分パフォーマンスを改善できる場合もある。iSCSIもNASもホストサーバーにCPUオーバーヘッドを発生させる。iSCSIではハードウェア・イニシエーターによってこれを相殺することができる。アクセラレーターは一般的にNASでは動作しないが、NAS(NFS)には他のキャッシュを使ったソリューションがある。

 

 

LUNサイズとRAID

 

VDI用にLUN/ボリュームのサイジングを行う際、LUNが要求IOPSを提供することを確実にするために、パフォーマンスよりも容量に重点を置いてはいけない。実際のところ、様々な要因が絡んでくるため、LUNのサイズに王道はない。一般的に、RAIDグループ内のスピンドルの数が増えるほど、LUNのパフォーマンスは良くなる。また、LUNのサイズを、そこに載る仮想デスクトップの数に対して小さくしすぎてはならない。フルの仮想ディスクを使っているか、リンククローンを使っているかも、サイジングに影響してくる。リンククローンは、必要とするディスク・スペースがずっと少ない。

 

ストレージの節約のためにリンククローンを使う

 

リンククローンは、仮想デスクトップ基盤(VDI)環境で使用するのに、すこぶる重宝な機能である。リンククローンは、デスクトップが使用するベースOSのイメージを、単一のマスター仮想マシン(VM)上に置いて稼働する。全ての仮想デスクトップは、このイメージを、各VM用に作成した個別の差分ファイルにキャプチャされた書き込みデータとともに読み込む。差分ファイルは一般に小さいが、全てのディスクブロックが書き込まれれば大きくなる。とはいえ、そのようなことは起こりそうにもない。リンククローンは、パッチやOS、アプリケーションのアップデートを取り込むために、多く場合、定期的にリフレッシュを行う。リンククローンが提供する利点は、このようにはっきりしているが、フルディスク・イメージに比べてメンテナンスがより複雑になる場合もある。

 

 

RAIDにおいてデータ保護を優先するか、パフォーマンスを優先するか、選択には幅がある。RAID選択に影響を与える大きな要因は仮想デスクトップのリード/ライト比だ。RAIDグループからデータを読み込むときは、RAIDのオーバーヘッドによるI/Oペナルティは発生しないが、書き込みの時はI/Oペナルティが発生する。データの保護を求めれば求めるほど、I/Oペナルティという犠牲を払わなければならなくなる。例えば、RAID 1のI/Oペナルティは、書き込みが両方のディスクに対して行われるので2である。RAID 5では、I/Oペナルティは4に増え、RAID 6では6になる*訳注1)。I/Oのワークロードが読み込みよりも書き込みに多く割かれている場合は、書き込みのペナルティがより少ないRAIDレベルを使いたくなるはずだ。RAIDコントローラーのライトキャッシュを増やすか、NetAppのRAID-DPのようなカスタムRAIDレベルを使うことも効果がある。

 

 

ディスクの種類

 

SASディスクはより優れたパフォーマンスを提供し、SATAディスクはストレージのコストを引き下げることができる。高速な15K(1万5千回転)ディスクは、システムのスピードを引き上げることができるが、10Kディスクに比べればコストも上がる。半導体ディスク(SSD)は目覚ましいパフォーマンスを提供するが、値札を見れば目玉が飛び出る。仮想デスクトップ基盤のワークロードをこなすことができるディスクを選択するという事は、つまるところ、できる限り良いものを買う、という事だ。パフォーマンスの遅いSATAディスクは、ほとんどのVDIワークロードにとってはあまり望ましくない。SASディスクがより良い選択になる。

 

15Kディスクのプラッターはデータをより速く読み、より速く書く。また全体での遅延(レーテンシー)は低減されているものの、データをアクセスするためにディスク上を移動するヘッド・アクチュエーター(作動装置)の遅延は変わらない。そのため、ディスクが50%速く回転しても、全体でのパフォーマンス増加は約30%程度であり、この分が高速IOPSに寄与することになる。

 

ディスクの種類に応じて、必要とされるところには、より高速なストレージを置き、ワークロードがあまりきつくないところには、より安価で低速なストレージを配する、というやり方もある。リンククローン用マスターディスクは、高速なSSDに保存し、差分ディスクは、SASストレージに、ということもできるだろう。さらに一歩進めて、要求に応じて自動的にワークロードのバランスを取る、自動ティアリング・アプリケーションを使用することだってできる。

 

 

キャッシュとSANアクセラレーター

 

キャッシュ装置やSANアクセラレーターの使用によって、低速なストレージを補強し、ブート・ストームやその他の定期的なI/Oピークに対応できる、十分なIOPSが提供される。より安価なストレージを使いながらもVDIのI/Oワークロードをこなせるということは、コストの節約にもつながるだろう。NetAppのFlash Cacheのようなキャッシュ装置は、非常に大きな差を生み出し、ストレージの持つIOPS性能を大幅に増大する能力を持つ。キャッシュを、それを適用するのに最もふさわしい領域に適用してみるといい。ブート・ストームのようなイベントは、非常にリードが集中する事象であり、リードキャッシュの増設は大きな差を生み出すことだろう。

 

仮想マシンに割り当てられたRAMの容量はパフォーマンスに大きな影響をもたらすことがある。RAMの割り当てが十分でないと、OSはディスクにページングを始め、ディスクI/Oの量を大幅に増やす。不要なストレージI/Oはパフォーマンスを低下させるので、このような状況は、極力避けたい。RAMを過剰に割り当てると、ホストがメモリオーバーコミットした場合に、仮想レイヤーでスワップを起こす可能性があり、これもパフォーマンス低下の原因となる。ホストメモリーをオーバーコミットすることは問題ないし、仮想デスクトップ基盤(VDI)では普通に行われることだ。ホストのメモリーを使い果たさないという点だけ注意して頂きたい。

 

SANアクセラレーターは、既存のストレージの前に高パフォーマンスのキャッシュレイヤーを置く、という優れた方法だ。FalconStorのNetwork Storage Server(NSS)SAN Accelerator for VMware Viewは、設置が容易なアプライアンスで、ストレージ・システムのパフォーマンスを改善することができる。これにより、VDI用のストレージとして安価なSATAディスクを使っても適度なパフォーマンスを得られる場合もある。

 

 

その他有用なストレージ機能

 

ストレージには、通常はどこか別なところで行われるはずの、プログラムや処理を軽減する機能が多数ついてくる。ストレージに最大限それらの処理を引き受けさせることは、効率化とパフォーマンス向上につながる。以下、VDI環境に役立つと思われるいくつかの機能を挙げる。

 

 

・データ保護

 

Microsoft ボリューム シャドウ コピー サービス(VSS)のように、更新されたファイルの以前のバージョンを保存する機能は、ユーザーが自分のファイルをリストアするのを容易にしてくれる。しかし、全ユーザーのデスクトップにこの機能を実装すると、好ましくないオーバーヘッドの元となり、ストレージのI/Oも増加する。FalconStorのNSS SAN Acceleratorを使うと、ユーザーはエージェントをVDIゴールド・マスター・デスクトップ・テンプレートを走らせる事により、仮想デスクトップがNSS SAN Acceleratorと通信できるようになり、ゲストOS内で発生した全てのファイル変更は、このアプライアンスによりバックアップされる。ユーザーは、バックエンドのストレージ装置を経由せずとも、以前のバージョンをブラウズしてリストアするだけでファイルの復旧が行える。

 

 

I/Oスパイク(急上昇)を回避する

 

ブート・ストームのようにI/Oスパイクを起こすイベントは、回避することができないが、その他のI/Oスパイクを起こすオペレーションの中には、回避できるものもある。アンチウィルスのスキャン/アップデート、OSやアプリケーションのパッチおよびアップデートを、時差スケジュールを組んで実行しよう。負荷を長期間に分散させることにより、ストレージ・システムにおけるI/Oの集中を回避できる。また、アンチウィルス処理をゲストOSレイヤーから外して、効率的に動作する仮想レイヤーに移動することも可能だ。VMwareのvShield Endpointを使えば、アンチウィルスによるスキャンを専用の仮想アプライアンスに移してくれるので、ゲストOS内でアンチウィルス・ソフトウェアを走らせる必要は無くなる。これにより、ホストで走らせなければならなかったアンチウィルスのインスタンス数は、大幅に減る。また、処理を中央に集めているため、管理が容易でリソース使用量も大幅に減る。

 

 

・データ重複排除

 

データ重複排除は、仮想デスクトップに必要とされるストレージの量を大幅に減らすことができる。リンククローンの替わりにフルイメージの仮想マシン(VM)を使っていればなおさらだ。100台のデスクトップがあり、それぞれに20GBのディスクがついているとすると、およそ2TBのディスク・スペースが必要になる。しかし、一般にVDIユーザーは同じOSを走らせ、使うアプリケーションの多くも同じものだ。当然、たくさんの重複データが存在する。フルイメージの仮想デスクトップを使っている場合、重複排除によって、必要とされるディスク・スペースは、90%も削減できる場合がある。2TBが200GBに減る訳だ。リンククローンでは、単一のマスターディスクが共有され、変更分は差分ファイルに保存される。差分ファイルの大きさはわずか2GB〜5GBといったところだろう。 とにかく、フルイメージを使おうと考えているのであれば、データ重複排除は必須の機能だ。

 

 

・シン・プロビジョニング

 

リンククローン単独で十分スペースの効率化が得られるため、シン・プロビジョニング をそこに加えてもあまり効果はない。しかし、フルイメージの仮想デスクトップを使っている場合、シン・プロビジョニングは、ストレージのオーバーアロケートを可能にするため、非常に大きなスペース節約に寄与しうる。また、シン・プロビジョニングとデータ重複排除の組み合わせは、フルイメージを使用する際に、驚異的なスペース節約を実現する場合がある。シン・プロビジョニングは、ストレージ・レイヤーか仮想レイヤーで実行できる。デスクトップが多数密集しているVDI環境においては、シン・プロビジョニングを両方のレイヤーに実装することが可能だが、ストレージ・レイヤーに処理させた方が、仮想レイヤーのオーバーヘッドを減らせるので、合理的である。シン・プロビジョニングはまた、シン・ディスクの一つの領域のみを監視し、管理すれば良いので管理全体をシンプルにしてくれる。

 

 

・VMware vStorage APIs for Array Integration

 

VMware社のVMware vStorage APIs for Array Integration(VAAI)は、通常、仮想レイヤーで実行されるストレージ関連のタスクを、ストレージ・システムに肩代わりさせる。データコピー処理(クローニング、Storage vMotion)、Block Zeroingやvmdkファイル・ロックなどのタスクがこれに含まれる。VDI環境でのVAAIの使用にはメリットがある。ディスクの処理が、通常のハイパーバイザで行われるよりも速く、効率的に実行されるからだ。VAAIは登場して日も浅く、ストレージ・ベンダーによるインテグレーションも進行中だ。しかし、VAAIをサポートしているストレージは、今日でもメリットをもたらしており、技術が成熟すればさらに多くのものをもたらすと考えられる。

 

 

ニーズを知ろう

 

仮想デスクトップ基盤の環境に対応したストレージ・システムの設計には、考慮しなければならない事柄が数多くある。選択する際に予算の制限はあるだろうが、仮想デスクトップが要求する、パフォーマンス向上を支援する独創的なソリューションが、市場にいくつか出ている。いずれにせよ、最初の一歩は自社の要件を知ることだ。適正な評価は、ストレージの要件定義の手助けとなり、ひいては適正にサイジングされたストレージ・ソリューション導入へとつなげてくれる。正しくサイジングされたストレージ・システムが導入されたとき、ユーザーは初めて、ストレージ・システムによるボトルネックの憂いなしにVDIのメリットを享受できるのだ。

 

 

著者略歴:Eric SiebertはIT業界で25年以上の経験を持つベテラン。現在はサーバー管理と仮想化を集中的に取り上げている。VMware VI3 Implementation and Administration(Prentice Hall, 2009)およびMaximum vSphere (Prentice Hall, 2010)の著者。

 

*訳注1)
各RADIレベルのI/Oペナルティ(ライトペナルティ)についてJDSFでは、以下のとおり解釈しております。
RAID1・・・@元データ読出、A新データ書込、計2ペナルティ
RAID5・・・@元データ読出、A元パリティ読出、B新データ書込、C新パリティ書込
計4ペナルティ
RAID6・・・@元データ読出、A元パリティ1読出、B元パリティ2読出、 C新データ書込、D新パリティ1書込、E新パリティ2書込 計6ペナルティ
なお、原文ではRAID1は書込が2つのディスクへ行われるので ペナルティを2つとしておりますが、JDSFではディスクの数に関係なく、上記のとおり@元データ読出とA新データ書込でペナルティ2つと解釈しました。なお、RAID5とRAID6についても同様に解釈した結果、原文と同じペナルティの数としております。

 

ストレージ・マガジンはエンタープライズITにフォーカスしたTechTargetポートフォリオの一つです。
Copyright 2000 - 2011, TechTarget. All Rights Reserved,