web-dev-qa-db-ja.com

VMware VMFS5とLUNのサイジング-複数の小さなデータストア、または1つの大きなデータストア?

VMFS5にはVMFSボリュームの2TBの制限がなくなったため、全体的にどのシナリオがより有益になるかを検討しています:-

  • より大きなサイズの少ないLUN、または
  • 小さいサイズのより多くのLUN。

私の場合、600 GBのディスクを備えた新しい24ディスクストレージアレイを持っています。私はRAID10を使用するので、およそ7.2TBで、1つの大きな7TBデータストアを使用するのか、それとも1TBの複数のストアを使用するのかを決定しようとしています。

各アプローチの長所と短所は何ですか?

更新:もちろん、計算にホットスペアを含めることを怠っていたため、7.2TB未満になりますが、一般的な考え方は同じです。 :-)

pdate 2:60個のVMと3個のホストがあります。私たちのVMのどれも、特にI/O集約型ではありません。それらのほとんどはWeb /アプリケーションサーバーであり、監視(munin/nagios)、最小負荷の2つのWindows DCなども含まれます。 I/O要件が非常に低い場合を除いて、DBサーバーが仮想化されることはほとんどありません。現在、私が持っている唯一の仮想DBサーバーはMSSQLボックスであり、そのボックスのDBは1GB未満だと思います。

アップデート:アレイとFC接続の詳細。アレイはIBM DS3524で、2GBのキャッシュをそれぞれ備えた2つのコントローラーです。コントローラあたり4x 8Gbit FCポート。各ESXiホストには2x 4Gbit FC HBAがあります。

10
ThatGraemeGuy

VMの数やVMが実行することを指定していません。その情報がなくても、ブロックサイズ/パフォーマンス、競合、および柔軟性の理由から、1つの大きなLUNを作成することは避けます。

4
ewwhite

デスクトップではなく、サーバーを仮想化することを想定しています。次に、いくつかのESX/ESXiサーバーを使用してストレージにアクセスし、それらをvCenter Serverで管理することを想定しています。

LUNのサイズとVMFSの数を決定するときは、インフラストラクチャのサポートされている最大構成に拘束される一方で、パフォーマンス、構成の柔軟性、リソース使用率など、いくつかの要因のバランスをとります。

1 VMから1 LUN/VMFSへのマッピングで最高のパフォーマンスを得ることができます。同じVMFS上のマシン間の競合、ロックの競合、各負荷が分離され、すべてがうまくいきます。問題は、膨大な量のLUNを管理し、サポートされている最大制限に達し、VMFSのサイズ変更と移行で頭痛の種に直面し、リソースが十分に活用されていないこと(VMFSの1パーセントポイントの空き領域が増える)であり、一般的に管理が難しい。

もう1つの極端は、すべてをホストするように指定された1つの大きなVMFSです。そのようにしてリソースを最大限に活用できます。VMFSYがアイドリングしている間、何をどこにデプロイするかを決定しても問題はなく、VMFS Xがホットスポットになるという問題はありません。コストはパフォーマンスの総計になります。どうして?ロックのため。 1つのESXが特定のVMFSに書き込んでいるとき、他のESXは完了するまでの時間ロックされますIOこれは再試行する必要があります。これによりパフォーマンスが低下します。遊び場/テストおよび開発環境以外では間違っていますストレージ構成へのアプローチ。

受け入れられている方法は、多数のVMをホストするのに十分な大きさのデータストアを作成し、利用可能なストレージスペースを適切なサイズのチャンクに分割することです。 VMの数はVMによって異なります。 VMFSで1つまたはいくつかの重要な本番データベースが必要になる場合がありますが、同じデータストアに3〜4ダースのテストおよび開発マシンを許可できます。データストアあたりのVMの数は、ハードウェア(ディスクサイズ、rpm、コントローラーキャッシュなど)とアクセスパターンにも依存します(特定のパフォーマンスレベルでは、同じVMFSでメールサーバーよりもはるかに多くのWebサーバーをホストできます)。

小さなデータストアには、もう1つの利点があります。つまり、データストアごとに仮想マシンを詰め込みすぎないようにします。少なくともシンプロビジョニングと重複排除について聞くまでは、管理上のプレッシャーが半テラバイトのストレージに1テラバイトの仮想ディスクを追加することはありません。

もう1つ:これらのデータストアを作成するときは、単一​​のブロックサイズで標準化します。データストア全体で何かを実行し、醜い「互換性のない」エラーを表示したい場合、それは後で多くのことを簡素化します。

更新:DS3kにはアクティブ/パッシブコントローラーがあります(つまり、任意の特定のLUNはコントローラーAまたはBのいずれかによって提供され、所有していないコントローラーを介してLUNにアクセスすると、パフォーマンスペナルティが発生します)。偶数のLUNを持ち、コントローラー間で均等に分散されます。

15個のVM/LUNから始めて20個程度に拡張できるスペースを想像できます。

2
Paweł Brodacki

あなたの質問への短い答えは、すべてのIOパターンが何であるかに依存し、これは環境に固有になります。

ここをご覧になることをお勧めします http://www.yellow-bricks.com/2011/07/29/vmfs-5-lun-sizing/ これは、予想されるIOPSと適切なLUNの数。とはいえ、注意が必要な場合は、多数のLUNを使用するように助言する人もいます(以前の回答に対する修正が承認された場合は、アレイ側のLUN IOキューに関するコメントを参照してください)。 。私は同意する傾向がありますが、それらをさらに拡張して単一またはいくつかのVMFSボリュームに拡張します(エクステントに関するFUDや他のVMFSの制限を信じないでください http://virtualgeek.typepad.com/virtual_geek /2009/03/vmfs-best-practices-and-counter-fud.html )。これには、vSphere内の単一または少数のデータストアを管理するという利点があります。vSphereは、各エクステントの最初のブロックから開始して、利用可能なエクステント間でVMを自動的に分散するため、複数のLUNにIOを分散させるパフォーマンス上の利点があります。

他に考慮すべきこと... VMは特にIOを集中的に使用しないと言います。これを踏まえて、RAID5とRAID10の組み合わせを検討して、両方の世界(スペースと速度)を最大限に活用することを検討してください。

さらに、複数のVMDKで構成されたVMで、OSとアプリケーションのIOパターンがそれらの仮想ディスク(つまり、OS、Web、DB、ログなど)に分散している場合は、次に、各VMDKを異なるデータストアに配置して、その物理LUNのIO機能に一致させることができます(例:RAID5のOS、RAID10のログ)。たとえば、1つのIOでのログ書き込みがWebの読み取り速度に影響を与えないように、基本的なディスクの機械的動作を利用するために、類似のVMパターンを一緒に維持することのすべて別のVMで。

FYI ...あなたできますDBサーバーの仮想化に成功しました。IOパターンとIOPSレートを分析し、その_をターゲットにするだけですIOを適切なLUNに。そのLUNがすでに実行しているIOパターンとIOPSを認識している間、このため、多くの管理者は仮想化がDBパフォーマンスの低下のせいにしている... costheは、複数のサーバーが生成するIO/IOPSを慎重に計算しなかったtheyそれらを共有LUNに配置します(つまり、仮想化の障害ではなく、管理者の障害です)。

1
mayday175

各ボリューム(LUN)には独自のキューの深さがあるため、IO競合を回避するために、多くの実装はより小さなLUNを使用します。つまり、データストアをLUNに簡単にスパンさせることができます。欠点私が知る限り、VMWareデータストアが大きい(および少ない)場合、同時にオンにできるVMの数に制限が発生する可能性があります。

0
Basil

もう1つの考慮事項は、コントローラーのパフォーマンスです。 SAN=具体的にはわかりませんが、すべてではないにしてもほとんどのSANでは、一度に1つのコントローラがLUNを所有する必要がありました。システムに十分な数のLUNを配置して、コントローラ間のワークロードのバランスをとることができます。

たとえば、LUNが1つしかない場合は、一度にアクティブなコントローラーを1つだけ使用します。もう一方は何もする必要がないため、アイドル状態になります。

2つのLUNがあり、1つが他よりもはるかにビジーな場合、両方のコントローラーを使用しますが、等しくはありません。さらにLUNを追加すると、コントローラーはワークロードをより均等に共有します。

あなたへの具体的なアドバイス:

VMのパフォーマンス要件はすべて同じです。コントローラごとに1つずつ、2つのLUNを作成します。 VMを最初のLUNに配置し、VMが落ち着くまでのI/Oレイテンシとキュー深度を測定します。2番目のLUNはまだ使用しないでください。 LUN 1への書き込みを続行します。LUNがいっぱいであることを示すパフォーマンスインジケーターが表示されるようになるか、VMの半分をそのLUNに移行してもパフォーマンスが維持されます。

パフォーマンスの問題が発生する場合は、VMの30%をLUN 1から削除し、LUN 2に移動します。次に、同じ方法でLUN 2の充填を開始します。必要に応じてLUN 3に移動します...意味がありますか?アイデアは、ファッジルームの約30%のオーバーヘッドに加えて、特定のLUNで最大の密度VM=密度を達成することです。

また、ヒット率の高いVMに対しては、「高性能」のLUNのペアを作成します。繰り返しますが、ワークロードを共有するためにコントローラごとに1つ。

0
Jeremy