VMware Global Community
zerodayatk
Contributor
Contributor
Jump to solution

VMware DRS (Distributed Resource Scheduler)に関して

初めまして、VMware関連製品初心者です。

何卒、よろしくお願い致します。

VMware vSphere 4.1 Enterpriseを導入したいと考えています。

物理サーバ1台構成において、ESX上に4つのゲストOSを稼働させようとしているのですが

CPUやMemoryの有効活用を目的として、DRSを利用しようと考えています。

DRSの製品情報等を拝見しましたが、複数のESXサーバを包括したリソース管理の説明ばかりで

物理サーバ1台であっても、その中のゲストOSに対してリソース管理(動的なCPU割り当てやメモリ割り当て)が出来るのか?と疑問符が出ております。

行いたいこと:

1つのESXサーバ上で稼働するゲストOS(A,B,C)において

A:CPU2~4 Memory:2048MB~上限無し

B:CPU4固定 Memory:4096MB固定

C: CPU2~最大数まで Memory:1024MB~上限無し

このような風に設定した場合、AのゲストOSのMemory使用率が肥大化した場合

CのゲストOSがFreeな状態であれば、Cに割り当てたMemoryを下げ、AのMemoryをあげる・・・といったことを出来るものか?

通常のDRSの説明では、空き状態にあるESXサーバへ別ESXサーバからゲストOSを遷移させ

リソースを有効活用する・・・というもの。

これが単一のESXサーバでそれぞれのゲストOSに出来るものか?という質問です。

このようなことが可能なのか?

ご教授ください。

Tags (3)
0 Kudos
1 Solution

Accepted Solutions
myamamoto
Expert
Expert
Jump to solution

こんにちは!

DRSですが、簡単に言うとCPUとメモリのリソース状態を見てクラスタ内で負荷の高いサーバから負荷の低いサーバに自動的にvMotionする機能です。

なので、1台構成の場合は意味がなくなってしまいます。

さておき、行いたいことについてですが。

仮想マシンの構成上は固定となります(上限なしという指定はできません)が、実際のハイパーバイザーからの割当を動的に変更することは、ゲストマシンにVMware Toolsをインストールすることによって

・メモリバルーニング

・メモリ圧縮

といった機能で実装できます。

例の場合、Aのメモリ使用量が上がり、Cのメモリ使用量が少ない場合にはCには割り当てたメモリのうちFreeなものはAに割り当てられることになります。

仮想マシンの構成上のメモリ=使用しているメモリ ではないということです。

常に動的にリソースプールの中でFreeなメモリを使用しているほうのゲストマシンに割当て、さらにリソースプール内で不足したらバルーニングで回収率を上げたり圧縮で利用量を減らしたりしてメモリを効率的に配分します。

これらは、すべてのエディションで使える機能です。

ご理解いただけたでしょうか?

View solution in original post

0 Kudos
6 Replies
myamamoto
Expert
Expert
Jump to solution

こんにちは!

DRSですが、簡単に言うとCPUとメモリのリソース状態を見てクラスタ内で負荷の高いサーバから負荷の低いサーバに自動的にvMotionする機能です。

なので、1台構成の場合は意味がなくなってしまいます。

さておき、行いたいことについてですが。

仮想マシンの構成上は固定となります(上限なしという指定はできません)が、実際のハイパーバイザーからの割当を動的に変更することは、ゲストマシンにVMware Toolsをインストールすることによって

・メモリバルーニング

・メモリ圧縮

といった機能で実装できます。

例の場合、Aのメモリ使用量が上がり、Cのメモリ使用量が少ない場合にはCには割り当てたメモリのうちFreeなものはAに割り当てられることになります。

仮想マシンの構成上のメモリ=使用しているメモリ ではないということです。

常に動的にリソースプールの中でFreeなメモリを使用しているほうのゲストマシンに割当て、さらにリソースプール内で不足したらバルーニングで回収率を上げたり圧縮で利用量を減らしたりしてメモリを効率的に配分します。

これらは、すべてのエディションで使える機能です。

ご理解いただけたでしょうか?

0 Kudos
zerodayatk
Contributor
Contributor
Jump to solution

ご返信ありがとうざいます。

やはり、DRSは複数のESXサーバがあってこその機能なのですね。

勉強不足で申し訳なかったです。

・メモリバルーニング

・メモリ圧縮

これらの用語を 中心にもう少し自分で調べてみます。

あと、「CPUを動的に増やしたり減らしたりする」とかを考えていましたが

それは不可能(ゲストOSにとって、いきなりCPUが消えたり増えたりしても・・・)ということを理解しました。

大変助かりました。

ありがとうございます。

0 Kudos
myamamoto
Expert
Expert
Jump to solution

補足になるのですが、構成上のメモリとCPUを動的に増やすHot Addという機能もあります。

こちらもゲストOSが起動中の増設に対応している必要はありますが。

zerodayatk
Contributor
Contributor
Jump to solution

補足説明ありがとうございます。

OSによってはCPUが動的に変化しても問題ないのですね。

これまた、勉強不足で申し訳ないです。

Hot Add。

こちらの方も合わせて勉強します。

ありがとうございました。

0 Kudos
horis
Contributor
Contributor
Jump to solution

こんにちは。

HotAddについては、リソースを減らす方向の変更はオンラインで実行できないはずなので、注意が必要です。

#減らす場合には、仮想マシンを停止した上で設定を編集する必要があります。

また、OSレベルでのCPU追加の対応状況以外に、仮想マシンを作成する際に指定するゲストOSの種類によっても、

CPUやメモリをオンラインで追加できるかどうかが決まっている(設定の編集で選べるオプションが変わる)みたいです。

CPUやメモリのリソース割当を制御する方法としては、予約(最小値)と制限(最大値)という2種類の値を

オプションとして設定することも可能ですので、そのあたりの設定の活用も検討されるとよいかもしれません。

0 Kudos
myamamoto
Expert
Expert
Jump to solution

たしかに、動的に増設ってことを考えるとつい減設って観点が漏れてしまいがちですねSmiley Happy

仮想マシンの構成面の考慮も、リソースの予約もたしかに重要だと思います。

0 Kudos