Go to main content

Oracle® Solaris カーネルゾーンの作成と使用

印刷ビューの終了

更新: 2018 年 8 月
 
 

カーネルゾーンのメモリーの管理

一定量の物理 RAM をカーネルゾーンの仮想プラットフォームに割り当てる必要があります。この量を定義するには、カーネルゾーンの capped-memory リソースタイプの physical プロパティーを設定します。

カーネルゾーンに割り当てられる物理メモリーは、ゾーンのブート時にその全体に割り当てられます。割り当てられるメモリーは、カーネルゾーンの排他的使用のためです。カーネルゾーンのブートが完了すると、capped-memory リソースに指定されたメモリーがすべて、ホストのオペレーティングシステムやほかのゾーンから利用できなくなります。

    カーネルゾーンの CPU とメモリーのデフォルト構成は 4 つの VCPU と 4G バイトのメモリーになっていますが、これは、カーネルゾーン内でアプリケーションを実行できるようにするためです。より大きなワークロードを管理するには、カーネルゾーンのメモリーサイズ (capped-memory:physical) を増やしてください。

  • SPARC ベースシステムでは 256M バイトの増分でリソースを設定します。

  • x86 ベースシステムでは 2M バイトの増分でリソースを設定します。

capped-memory:pagesize-policy プロパティーは、カーネルゾーンの物理メモリーのページサイズを割り当てるためのポリシーを指定します。デフォルトでは、カーネルゾーンは最適なパフォーマンスを実現するために使用可能な最大のページサイズを使用します。詳細は、メモリーのページサイズポリシーと物理メモリーについてを参照してください。

追加のカーネルゾーンテンプレート SYSsolaris-kz-minimal は、サポートされている最小のカーネルゾーン構成である 1 つの VCPU と 2G バイトのメモリーを提供します。


注 -  Fujitsu SPARC M12 サーバー、Fujitsu M10 サーバー、または SPARC M10 サーバーでは、SYSsolaris-kz-minimal テンプレートで作成されたカーネルゾーンはメモリー不足のためブートできない可能性があります。カーネルゾーンをブートできない場合は、capped-memory リソースの physical プロパティーを使用して、カーネルゾーンに割り当てられるメモリーを増やしてください。

capped-memory ゾーンリソースタイプの設定の詳細については、Oracle Solaris Zones Configuration Resources の Capped Memory Guidelines for a solaris-kz Zoneを参照してください。

インストール前にカーネルゾーンのメモリーサイズを増やした場合、スワップデバイスとダンプデバイスも大きくなるため、カーネルゾーンのルートディスクサイズも増やす必要があります。カーネルゾーンにディスクを明示的に追加しない場合は、zvol が作成され、ルートディスクとして使用されます。デフォルトで、zvol のサイズは 16G バイトです。異なるルートディスクサイズを指定するには、zoneadm install –x install-size コマンドを使用します。たとえば、カーネルゾーン kzone1 に 32G バイトのルートディスクサイズを指定するには、インストール時に次のコマンドを使用します。

global$ pfbash zoneadm -z kzone1 install -x install-size=32G

zoneadm コマンドを使用してディスクサイズを変更する方法については、zoneadm(8) のマニュアルページを参照してください。

使用例 6  SPARC ベースシステムでの capped-memory リソースの設定

この例では、SPARC ベースシステム上のカーネルゾーンで 2048M バイトのメモリーを指定する方法を示しています。

global$ pfbash zonecfg -z kzone1
zonecfg:kzone1> select capped-memory
zonecfg:kzone1:capped-memory> set physical=2048m
zonecfg:kzone1:capped-memory> end ; exit
使用例 7  x86 ベースシステムでの capped-memory リソースの設定

この例では、x86 ベースシステム上のカーネルゾーンで 16G バイトのメモリーを指定する方法を示しています。

global$ pfbash zonecfg -z kzone1
zonecfg:kzone1> select capped-memory
zonecfg:kzone1:capped-memory> set physical=16g
zonecfg:kzone1:capped-memory> end ; exit

メモリーのページサイズポリシーと物理メモリーについて

capped-memory リソースの pagesize-policy プロパティーは、システムでカーネルゾーンのページサイズを選択する方法を制御します。

デフォルトのカーネルゾーンテンプレート SYSsolaris-kz では、pagesize-policy プロパティーを、最適なパフォーマンスを得るための推奨値である largest-available に設定します。この設定により、システムはカーネルゾーンの物理メモリー量に合わせて使用する適切なページサイズを選択できます。物理メモリーサイズはページサイズの倍数である必要があるため、システムではカーネルゾーン用に指定された物理メモリー量に合致する最大ページサイズを選択します。pagesize-policy=largest-available を使用したブートは常に成功します。

最適なパフォーマンスを得るには、pagesize-policy=largest-available の設定時に最大ページサイズの選択が可能になるように、適切な量の物理メモリーを設定します。

カーネルゾーンの pagesize-policy プロパティーがクリアされているか、設定されていない場合、カーネルゾーンではそれが実行されている特定のハードウェアプラットフォームでブートするために必要な許容最小ページサイズを使用します。このページサイズは適切でない可能性があります。使用例 8, 最大ページサイズが使用されるように物理メモリーを設定するで示すように、サポートされる最大のページサイズの整数倍となる量に、physical プロパティーを設定する必要があります。

    割り当てるメモリーの量は、必要なページサイズと完全に整合性が取れている必要があります。したがって、次のいずれかの条件に該当する場合は pagesize-policy をクリアする必要があります。

  • ターゲットシステムのページサイズがソースシステムより小さい場合。

  • ソースのカーネルゾーンが Oracle Solaris 11.4 の更新版で作成されたものであり、ターゲットが Oracle Solaris 11.3 の初回リリースなど、pagesize-policy プロパティーをサポートしない Oracle Solaris リリースである場合。

    使用例 9, 以前の Oracle Solaris リリースにカーネルゾーンを移行する前に pagesize-policy プロパティーをクリアするを参照してください。

使用例 8  最大ページサイズが使用されるように物理メモリーを設定する

次の出力からわかるように、SPARC T5 ではさまざまなページサイズがサポートされています。最大のものは 2147483648 バイト、つまり 2G バイトです。

2G バイトのページサイズを増分として使用し、capped-memory:physical プロパティーが 8G バイトに設定されています。pagesize-policylargest-available に設定されている場合、この値を指定すると、システムは最大のページサイズを使用できます。

global$ pfbash pagesize -a
8192
65536
4194304
268435456
2147483648
global$ pfbash zonecfg -z kzone1
zonecfg:kzone1> select capped-memory
zonecfg:kzone1:capped-memory> set physical=8G
zonecfg:kzone1:capped-memory> info
capped-memory:
    physical: 8G
    pagesize-policy: largest-available
zonecfg:kzone1:capped-memory> end ; exit
global$ reboot
使用例 9  以前の Oracle Solaris リリースにカーネルゾーンを移行する前に pagesize-policy プロパティーをクリアする

この例では、pagesize-policy プロパティーをクリアすることで、このプロパティーをサポートしていない Oracle Solaris リリースにカーネルゾーンを移行する準備を整える方法を示します。

global$ pfbash -z kzone1
zonecfg:kzone1> select capped-memory
zonecfg:kzone1:capped-memory> clear pagesize-policy
zonecfg:kzone1:capped-memory> end
zonecfg:kzone1> commit
global$ reboot

zoneadm migrate -n コマンドを使って移行の試験実行を行うと、pagesize-policy をクリアする必要があるかどうかがわかります。詳細は、zoneadm migrate コマンドについてを参照してください。


ヒント  -  パフォーマンスが最大ページサイズの使用に依存するデータベースのようなアプリケーションをカーネルゾーンがホストする場合、最大ページサイズが使用されないかぎりブートが実行されないように、pagesize-policy=largest-only を設定することをお勧めします。

physical および pagesize-policy プロパティーの設定の詳細については、Oracle Solaris Zones Configuration Resources の Capped Memory Guidelines for a solaris-kz Zoneを参照してください。