Go to main content
Oracle® Solaris カーネルゾーンの作成と使用

印刷ビューの終了

更新: 2016 年 11 月
 
 

カーネルゾーンリソースの構成およびカスタマイズ

ゾーン構成リソースにより、ゾーンのシステムリソースを管理できます。ゾーン構成の作成時にリソースを指定します。一部のリソースは、カーネルゾーンでのみ、またはネィティブゾーンでのみサポートされます。

このセクションでは、リソースを構成して、次のコンポーネントのサポートを追加する方法について説明します。

zonecfg コマンドを大域ゾーンで使用して、カーネルゾーンリソースを設定または変更します。


注 -  zonecfg コマンドを使用するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。

ゾーンリソースの詳細については、Oracle Solaris ゾーン構成リソースおよび solaris-kz(5) のマニュアルページを参照してください。

カーネルゾーンの CPU の管理

デフォルトで、カーネルゾーンには作成時に 4 つの仮想 CPU が与えられます。カーネルゾーンの CPU の数を構成する次のいずれかの方法を使用して、仮想 CPU の数を変更できます。

  • dedicated-cpu リソースの追加と変更

  • virtual-cpu リソースの追加と変更

  • anet 待機時間グループからの CPU の追加

virtual-cpu および dedicated-cpu ゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。

dedicated-cpu リソースの追加

パフォーマンスを最適にするために、dedicated-cpu リソースプロパティーを構成することを推奨します。この値を設定すると、カーネルゾーンは選択された CPU 上でのみ実行するように指定されます。カーネルゾーンに専用の CPU で、システム上のほかのプロセスを実行することはできません。

CPU の値は、使用可能なコアまたはプロセッサの観点から割り当てることができます。システムのプロセッサ情報を取得するには、psrinfo -vp を使用します。たとえば、次の psrinfo -vp 出力は、システム global に 4 つの使用可能なコアがあることを示しています。

global# psrinfo -vp
The physical processor has 4 virtual processors (0-3)
  x86 (GenuineIntel 206D7 family 6 model 45 step 7 clock 2400 MHz)
        Intel(r) Xeon(r) CPU E5-2609 0 @ 2.40GHz

注 -  デフォルトで、dedicated-cpu:ncpus を設定しても、システムのどの CPU が割り当てられるかを制御しません。このため、システムがリブートした場合に、不整合な結果となる可能性があります。dedicated-cpu:cpus を使用して、使用する正確な CPU を指定してください。詳細については、Oracle Solaris ゾーン構成リソース の dedicated-cpu リソースを参照してください。

dedicated-cpu ゾーンリソースに関する全般的な情報については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。

使用例 1  カーネルゾーンへの専用 CPU の追加

この例は、専用 CPU をカーネルゾーン kzone1 に追加する方法を示しています。

global# zonecfg -z kzone1
zonecfg:kzone1> info dedicated-cpu
zonecfg:kzone1> add dedicated-cpu
zonecfg:kzone1:dedicated-cpu> set ncpus=8
zonecfg:kzone1:dedicated-cpu> end
zonecfg:kzone1> info dedicated-cpu
      ncpus: 8
zonecfg:kzone1> exit

virtual-cpu リソースの追加

virtual-cpu リソースは、カーネルゾーンで可視になる仮想 CPU の数を指定します。ホスト上では、仮想 CPU は CPU 時間をほかのゾーンと共有します。virtual-cpu リソースを設定することは、統合に役立ちますが、システムのパフォーマンスに影響する可能性があります。

dedicated-cpu リソースをすでに定義している場合、構成されている仮想 CPU のデフォルトの数は、dedicated-cpu リソース内の ncpus 範囲の下限値と一致します。両方のリソースが存在する場合は、整合性が相互チェックされます。詳細は、zonecfg(1M) のマニュアルページを参照してください。

使用例 2  カーネルゾーンへの仮想 CPU の追加

この例は、virtual-cpu リソースを使用してカーネルゾーン kzone1 に追加の仮想 CPU を追加する方法を示しています。

global# zonecfg -z kzone1
zonecfg:kzone1> info virtual-cpu
zonecfg:kzone1> add virtual-cpu
zonecfg:kzone1:virtual-cpu> set ncpus=8
zonecfg:kzone1:virtual-cpu> end
zonecfg:kzone1> info virtual-cpu
virtual-cpu:
        ncpus: 8
zonecfg:kzone1> exit

待機時間グループからの CPU の追加

待機時間グループから CPU を指定できます。待機時間グループから CPU を指定すると、待機時間のグループがベースとなるネットワークデバイスと同じ場合に、ネットワークパフォーマンスを向上させることができます。

待機時間グループの操作の詳細については、Oracle Solaris 11.3 での仮想ネットワークとネットワークリソースの管理 の 第 2 章, 仮想ネットワークの作成および管理を参照してください。

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

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

カーネルゾーンに割り当てられる物理メモリーは、ゾーンのブート時にその全体に割り当てられます。 割り当てられるメモリーは、カーネルゾーンの排他的使用のためです。カーネルゾーンがブートしたら、capped-memory リソースに指定されたすべてのメモリーがホストオペレーティングシステムに使用されているように見えます。

デフォルトのカーネルゾーンのメモリーサイズ (capped-memory:physical) は 4G バイト (GB) です。より大きいワークロードを管理するには、メモリーサイズを増やすことをお勧めします。

カーネルゾーンのデフォルトの CPU およびメモリー構成は、アプリケーションの実行を容易にするために、4 つの VCPU と 4G バイトのメモリーです。追加のカーネルゾーンテンプレート SYSsolaris-kz-minimal は 1 VCPU と 2G バイトのメモリーのサポートされている最小のカーネルゾーンの構成を提供します。

x86 ベースシステムでは、2M バイト (MB) の増分で capped-memory リソースを設定する必要があります。

SPARC ベースシステムでは、256M バイト (MB) の増分で capped-memory リソースを設定する必要があります。

ゾーンは、ゾーンのブート時に capped-memory リソースを割り当てます。この量は、ゾーンの実行中は固定されたままになります。

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


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

capped-memory ゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。

capped-memory ゾーンリソースの設定の詳細は、Oracle Solaris ゾーン構成リソース の solaris-kz ゾーンと capped-memory リソースを参照してください。

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

global# zoneadm -z kzone1 install -x install-size=32G

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

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

この例では、SPARC ベースシステムに、capped-memory リソースの physical プロパティーを設定して、2048M バイトのメモリーを指定する方法を示します。

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

この例では、x86 システムに、capped-memory リソースの physicalプロパティーを設定して、16G バイトのメモリーを指定する方法を示します。

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

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

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

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

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

physical プロパティーを、サポートされている最大ページサイズの倍数になる量に設定する必要があります。割り当てられているメモリーの量が要求されているページサイズと完全に一致する必要があります。次の例を参照してください。

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

SPARC T5 システムでは、さまざまなページサイズがサポートされていることが次の出力でわかります。最大ページサイズは 2147483648 バイト (2G バイト) です。

2147483648 ページサイズを使用するには、pagesize-policy=largest-available の設定時に最大ページサイズを使用できるように、capped-memory:physical プロパティーを 2G バイトの倍数値である 8G バイトに設定します。

global# pagesize -a
8192
65536
4194304
268435456
2147483648
global# 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
zonecfg:kzone1> exit

カーネルゾーンの pagesize-policy プロパティーがクリアされているか、設定されていない場合、カーネルゾーンではそれが実行されている特定のハードウェアプラットフォームでブートするために必要な許容最小ページサイズを使用します。

Oracle Solaris 11.3 のアップデートで作成されたカーネルゾーンを、pagesize-policy プロパティーをサポートしていない古い Oracle Solaris リリース (Oracle Solaris 11.3 の初期リリースなど) に移行する場合は、pagesize-policy をクリアする必要があります。次の例を参照してください。

使用例 6   以前のバージョンの Oracle Solaris への移行前に pagesize-policy プロパティーをクリアする

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

global# zonecfg -z kzone1
zonecfg:kzone1> select capped-memory
zonecfg:kzone1:capped-memory> clear pagesize-policy
zonecfg:kzone1:capped-memory> end
zonecfg:kzone1> commit

最初に、移行の試験実行を行い、zoneadm migrate -n オプションを使用して pagesize-policy をクリアする必要があるかどうかを確認できます。詳細は、 zoneadm (8) のマニュアルページまたはOracle Solaris カーネルゾーンの移行を参照してください。

まれに、最大ページサイズを使用していなければ、ブートを回避するために pagesize-policy=largest-only を設定することが必要な場合もあります。これは、パフォーマンスが最大ページサイズの使用に左右されるデータベースまたはほかのアプリケーションをホストするカーネルゾーンに役立つことがあります。

physical および pagesize-policy プロパティーの設定方法の詳細は、Oracle Solaris ゾーン構成リソース の solaris-kz ゾーンと capped-memory リソースを参照してください。

カーネルゾーンのストレージデバイスとブート順序の管理

カーネルゾーンのルートは常にアクセス可能です。デフォルトでは、カーネルゾーンのインストールは、ルートディスクに 16G バイトの ZFS ボリュームを使用します。–x install-size オプションを付けて zoneadm -z install コマンドを使用して、ゾーンのインストール時に異なるサイズを指定できます。たとえば、カーネルゾーン kzone1 の ZFS のサイズを 32G バイトに増やすには、次のようにします。

global# zoneadm -z kzone1 install -x install-size=32g

add device リソースを使用すると、追加のストレージデバイスをカーネルゾーンに追加できます。デバイスは、システム間で移植可能で、ZFS ボリュームのパフォーマンスを向上させます。追加のカーネルゾーンのストレージデバイスには、次の要件があります。

  • ストレージデバイスのフルパス (/dev/rdsk/c9t0d0 など) を指定する必要があります。

  • ストレージデバイスは次のいずれか 1 つで定義する必要があります。

    • add device match リソースプロパティー。add device match リソースプロパティーにストレージデバイスを指定する場合は、/dev/rdsk/dev/zvol/rdsk、または /dev/did/rdsk に存在するデバイスを指定する必要があります。

    • 有効なストレージ URI。

  • ストレージデバイスはディスク全体か LUN である必要があります。

ストレージデバイスごとのブート順序を指定するには、bootpri リソースプロパティーを使用します。bootpri リソースプロパティーは正の整数値に設定する必要があります。


Caution

注意  -  デバイスをブートデバイスとして使用する場合のみ、bootpri リソースプロパティーを設定する必要があります。bootpri リソースプロパティーをブートデバイス以外のデバイスに設定すると、データが破損する可能性があります。


bootpri リソースプロパティーの設定を解除するには、clear bootpri リソースプロパティーを使用します。

ブート可能な複数のデバイスがインストール中に存在する場合、これらのデバイスはゾーン内のミラー化 ZFS プールで使用されます。

デバイスごとのデフォルトのブート順は、最初に bootpri でデバイスをソートし、複数のデバイスが同じ bootpri を持つ場合は、次に id でソートして決定されます。

使用例 7  カーネルゾーンへのストレージデバイスの追加

この例は、ストレージデバイス /dev/rdsk/c9t0d0 をカーネルゾーン kzone1 に追加する方法を示しています。

global# zonecfg -z kzone1
zonecfg:kzone1> add device
zonecfg:kzone1:device> set match=/dev/rdsk/c9t0d0
zonecfg:kzone1:device> set bootpri=4
zonecfg:kzone1:device> end
使用例 8  ストレージ URI を使用するためのカーネルゾーンのデフォルトのブートデバイスの変更:

この例は、iscsi://zfssa/luname.naa.600144F0DBF8AF19000052E820D60003 にあるストレージ URI を使用するように、カーネルゾーン kzone1 でデフォルトのブートデバイスを変更する方法を示しています。

global# zonecfg -z kzone1
zonecfg:kzone1> select device id=0
zonecfg:kzone1:device> set storage=iscsi://zfssa/luname.naa.600144F0DBF8AF19000053482CC00029
zonecfg:kzone1:device> end
zonecfg:kzone1> info device
device:
       match not specified
       storage: iscsi://zfssa/luname.naa.600144F0DBF8AF19000052E820D60003
       id: 0
       bootpri: 0

カーネルゾーンのネットワークデバイスと構成の管理

カーネルゾーンは、net または anet リソースの追加によってカーネルゾーンでのネットワークアクセスを提供します。これらの 2 つのリソースタイプの詳細は、Oracle Solaris ゾーン構成リソース の 構成可能なリソースとプロパティーおよびOracle Solaris ゾーン構成リソースを参照してください。


注 -  カーネルゾーンでは anet リソースを使用することをお勧めします。

排他的 IP ゾーンをカーネルゾーンに使用する必要があります。排他的 IP ゾーンの詳細は、Oracle Solaris ゾーンの作成と使用 の 排他的 IP ゾーンのネットワークアドレスを参照してください。

追加の MAC アドレスを指定すると、入れ子にされたゾーン、またはカーネルゾーンが非大域 solaris および solaris10 ブランドゾーンをホストするゾーンをサポートできます。入れ子にされたゾーンの詳細は、入れ子にされたゾーンの管理を参照してください。

オプションでネットワークデバイス ID を指定して、ゾーン内から VNIC アドレスを識別して、ネットワークインタフェースがカーネルゾーンに表示される順序を決定できます。このプロセスは、ある物理スロットから別の物理スロットへの NIC の移動に似ています。

ネットワークゾーンリソースの設定方法については、Oracle Solaris ゾーンの作成と使用 の 第 1 章, 非大域ゾーンの計画および構成方法を参照してください。

使用例 9  カーネルゾーンへのネットワークリソースの追加

この例は、ネットワークリソースをカーネルゾーン kzone1 に追加する方法を示しています。ID が 3 に設定され、新しい anet インタフェースがカーネルゾーンに表示される順序が決定されます。

global# zonecfg -z kzone1
zonecfg:kzone1> add anet
zonecfg:kzone1:anet> set id=3
zonecfg:kzone1:anet> end
zonecfg:kzone1> exit
使用例 10  カーネルゾーンからのネットワークデバイスの削除

この例は、カーネルゾーン kzone1 からネットワークデバイスを削除する方法を示しています。既存の anet リソースに関する情報が一覧表示され、値が 1 の anet デバイスが削除されます。

global# zonecfg -z kzone1 info anet
anet:
        lower-link: auto
        allowed-address not specified
        allowed-dhcp-cids not specified
        link-protection: mac-nospoof
        mac-address: random
        mac-prefix not specified
        mac-slot not specified
        vlan-id not specified
        priority not specified
        rxrings not specified
        txrings not specified
        mtu not specified
        maxbw not specified
        rxfanout not specified
        vsi-typeid not specified
        vsi-vers not specified
        vsi-mgrid not specified
        etsbw-lcl not specified
        cos not specified
        id: 0
anet:
        lower-link: auto
        allowed-address not specified
        allowed-dhcp-cids not specified
        link-protection: mac-nospoof
        mac-address: default
        mac-prefix not specified
        mac-slot not specified
        vlan-id not specified
        priority not specified
        rxrings not specified
        txrings not specified
        mtu not specified
        maxbw not specified
        rxfanout not specified
        vsi-typeid not specified
        vsi-vers not specified
        vsi-mgrid not specified
        etsbw-lcl not specified
        cos not specified
        id: 1
global# zonecfg -z kzone1 remove anet id=1