単一のVMWareホストサーバーで100台の仮想マシンを実行する


24

私は長年VMWareを使用しており、数十の実稼働サーバーをほとんど問題なく実行しています。しかし、単一の物理ホストで20個を超えるVMをホストしようとはしませんでした。アイデアは次のとおりです。

  1. Windows XPの機能が低下したバージョンは、512MBのRAMと4GBのディスク容量で動作できます。
  2. 5,000ドルで、64 GBのRAMと4つのSASミラーを備えた8コアサーバークラスのマシンが手に入ります。
  3. 上記の100台のVMがこのサーバーに収まるため、私のハードウェアコストはVMあたりわずか50ドルです。

誰かがVMWareでこの種のスケーラビリティを達成できるかどうかを知りたいですか?いくつかのテストを行ったところ、奇妙な問題にぶつかりました。20個のVMを起動すると、VMのパフォーマンスが劇的に低下し始めます。同時に、ホストサーバーにはリソースのボトルネックは表示されません(ディスクのアイドル率は99%、CPU使用率は15%未満、空きRAMは十分にあります)。

VMWareやその他の仮想化技術のスケーリングに関する成功事例を共有していただければ幸いです!


4
どのVMware製品を使用する予定ですか?ESX?ESXi?サーバ?
wzzrd 09年

2
特に軽量タスクの場合は、256でXPを簡単に実行できます。Microsoftは64を必要としますが、128は「十分」ですtechnet.microsoft.com/en-us/library/bb457057.aspx
マットロギッシュ

1
どこからサーバーを購入していますか?私は1つが欲しい:)
ウォーレン

1
5000米ドルのみ、2つを販売できますか?:)
タラスチュヘイ

ホスティングサーバーに「この量のCPU」があり、各VMが共有します。さらに、esxiにはオーバーヘッドがあります:「このVMへの切り替え、管理、次への切り替えなど」、1秒間に何回も。これは、各VMが合計CPUの一部のみを取得することを意味します。VMが増えると、CPUの分割も増えます(また、追加するオーバーヘッドも増えます。つまり、100 VMを使用する代わりに、かなり多くのCPUを使用できます)。
オリビエデュラック

回答:


15

はい、できます。わずか384MiBのWindows 2003ワークロードでも十分であるため、512MiBはかなり高い推定値です。RAMは問題ではなく、CPUも問題ではありません。

100台のVMは少し急ですが、特にVMが非常にビジーにならない場合は実行可能です。1台のESXサーバーで60台のサーバー(Windows 2003およびRHEL)を簡単に実行できます。

VMware ESXについて話していると仮定すると、メモリをオーバーコミットできることも知っておく必要があります。VMが完全に指定されたメモリ割り当てを使用することはほとんどないため、ESXは利用可能なRAM容量以上をVMにコミットし、実際に「公式に」RAMを使用するよりも多くのVMを実行できます。

ほとんどの場合、ボトルネックはCPUまたはRAMではなくIOです。VMwareはマーケティングで膨大な量のIOPSを誇っていますが、プッシュが迫ると、SCSI予約の競合と限られた帯域幅により、VMwareのIOPSに近づく前に行き詰まります。

とにかく、20のVMパフォーマンスの低下は発生していません。使用しているESXのバージョンは何ですか?


ありがとう、Wzzrd!現在VMWare Server 2.0を使用していますが、すぐにESXを試す予定です。私はすべてのホストアレイのI / Oを非常に注意深く監視してきましたが、一度に複数のゲストを再起動することでそれを最大限に活用できました。ゲストの負荷が少ないとき、またはアイドル状態にあるとき、ホストディスクは99%アイドル状態です。そのため、CPUとIO以外のものがすべてのVMの速度を低下させているのではないかと考えています。ちなみに、彼らは劇的に遅くなります-[スタート]メニューを開くのに20秒かかり、VM内でタスクマネージャーを実行すると、タスクマネージャーのCPU使用率が90%になります-奇妙です!
デニスカシキン

2
これは、VMware Serverを使用しているためです。VMware Serverは別のプラットフォーム(ほとんどの場合Linux)の上にある仮想化プラットフォームであり、ESXはベアメタル仮想化プラットフォームです。非常に異なっており、概念的にも実行方法においても同様です。
wzzrd 2009年

悲しいことに、パッチの日に100のvmが付属している場合、同時に多くのマットを再起動することになります;)そして、パッチ自体は難しいです。サービスパックに注意してください-本当の痛みが始まるときです;)
TomTom

ベアメタルは特別なものだと考えることをごまかすな。ESXiは単なるLinuxにすぎません。はい、Linux。
-dresende

2
@dresende。いいえ、そうではありません。私を信じて。
wzzrd

11

そのような大規模な環境での1つの大きな問題は、防災とデータ保護です。サーバーが停止すると、100台のVMが停止します。

VMのある種のフェイルオーバーを計画し、障害が発生した場合にVMを保護する「VM以外の」管理を計画する必要があります。もちろん、この種の冗長性はコストの増加を意味します。そのため、そのような支出は、実際にその恩恵が見られるまで(不在によって)何度も承認されません。

VMホストは、いくつかの単一障害点の1つにすぎないことも忘れないでください。

  • ネットワーク-VMホストのネットワークカードがダウンした場合はどうなりますか?
  • メモリ-VMホストのメモリの一部が不良になった場合はどうなりますか?
  • CPU-CPUコアが停止した場合、VMはどうなりますか?
  • 電源-1本または2本の電源ケーブルしかありませんか?
  • 管理ポート-VMのホスト管理にアクセスできないと仮定しますか?

これはほんの数例です。大規模なVMインフラストラクチャでは、データ損失の防止とVM損失の防止に注意を払う必要があります。


2
デビッドに聞いてください。N + 1構成が必要になります。つまり、障害が発生した場合に別のマシンのすべてのワークロードを吸収できる予備のアイドルマシンが少なくとも1つ必要です。私の推奨事項は、負荷を均等に分散するが、1台のマシンに障害が発生した場合にすべてのワークロードを個別に処理できる2サーバークラスターです。
ジェイソンピアース

4

本番環境でのこの実行可能性に関する声明はありませんが、一般的なVMに対する重複排除によるディスクスペースをほとんど使用せずに約30分で32 ESXホスト(ホストあたり170)に5440 XPデスクトップをプロビジョニングする非常に興味深いNetAppデモがあります画像

http://www.youtube.com/watch?v=ekoiJX8ye38

私の推測では、あなたの制限はディスクサブシステムから来ています。それに応じてメモリとCPU使用率を考慮したようです。


3

決してそれをやったことはありませんが、サーバーハードウェアよりも多くのVMをサポートするのに十分なIOPを取得するために、ストレージよりもはるかに多くを費やすことをお約束します。100個すべてが同時にアクティブになっている場合、多くのIOPが必要になります。ネガティブに聞こえるわけではありませんが、1つのバスケットにたくさんの卵を入れていると考えましたか(シングルサーバーソリューションを求めているように聞こえますか?)


2
私は間違いなく複数の「バスケット」を作成し、いくつかの自動バックアップを設定します。I / Oのボトルネックは、最近SSDドライブで簡単に解決できます。私は実稼働で160GBのIntel MLCドライブを使用してきましたが、それらは見事です。基本的なSASドライブの5倍のランダムI / Oパフォーマンスが得られます(単純なRAID構成の場合)。
デニスKashkin

1

単一のホストで100台のVMを使用した場合のCPUの競合が最も心配です。プロセッサは仮想化されていないため、各マシンはCPUへのアクセスを待機する必要があることに注意する必要があります。VMWareエンジニアから%RDYフィールドの5を超えるものは非常に悪いと言われたESXTOPを見ると、競合を確認できます。

私の経験では、1台のホストで30〜40台のサーバーが実行されています(あまり実行していません)。


1

VMWare Server 1.0.6(Windows 2003の場合)に10個のホストがあり、定期的にIOの問題に遭遇しました(そして、ナイトリービルドが他のものと重複した場合、問題が発生します)。WindowsからESXi U3にアップグレードした後、パフォーマンスの問題は解消されました(夜間のビルドは失敗しなくなりました)。

また、SSDは回転するメディアよりもはるかに高いIOレートを持ちますが、特定の種類の書き込みパターン(ドライブに散らばる小さな書き込みの多くは、コントローラーに分散書き込みで適切に機能するスマート書き込みバッファリングキャッシュ)。

問題が発生した場合は、異なるドライブにSWAPファイルがあることを調査/テストすることをお勧めします。


1

それを行う場合は、新しいIntel 'Nehalem' Xeon 55xxシリーズプロセッサを使用することを強くお勧めします。これらのプロセッサはVMを実行するように設計されており、追加のメモリ帯域幅も非常に役立ちます。ああ、もし少数の大きなディスクよりももっと小さなディスクを使用できるなら、それは大いに役立つでしょう。ESXU4 over 3.5U4も使用できる場合。


1

16GのRAMを搭載したマシン上で、それぞれ512MのRAMで実行されているXP VMが20個あります。これより少ないと、ディスクにスワップされ、それがボトルネックになります。ただし、これらは常にアクティブなXP VMです。

VMwareとそのOverCommit機能により、各XPマシンにより多くのRAMをプッシュできるようになります。同様のマシンは同じページを共有するため、ディスク書き込みを減らすことができます。XP VMが10-20megの連続ディスクトラフィックを処理しているため、さらにマシンを追加しようとする設定を検討したいと思います。


1

VMWare Serverで100人のゲストを満足させることはできませんでしたが、ESXiの方がはるかに良い仕事をしていることがわかりました。そのため、ESXiと適切なサーバー(I / O、2、3個のI7チップ、64GBのRAMを拡散するためのいくつかのディスクミラー)を使用する場合、100 XP vmsは問題ではないようです。エンドユーザーに目に見える遅延はなく、ホストリソースは最大になりません(最もホットなのはCPUですが、通常は少なくとも70%のアイドル状態です)。

PS。この質問は、VMWareサーバーで苦労していたときに私に投稿されました。


0

前回確認したとき、VMwareは、VMごとに1つのvCPUを想定して、ESXの処理コアごとに4つ以上のVMを推奨していません。

これは、管理オーバーヘッドが要因になることを示唆しています。

8コアのボックスで実際に4倍のファクターを達成できるかどうかを確認したいと思います。


1
それは、ESX 3.5U2より前のバージョンです。アップデート2の構成の最大ドキュメントは、一般的な目的では8ですが、VDIワークロードでは11に増加します。Update 3または4でVDIの推奨事項を19に増やした手に負えないものを見つけたと確信しています。vSphereの制限は20になりました。
ヘルビック09年

ほとんどの場合、VMはアイドル状態のままです。人々は1日に数回接続して、軽量のソフトウェアを実行します。これらのVMは、アイドル状態のときにホストで非常に小さなCPUオーバーヘッドを生成することを確認しました(20個のVMは、デュアルクアッドコアシステムに基づいて最大9%のCPU使用率を追加します)。CPUあたり4つのVMの制限がどのように正当化されるかを覚えていますか?WebサーバーまたはデスクトップOSインスタンスについて考えていますか?
デニスカシキン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.