• 検索結果がありません。

仮想マシンのメモリ設定

仮想マシンを作成するときに、特定のメモリ量を割り当てることができます。動的メモリ制御

(DMC︓Dynamic Memory Control)機能を使⽤すると、仮想マシン間での動的なメモリ再割り当 てが可能になり、XenServer環境での物理メモリ使⽤を効率化できます。

XenCenterの[メモリ]タブには、メモリの使⽤状況がグラフで⽰されます。このタブについて詳し くは、XenCenterヘルプを参照してください。

動的メモリ制御機能には、以下の特⻑があります。

• 仮想マシンを再起動せずにメモリを追加したり削除したりできるため、ユーザーに中断のないサー ビスを提供できます。

• ホスト上で追加の仮想マシンを起動できない状況でも、実⾏中の仮想マシンのメモリ割り当て量が 均等に削減されるため、仮想マシンを新たに起動できるようになります。

6.1. 動的メモリ制御(DMC)とは

XenServerの動的メモリ制御では、実⾏中の仮想マシンのメモリが⾃動的に調節されます。この機能 では、各仮想マシンに割り当てられたメモリ量を特定の範囲内で増減して、パフォーマンスを維持し ながらサーバーあたりの仮想マシン密度を向上させることができます。

DMCが無効な場合、サーバー上に使⽤可能なメモリがないときに追加の仮想マシンを起動しようと すると、メモリ不⾜によるエラーが発⽣します。この問題を解決するには、既存の仮想マシンに割り 当てたメモリ量を減らして、各仮想マシンを再起動しなければなりません。DMCを有効にすると、

サーバー上に使⽤可能なメモリがない場合でも、XenServerで実⾏中の仮想マシンのメモリ割り当て 量が(管理者が設定した範囲内で)減らされて、追加の仮想マシン⽤に解放されます。

6.1.1. 動的メモリ範囲

管理者は、各仮想マシンについて動的メモリ範囲を設定できます。これは、仮想マシンを再起動せず に増減できるメモリ量の範囲を指します。管理者は、実⾏中の仮想マシンの動的メモリ範囲を調節で きます。XenServerでは、仮想マシンに割り当てられるメモリがこの動的メモリ範囲内で維持されま す。このため、実⾏中の仮想マシンについてこの範囲を変更すると、XenServerによってその仮想マ シンに割り当てられているメモリ量がすぐに変更される場合があります(たとえば、動的メモリ範囲 の最⼩値と最⼤値に同じ値を設定すると、XenServerによってその仮想マシンに割り当てられるメモ リ量が強制的にその値に変更されます)。使⽤可能なメモリがないサーバー上で追加の仮想マシンの 起動が必要になると、実⾏中のほかの仮想マシンのメモリが解放されます。追加の仮想マシン⽤に必 要なメモリは、実⾏中の各仮想マシンから、指定されたメモリ範囲内で均等に再割り当てされます。

動的メモリ制御機能では、動的最⼩メモリ量と動的最⼤メモリ量を設定して、その仮想マシンの動的 メモリ範囲(DMR︓Dynamic Memory Range)を作成します。

• 動的最⼩メモリ量︓その仮想マシンに割り当てるメモリ量の最⼩値。

• 動的最⼤メモリ量︓その仮想マシンに割り当てるメモリ量の最⼤値。

たとえば、動的最⼩メモリ量を512MB、動的最⼤メモリ量を1024MBに設定した場合、この仮想マ シンの動的メモリ範囲は(DMR)は512〜1024MBになり、この範囲内で仮想マシンが動作しま す。XenServerのDMCを有効にすると、各仮想マシンのメモリがこのDMR内で常に確保されます。

6.1.2. 静的メモリ範囲

XenServerでサポートされるオペレーティングシステムの中には、メモリの動的な追加や削除を正し く処理できないものがあります。このため、XenServerが仮想マシンの起動時に最⼤メモリ量を割り 当てて、ゲストオペレーティングシステムがページテーブルやほかのメモリ管理ストラクチャを⽤意 できるようにする必要があります。XenServerでこれを⾏うには、静的メモリ範囲という概念を使⽤

します。静的メモリ範囲は、仮想マシンの実⾏中に増減できないメモリ範囲です。仮想マシンによっ

ては、動的メモリ範囲が常に静的メモリ範囲内でなければならないなどの制約を受けます。静的最⼩

メモリ量(静的メモリ範囲の最⼩値)には、XenServer上でそのオペレーティングシステムが動作す るために必要な最低限のメモリ量が設定されています。

注︓

Citrix は、静的最⼩メモリ量にはそのオペレーティングシステムで必要な最低限の メモリ量が設定されているため、この値を変更しないことをお勧めします。詳しく は、後述の「サポートされるオペレーティングシステム」の表を参照してくださ い。

静的最⼤メモリ量に動的最⼤メモリ量よりも⼤きな値を設定すると、仮想マシンに より多くのメモリを割り当てなければならなくなったときに、その仮想マシンを再 起動しなくても割り当て量を増やすことができます。

6.1.3. 動的メモリ制御の動作

仮想マシンメモリの⾃動圧縮

• 動的メモリ制御が無効な場合、追加の仮想マシンを起動できない状態のホスト上で仮想マシンを新 たに起動しようとすると、メモリ不⾜エラーが発⽣し、起動に失敗します。

• 動的メモリ制御が有効な場合、XenServerによって、(実⾏中の仮想マシンに割り当てられている メモリを動的メモリ範囲内で削減することで)このような状態のホストでメモリの解放が試⾏され ます。これにより、そのホストで実⾏中のすべての仮想マシンが、動的最⼩メモリ量と動的最⼤メ モリ量の範囲内で均等に「圧縮」されます。

動的メモリ制御が有効なとき

• ホストで使⽤可能なメモリ量が⼗分な場合、実⾏中のすべての仮想マシンに動的最⼤メモリ量が割 り当てられます。

• ホストで使⽤可能なメモリ量が不⼗分な場合、実⾏中のすべての仮想マシンに動的最⼩メモリ量が 割り当てられます。

動的メモリ制御を設定するときは、⼗分なメモリが仮想マシンに割り当てられるようにしてくださ い。割り当てられたメモリが⼗分でないと、仮想マシンで以下の問題が発⽣する場合があります。

• 動的メモリ制御により割り当てられるメモリが⼗分でないと、仮想マシンの起動に時間がかかる場 合があります。同様に、仮想マシンに割り当てるメモリ量が少なすぎると、起動に時間がかかる場 合があります。

• 動的最⼩メモリ量の設定が低すぎると、仮想マシン起動時のパフォーマンスおよび安定性が低下す る場合があります。

6.1.4. 動的メモリ制御のしくみ

動的メモリ制御では、以下の2つのモードのいずれかで仮想マシンが動作します。

1. ターゲットモード︓仮想マシンの動的メモリ範囲を指定します。XenServerは、このターゲット に合致するように仮想マシンのメモリ割り当てを調節します。メモリターゲットの設定は、特に 仮想サーバー環境や、仮想マシンに必要なメモリが分かっている場合に使⽤します。XenServer は、指定されたターゲットに合致するように仮想マシンのメモリ割り当てを調節します。

2. 動的範囲モード︓管理者は、仮想マシンの動的メモリ範囲を指定します。XenServerは、その範 囲内でターゲットを選択し、そのターゲットに合致するように仮想マシンのメモリ割り当てを調 節します。動的範囲の設定は、仮想デスクトップ環境や、実⾏する仮想マシンの数に応じて XenServerによって動的にメモリを再割り当てする場合に使⽤します。XenServerは、指定され た範囲内でターゲットを選択し、そのターゲットに合致するように仮想マシンのメモリ割り当て を調節します。

注︓

これらの動作モードは、実⾏中の仮想マシンで必要に応じて切り替えることができ ます。XenServerでは、仮想マシンは、特定のメモリサイズを指定するとターゲッ トモードになり、メモリ範囲を指定すると動的範囲モードになります。

6.1.5. 動的メモリ制御の制限事項

XenServer 管理者は、すべてのゲストオペレーティングシステムに対してすべてのメモリ制御操作 を使⽤できます。ただし、XenServerでは常に以下の条件を満たしている必要があります。

0

≤ memory-static-min ≤ memory-dynamic-min ≤ memory-dynamic-max ≤

memory-static-max

XenServer 仮想マシンのメモリプロパティを設定するときは、上記の条件を満たす任意の値を指定 できますが、検証チェックが⾏われます。この条件に加えて、Citrixには特定のオペレーティングシ ステムに適⽤される制限事項もあります。サポートされるメモリ範囲は、仮想マシン上で動作するオ ペレーティングシステムにより異なります。XenServerでは、これらの制限を超えた値を設定して も、警告は表⽰されません。ただし、パフォーマンスおよび安定性の問題を避けるため、以下のメモ リ制限を超えないように設定してください。サポートされるオペレーティングシステムごとの最⼩お よび最⼤のメモリ制限について詳しくは、『XenServer仮想マシンユーザーガイド』を参照してくだ さい。

警告︓

Citrixは、そのオペレーティングシステムで使⽤可能な物理メモリの上限を超える メモリを仮想マシンに割り当てないことを推奨します。オペレーティングシステム がサポートするメモリ量の上限を超えると、その仮想マシンの動作が不安定になる 場合があります。

さらに、サポートされるすべてのオペレーティングシステムにおいて、動的最⼩メ モリ量は静的最⼤メモリ量の4分の1以上に設定する必要があります。動的最⼩メ モリ量を下回るメモリを割り当てると、その仮想マシンの動作が不安定になる場合 があります。仮想マシンのサイズを慎重に測定して、動的最⼩メモリ量でもアプリ ケーションが正しく動作することを確認してください。

6.2. xe CLIコマンドを使⽤するには

6.2.1. 仮想マシンの静的メモリプロパティを表⽰する

1. 次のコマンドを実⾏して、仮想マシンのUUIDを確認します。

xe vm-list

2.

param-name=memory-staticを指定して、次のコマンドを実⾏します。

xe vm-param-get uuid=<uuid> param-name=memory-static-{min,max}

たとえば、次のコマンドを実⾏すると、UUIDが「ec77〜」の仮想マシンに設定されている静的 最⼤メモリ量が表⽰されます。

xe vm-param-get uuid= \

ec77a893-bff2-aa5c-7ef2-9c3acf0f83c0 \ param-name=memory-static-max;

268435456

この仮想マシンに設定されている静的最⼤メモリ量は、268435456バイト(256MB)です。

6.2.2. 仮想マシンの動的メモリプロパティを表⽰する

仮想マシンの動的メモリプロパティを表⽰するには、param-name=memory-dynamicを指定し ます。

関連したドキュメント