Go to main content
Oracle® VM Server for SPARC 3.4 管理ガイド

印刷ビューの終了

更新: 2016 年 8 月
 
 

メモリーの動的再構成の使用

メモリーの動的再構成 (DR) は、容量ベースであり、アクティブな論理ドメインでの任意の容量のメモリーの追加または削除を可能にします。

    メモリー DR 機能を使用するための要件と制限は次のようになります。

  • メモリー DR 操作は任意のドメインで実行できます。ただし、ドメインで同時に実行できるメモリー DR 操作は 1 つだけです。

  • メモリー DR 機能では、操作に関与するメモリのアドレスとサイズが 256M バイト単位であることが要求されます。メモリー配置を参照してください。

  • 空きメモリープールに存在する、この単位に基づかないメモリーは、メモリー DR 機能を使用してドメインに割り当てることはできません。単位が調整されていないメモリーの追加を参照してください。

メモリー DR 操作を使用してドメインのメモリーを再構成できない場合、メモリーを再構成する前にドメインを停止する必要があります。そのドメインが制御ドメインの場合、まず遅延再構成を開始する必要があります。

特定の状況では、Logical Domains Manager は、リクエストされたメモリー割り当てを 8K バイトまたは 4M バイトの倍数のいずれかに切り上げます。次の例は ldm list-domain -l コマンドの出力例を示しています。ここでは、実際に割り当てられているサイズより制約値の方が小さくなっています。

Memory:
          Constraints: 1965 M
          raddr          paddr5          size
          0x1000000      0x291000000     1968M

メモリーの追加

ドメインがアクティブの場合、ldm add-memory コマンドを使用してドメインにメモリーを動的に追加できます。指定されたメモリーサイズがドメインの現在のメモリーサイズを超えている場合は、ldm set-memory コマンドで動的にメモリーを追加することもできます。

メモリーの削除

ドメインがアクティブの場合、ldm remove-memory コマンドを使用してドメインから動的にメモリーを削除できます。指定されたメモリーサイズがドメインの現在のメモリーサイズよりも小さい場合、ldm set-memory コマンドで動的にメモリーを削除することもできます。

メモリーの削除操作には長い時間が必要な場合があります。指定のドメインに対して ldm list -l コマンドを実行すると、ldm remove-memory コマンドの進捗状況を追跡できます。

ldm remove-memory コマンドを中断する (Control-C を押す) か、ldm cancel-operation memdr コマンドを発行して、進行中の削除要求を取り消すことができます。メモリー削除要求を取り消すと、削除要求の未処理の部分、つまりドメインからまだ削除されていない部分のメモリーのみが影響を受けます。

部分的なメモリー DR 要求

動的にメモリーをドメインに追加する、またはドメインから削除するリクエストは、部分的にしか実現されない可能性があります。この結果は、追加または削除にそれぞれ適したメモリーが使用できるかどうかによって異なります。


注 - ドメインから削除されたメモリーは、他のドメインに追加される前にクリアされます。

制御ドメインのメモリーの再構成

メモリー DR 機能を使用して、制御ドメインのメモリーを再構成できます。制御ドメインでメモリー DR 要求を実行できない場合、まず遅延再構成を開始する必要があります。

メモリー DR 操作には長い時間を要する場合があるため、アクティブなドメインから大量のメモリーを削除する場合は、メモリー DR 操作は適さない可能性があります。具体的には、システムの初期構成時には、遅延再構成を使用して制御ドメインのメモリーを減らすようにしてください。

制御ドメインのメモリーを減らす

制御ドメインのメモリーを出荷時デフォルト構成から減らすには、メモリー DR ではなく遅延再構成を使用します。このような場合、ホストシステムのメモリーすべてを制御ドメインが所有します。アクティブなドメインは、要求されたメモリーのすべてを追加できること、またはより一般的には放棄できることを保証されていないため、この目的にメモリー DR 機能は適していません。むしろ、そのドメインで実行されている OS が、要求を最大限に満たすことを試みます。さらに、メモリーの削除操作には長い時間が必要な場合があります。これらの問題は、制御ドメインのメモリーを最初に減らすときのように、大量のメモリー操作が関与する場合にはさらに悪化します。

以上の理由により、次の手順に従って遅延再構成を使用してください。

  1. ldm start-reconf primary コマンドを使用して、制御ドメインを遅延再構成モードにします。

  2. 必要に応じて、制御ドメインにより所有されているホストシステムのリソースを分割します。

  3. 必要な場合は、ldm cancel-reconf コマンドを使用して手順 2 の操作を元に戻し、やり直します。

  4. 制御ドメインをリブートして、再構成の変更を有効にします。

動的再構成と遅延再構成

制御ドメインで遅延再構成が保留されている場合、他のドメインについてのメモリー再構成要求はすべて拒否されます。制御ドメインで遅延再構成が保留中されていない場合、メモリー DR をサポートしないドメインについてのメモリー再構成要求はすべて拒否されます。それらのドメインの場合、リクエストは、遅延再構成リクエストに変換されます。

メモリー配置

メモリー再構成のリクエストは、そのリクエストが適用されるドメインの状態に応じて、配置の要件が異なります。

アクティブなドメインのメモリー配置

  • 動的追加および削除。動的追加と動的削除では、メモリーブロックのアドレスとサイズが 256 MB 単位になります。操作の最小サイズは 256M バイトです。

    この単位に基づかない要求や、境界サイズよりも大きい削除要求は拒否されます。

      メモリー配置を調整するには、次のコマンドを使用します。

    • ldm add-memoryこのコマンドで –-auto-adj オプションを指定した場合、追加されるメモリーの量は 256 MB 単位であるため、ドメインに実際に追加されるメモリーの量が増えることがあります。

    • ldm remove-memoryこのコマンドで –-auto-adj オプションを指定した場合、削除されるメモリーの量は 256 MB 単位であるため、ドメインから実際に削除されるメモリーの量が減ることがあります。

    • ldm set-memoryこのコマンドは、追加または削除操作として扱われます。–-auto-adj オプションを指定すると、前に説明したように、追加または削除されるメモリーの量は 256M バイト単位になります。この調整により、ドメインのメモリーサイズが増加する可能性があります。

  • 遅延再構成。メモリーブロックのアドレスとサイズは 4M バイト単位です。この単位に基づかない要求を行なった場合、要求は 4M バイト単位に切り上げられます。

バインドされているドメインのメモリー配置

バインドされているドメインの、メモリーブロックのアドレスとサイズは 4M バイト単位です。この単位に基づかない要求を行なった場合、要求は 4M バイト単位に切り上げられます。そのため、ドメインの結果のメモリーサイズが指定よりも大きくなることがあります。

ldm add-memoryldm set-memory、および ldm remove-memory コマンドに –-auto-adj オプションを使用すると、結果のメモリーサイズが 256M バイト単位に切り上げられます。そのため、結果のメモリーが指定よりも大きくなることがあります。

アクティブでないドメインのメモリー配置

ldm add-memoryldm set-memory、および ldm remove-memory コマンドに –-auto-adj オプションを使用すると、結果のメモリーサイズが 256M バイト単位に切り上げられます。アクティブでないドメインについては、単位の要件はありません。バインドされているドメインのメモリー配置に記載されている制限は、このようなドメインがバインドされたあとで有効になります。

単位が調整されていないメモリーの追加

メモリー DR 機能では、アクティブなドメインに動的に追加または削除されるメモリーのアドレスとサイズが 256M バイト単位であることが要求されます。このため、この単位に調整されていないメモリーを、メモリー DR を使用してアクティブドメインから削除することはできません。

また、空きメモリープールに存在するメモリーがこの単位に調整されていない場合、それらをメモリー DR を使用してアクティブなドメインに追加することもできません。

単位が調整されたすべてのメモリーが割り当てられたあとで、ldm add-memory コマンドを使用して、単位が調整されていない残りのメモリーをバインドされたドメインまたはアクティブでないドメインに追加できます。また、このコマンドを使用して、遅延再構成操作を行い、単位が調整されていない残りのメモリーを制御ドメインに追加できます。

次の例は、残り 2 つの 128M バイトのメモリーブロックを primary および ldom1 ドメインに追加する方法を示しています。ldom1 ドメインはバインドされた状態です。

次のコマンドは、制御ドメインで遅延再構成操作を開始します。

primary# ldm start-reconf primary
Initiating a delayed reconfiguration operation on the primary domain.
All configuration changes for other domains are disabled until the
primary domain reboots, at which time the new configuration for the
primary domain also takes effect.

次のコマンドは、128M バイトのメモリーブロックの 1 つを制御ドメインに追加します。

primary# ldm add-memory 128M primary
------------------------------------------------------------------------------
Notice: The primary domain is in the process of a delayed reconfiguration.
Any changes made to the primary domain will only take effect after it reboots.
------------------------------------------------------------------------------

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -ndcv-  SP      8     2688M    0.1%  23d 8h 8m

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      8     2560M    0.5%  23d 8h 9m
ldom1            bound      ------  5000    1     524M

次のコマンドは、ほかの 128M バイトのメモリーブロックを ldom1 ドメインに追加します。

primary# ldm add-mem 128M ldom1
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      8     2560M    0.1%  23d 8h 9m
ldom1            bound      ------  5000    1     652M

メモリー DR の例

次の例は、メモリー DR 操作を実行する方法を示しています。関連する CLI コマンドについては、ldm(1M) のマニュアルページを参照してください。

使用例 66  アクティブなドメインでのメモリー DR 操作

この例は、アクティブなドメイン ldom1 に対し、動的にメモリーの追加と削除を行う方法を示しています。

ldm list の出力の「Memory (メモリー)」フィールドに、各ドメインのメモリーが表示されます。

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
ldom2            bound      ------  5001    2     200M

次の ldm add-mem コマンドに指定するメモリーは 256M バイトの倍数である必要があるため、このコマンドはエラーで終了します。次の ldm add-mem コマンドは –-auto-adj オプションを使用しているため、追加するメモリーの量として 200M を指定していますが、メモリーの量は 256M バイトに切り上げられます。

primary# ldm add-mem 200M ldom1
The size of memory must be a multiple of 256MB.

primary# ldm add-mem --auto-adj 200M ldom1
Adjusting request size to 256M.
The ldom1 domain has been allocated 56M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME            STATE   FLAGS   CONS    VCPU    MEMORY  UTIL    UPTIME
primary         active  -n-cv-  SP      4       27392M  5.0%    8m
ldom1           active  -n----  5000    2       2304M   0.5%    1m
ldom2           bound   ------  5001    2       200M

ldm rm-mem コマンドに指定するメモリーは 256M バイトの倍数である必要があるため、このコマンドはエラーで終了します。同じコマンドに –-auto-adj オプションを追加すると、メモリーの量が次の 256M バイトの境界まで切り下げられるため、メモリーの削除は成功します。

primary# ldm rm-mem --auto-adj 300M ldom1
Adjusting requested size to 256M.
The ldom1 domain has been allocated 44M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME            STATE   FLAGS   CONS    VCPU    MEMORY  UTIL    UPTIME
primary         active  -n-cv-  SP      4       27392M  0.3%    8m
ldom1           active  -n----  5000    2       2G      0.2%    2m
ldom2           bound   ------  5001    2       200M
使用例 67  バインドされたドメインでのメモリー DR 操作

この例は、バインドされたドメイン ldom2 に対してメモリーの追加と削除を行う方法を示しています。

ldm list の出力の「Memory (メモリー)」フィールドに、各ドメインのメモリーが表示されます。最初の ldm add-mem コマンドは、ldom2 ドメインに 100M バイトのメモリーを追加します。次の ldm add-mem コマンドには –-auto-adj オプションが指定されているため、さらに 112M バイトのメモリーが ldom2 に動的に追加されます。

ldm rm-mem コマンドは、ldom2 ドメインから 100M バイトを動的に削除します。同じコマンドに –-auto-adj オプションを指定して 300M バイトのメモリーを削除すると、メモリーの量は次の 256 M バイトの境界まで切り下げられます。

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 53m
ldom1            active     -n----  5000    2     2G       0.4%  1d 1h 23m
ldom2            bound      ------  5001    2     200M          

primary# ldm add-mem 100M ldom2

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 54m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
ldom2            bound      ------  5001    2     300M       

primary# ldm add-mem --auto-adj 100M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 112M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.4%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.5%  1d 1h 25m
ldom2            bound      ------  5001    2     512M          

primary# ldm rm-mem 100M ldom2
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   3.3%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 25m
ldom2            bound      ------  5001    2     412M          

primary# ldm rm-mem --auto-adj 300M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 144M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
ldom2            bound      ------  5001    2     256M
使用例 68  ドメインのメモリーサイズの設定

この例は、ldm set-memory コマンドを使用してドメインに対するメモリーの追加と削除を行う方法を示しています。

ldm list の出力の「Memory (メモリー)」フィールドに、各ドメインのメモリーが表示されます。

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     27392M   0.5%  1d 22h 55m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 26m
ldom2            bound      ------  5001    2     256M

次の ldm set-mem コマンドは、primary ドメインのサイズを 3400M バイトに設定する操作を試みます。その結果として発生するエラーは、指定された値が 256M バイト単位でないことを示します。同じコマンドに –-auto-adj オプションを追加すると、メモリーの一部を正常に削除し、256M バイトの境界を維持することができます。このコマンドは、ドメインがメモリーを使用しているため、要求されたメモリーのすべてを削除できなかったことを示す警告も発行します。

primary# ldm set-mem 3400M primary
An ldm set-mem 3400M command would remove 23992MB, which is not a multiple
of 256MB. Instead, run ldm rm-mem 23808MB to ensure a 256MB alignment.

primary# ldm set-mem --auto-adj 3400M primary
Adjusting request size to 3.4G.
The primary domain has been allocated 184M more memory
than requested because of memory alignment constraints.
Only 9472M of memory could be removed from the primary domain
because the rest of the memory is in use.

次の ldm set-mem コマンドは、バインドされた状態にある ldom2 ドメインのメモリーサイズを 690M バイトに設定します。同じコマンドに –-auto-adj オプションを追加すると、ldom2 にさらに 78M バイトのメモリーが動的に追加され、256M バイトの境界が維持されます。

primary# ldm set-mem 690M ldom2
primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     17920M   0.5%  1d 22h 56m
ldom1            active     -n----  5000    2     2G       0.6%  1d 1h 27m
ldom2            bound      ------  5001    2     690M          

primary# ldm set-mem --auto-adj 690M ldom2
Adjusting request size to 256M.
The ldom2 domain has been allocated 78M more memory
than requested because of memory alignment constraints.

primary# ldm list
NAME             STATE      FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active     -n-cv-  SP      4     17920M   2.1%  1d 22h 57m
ldom1            active     -n----  5000    2     2G       0.2%  1d 1h 27m
ldom2            bound      ------  5001    2     768M