Go to main content

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

印刷ビューの終了

更新: 2018 年 8 月
 
 

zonecfg ユーティリティーを使用してゾーンを構成する方法

この手順では、いくつかのグローバルプロパティーおよびリソースタイプを設定し、新しい非大域ゾーンを構成する方法を示します。


注 -  代わりにゾーン構成ファイルを作成し、zlogin コマンドを使用してゾーンの初回ブート時にゾーン構成を作成する場合は、構成プロファイルを使用してゾーンを構成する方法に進みます。

非大域ゾーンの作成時に指定する必要のあるパラメータは、ゾーン名のみです。zonepath パラメータは割り当てられます。そのほかのリソースおよびプロパティーはオプションです。オプションのリソースには、dedicated-cpu リソースと capped-cpu リソースのどちらを使用するかを決めるなど、選択肢の中から選ぶ必要があるものもあります。


ヒント  -  zonecfg コマンドは、複数のサブコマンドもサポートします。次に示すように、同じシェル呼び出しで引用符で囲み、セミコロンで区切ります。例:
global$ pfbash zonecfg -z kzone1 "create ; set autoboot=true"
共有 IP ゾーンの場合、zonecfg net リソースで静的アドレスを割り当てできるだけです。このアドレスは、コマンド行で指定することはできません。

始める前に

ゾーンのどのグローバルプロパティーおよびリソースを構成するかを特定し、それらの値を決定します。ゾーンで構成できるグローバルプロパティーおよびリソースタイプについては、Oracle Solaris Zones Configuration Resources の Zone Configuration Dataおよび zonecfg(8) のマニュアルページを参照してください。

  1. ゾーン管理者になります。

    詳細については、root 以外のユーザーへのゾーンを管理する権利の割り当てを参照してください。

  2. 選択したゾーン名を使用して、ゾーン構成を開始します。
    global$ pfbash zonecfg -z zonename

    このゾーンの初回構成時には、次のシステムメッセージが表示されます。

    zonename: No such zone configured
    Use 'create' to begin configuring a new zone.
  3. 新しいゾーン構成を作成します。

    このステップでは、デフォルト設定を使用します。

    zonecfg:zonename> create
    create: Using system default template 'SYSdefault'
    zonecfg:zonename> info
        zonename: zonename
        zonepath.template: /system/zones/%{zonename}
        zonepath: /system/zones/zonename
  4. (オプション) autoboot 値を設定します。

    true に設定すると、大域ゾーンのブート時にこのゾーンが自動的にブートします。デフォルト値は false です。


    注 -  ゾーンを自動的にブートできるためには、svc:/system/zones:default サービスが有効になっている必要があります。このサービスは、デフォルトで有効になっています。
    zonecfg:zonename> set autoboot=true
  5. (オプション) ゾーンの永続的なブート引数を設定します。
    zonecfg:zonename> set bootargs="-m verbose"
  6. (オプション) 1 つ以上の CPU をこのゾーン専用に割り当てます。

    CPU の数または数の範囲を設定し、必要に応じて重要性も設定します。

    zonecfg:zonename> add dedicated-cpu
    zonecfg:zonename:dedicated-cpu> set ncpus=N
    zonecfg:zonename:dedicated-cpu> set importance=N
    zonecfg:zonename:dedicated-cpu> end
  7. (オプション) 権限のデフォルトセットを修正します。

    設定する特権をコンマ区切りリストで指定します。この設定は、システムクロックを設定する機能をデフォルトの特権セットに追加します。

    zonecfg:zonename> set limitpriv="privileges-list"
  8. (オプション) スケジューリングクラスを FSS に設定します。
    zonecfg:zonename> set scheduling-class=FSS
  9. (オプション) メモリー上限を追加します。

    このステップでは、メモリーの上限、スワップメモリーの上限、およびロックされたメモリーの上限の値を設定します。


    注 -  capped-memory リソースを使用するには、resource-cap パッケージが大域ゾーン内にインストールされている必要があります。
    zonecfg:zonename> add capped-memory
    zonecfg:zonename:capped-memory> set physical=value
    zonecfg:zonename:capped-memory> set swap=value
    zonecfg:zonename:capped-memory> set locked=value
    zonecfg:zonename:capped-memory> end
  10. (オプション) ファイルシステムを追加します。

    このステップでは、マウントポイント、ゾーンのマウントポイント、およびファイルシステムタイプを設定します。

    zonecfg:zonename> add fs
    zonecfg:zonename:fs> set dir=mountpoint
    zonecfg:zonename:fs> set special=zone-mountpoint
    zonecfg:zonename:fs> set type=fs-type
    zonecfg:zonename:fs> end

    複数のファイルシステムを追加するには、このステップを繰り返します。

  11. (オプション) hostid グローバルプロパティーを設定します。
    zonecfg:zonename set hostid=ID
  12. (オプション) ゾーンで使用するストレージプールに ZFS データセットを追加します。

    dataset リソースには、ZFS ファイルシステムのパスを指定する必要があります。ゾーン管理者は、子ファイルシステムとその子孫のクローンを作成できます。ゾーン管理者は、データセットのプロパティーを変更したり、圧縮や暗号化を制御したりできます。

    zonecfg:zonename> add dataset
    zonecfg:zonename> set name=storage-pool/dataset
    zonecfg:zonename> end
  13. (オプション) 自動 VNIC を持つ排他的 IP ゾーンを作成します。

    作成されるリンクの基礎となるリンクとして auto を指定します。zoneadmd デーモンは、ゾーンがブートするたびに VNIC が作成されるリンクを自動的に選択します。データリンクを選択するときは、IPoIB リンクはスキップされます。

    zonecfg:zonename> set ip-type=exclusive
    zonecfg:zonename> add anet
    zonecfg:zonename:anet> set lower-link=auto
    zonecfg:zonename:anet> end
  14. (オプション) デバイスを追加します。
    zonecfg:zonename> add device
    zonecfg:zonename:device> set match=/dev/sound/*
    zonecfg:zonename:device> end

    複数のデバイスを追加するには、このステップを繰り返します。

  15. (オプション) InfiniBand (IB) 診断ツール以外の OFUV (Open Fabrics User Verbs) のコンポーネントに対する OFUV デバイスを追加します。

    注 -  IB 診断ツールは、非大域ゾーンではサポートされていません。追加されたデバイスは、OFUV のコンポーネント (「Verb」や rdma_cm など) とともに使用できます。
    zonecfg:zonename> add device
    zonecfg:zonename:device> set match=infiniband/ofs/*
    zonecfg:zonename:device> end

    複数のデバイスを追加するには、このステップを繰り返します。

  16. (オプション) IB 診断ツール以外の OFUV のコンポーネントに対する OFUV デバイスを追加します。

    複数のデバイスを追加するには、このステップを繰り返します。


    注 -  IB 診断ツールは、非大域ゾーンではサポートされていません。追加されたデバイスは、OFUV のコンポーネント (rdma_cm など) とともに使用できます。
    zonecfg:zonename> add device
    zonecfg:zonename:device> set match=infiniband/hca/*
    zonecfg:zonename:device> end
  17. (オプション) format コマンドによるディスクのラベル付けを可能にするには、ディスクまたは LUN 全体をゾーンに委任し、allow-partition プロパティーを設定します。
    zonecfg:zonename> add device
    zonecfg:zonename:device> set match=/dev/*dsk/cNtXdY*
    zonecfg:zonename:device> set allow-partition=true
    zonecfg:zonename:device> end

    複数のデバイスを追加するには、このステップを繰り返します。

  18. (オプション) ディスクに対して uscsi 操作を可能にするには、allow-raw-io プロパティーを設定します。

    Caution

    注意  -  ゾーンでディスクに対する uscsi 操作の実行を可能にすると、ゾーンはディスクと同じバスに接続されている、すべての他のデバイスにもアクセスできます。したがって、この機能を有効にするとセキュリティーリスクが生じ、同じバス上のリソースを使用する大域ゾーンまたはほかのゾーンに対する攻撃が可能になります。詳細は、uscsi(4I)を参照してください。


    zonecfg:zonename> add device
    zonecfg:zonename:device> set match=/dev/*dsk/cNtXdY*
    zonecfg:zonename:device> set allow-raw-io=true
    zonecfg:zonename:device> end

    複数のデバイスを追加するには、このステップを繰り返します。

  19. (オプション) グローバルプロパティー名を使用して、ゾーン規模のリソース制御を追加します。
    zonecfg:zonename> set property=value

    複数のリソース制御を追加するには、このステップを繰り返します。

  20. (オプション) コメントを追加します。
    zonecfg:zonename> add attr
    zonecfg:zonename:attr> set name=comment
    zonecfg:zonename:attr> set type=string
    zonecfg:zonename:attr> set value="comment"
    zonecfg:zonename:attr> end
  21. ゾーン構成を確認します。
    zonecfg:zonename> verify
  22. 変更を確定して終了します。
    zonecfg:zonename> commit
    zonecfg:zonename> exit

    確定された変更は、ゾーンの次回ブート時に有効になります。

    プロンプトで commit コマンドを明示的に入力しなくても、exit を入力するか EOF が発生すると、commit の実行が自動的に試みられます。

使用例 6  zonecfg ユーティリティーを使用して新しいゾーンを構成する

この例では、システムのデフォルトテンプレート SYSdefault を使用して、my-zone という名前の新しいゾーンを構成します。

global$ pfbash zonecfg -z my-zone
my-zone: No such zone configured
Use 'create' to begin configuring a new zone.
zonecfg:my-zone> create
create: Using system default template 'SYSdefault'
zonecfg:my-zone> info
    zonename: my-zone>
    zonepath.template: /system/zones/%{zonename}
    zonepath: /system/zones/my-zone
zonecfg:my-zone> set autoboot=true
zonecfg:my-zone> set bootargs="-m verbose"
zonecfg:my-zone> add dedicated-cpu
zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
zonecfg:my-zone:dedicated-cpu> set importance=10
zonecfg:my-zone:dedicated-cpu> end
zonecfg:my-zone> set limitpriv="default,sys_time"
zonecfg:my-zone> set scheduling-class=FSS
zonecfg:my-zone> add capped-memory
zonecfg:my-zone:capped-memory> set physical=1g
zonecfg:my-zone:capped-memory> set swap=2g
zonecfg:my-zone:capped-memory> set locked=500m
zonecfg:my-zone:capped-memory> end
zonecfg:my-zone> add fs
zonecfg:my-zone:fs> set dir=/usr/local
zonecfg:my-zone:fs> set special=/opt/local
zonecfg:my-zone:fs> set type=lofs
zonecfg:my-zone:fs> end
zonecfg:my-zone> set hostid=80f0c086
zonecfg:my-zone> add dataset
zonecfg:my-zone> set name=tank/sales
zonecfg:my-zone> end
zonecfg:my-zone> set ip-type=exclusive
zonecfg:my-zone> add anet
zonecfg:my-zone:anet> set lower-link=auto
zonecfg:my-zone:anet> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/sound/*
zonecfg:my-zone:device> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=infiniband/ofs/*
zonecfg:my-zone:device> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=infiniband/hca/*
zonecfg:my-zone:device> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
zonecfg:my-zone:device> set allow-partition=true
zonecfg:my-zone:device> end
zonecfg:my-zone> add device
zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
zonecfg:my-zone:device> set allow-raw-io=true
zonecfg:my-zone:device> end
zonecfg:my-zone> set max-sem-ids=10485200
zonecfg:my-zone> add attr
zonecfg:my-zone:attr> set name=comment
zonecfg:my-zone:attr> set type=string
zonecfg:my-zone:attr> set value="This is my work zone."
zonecfg:my-zone:attr> end
zonecfg:my-zone> verify
zonecfg:my-zone> commit
zonecfg:my-zone> exit

次のステップ

ゾーン構成を検証するために、次の手順に進みます。

ゾーン構成に問題がなければ、ゾーンをインストールします。ゾーンのインストールとブートに進みます。