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

印刷ビューの終了

更新: 2015 年 5 月
 
 

ゾーンの構成方法

非大域ゾーンの作成に必須の要素は、rootzpool リソースを伴うゾーンの場合、zonename および zonepath プロパティーだけです。そのほかのリソースおよびプロパティーはオプションです。オプションのリソースには、dedicated-cpu リソースと capped-cpu リソースのどちらを使用するかを決めるなど、選択肢の中から選ぶ必要があるものもあります。使用可能な zonecfg プロパティーおよびリソースの詳細は、Oracle Solaris ゾーンの紹介 のゾーン構成データを参照してください。

この手順を実行するには、大域管理者または大域ゾーン内で適切な承認を持つユーザーである必要があります。

  1. 管理者になります。

    詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  2. 選択したゾーン名を使用して、ゾーン構成を設定します。

    この手順例では、my-zone という名前を使用します。

    global# zonecfg -z my-zone

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

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

    この手順では、デフォルト設定を使用します。

    zonecfg:my-zone> create
    create: Using system default template 'SYSdefault'
  4. この手順でゾーンのパス /zones/my-zone を設定します。
    zonecfg:my-zone> set zonepath=/zones/my-zone

    ゾーンは、ZFS データセット上に存在する必要があります。ZFS データセットは、ゾーンのインストール時または接続時に自動的に作成されます。ZFS データセットを作成できない場合、ゾーンのインストールや接続は行われません。ゾーンのパスの親ディレクトリが存在する場合、その親ディレクトリはマウントされるデータセットのマウントポイントである必要があります。

    zonepath 内で、明示的にゾーンの名前を使用する代わりに、トークン %{zonename} が使用されている場合、統合アーカイブおよびゾーンツールによって、ゾーンのクローン作成時に、既存のゾーン名が新しいゾーン名で置き換えられます。

    zonecfg:my-zone> set zonepath=/zones/%{zonename}

    Oracle Solaris ゾーンの紹介 のzonecfg template プロパティーを参照してください。

  5. autoboot 値を設定します。

    true に設定すると、大域ゾーンのブート時にこのゾーンが自動的にブートします。デフォルト値は false です。ゾーンを自動的にブートするには、ゾーンサービス svc:/system/zones:default も有効になっている必要があることに注意してください。このサービスは、デフォルトで有効になっています。

    zonecfg:my-zone> set autoboot=true
  6. ゾーンの持続的なブート引数を設定します。
    zonecfg:my-zone> set bootargs="-m verbose"
  7. 1 つの CPU をこのゾーン専用に割り当てます。
    zonecfg:my-zone> add dedicated-cpu
    1. CPU の数を設定します。
      zonecfg:my-zone:dedicated-cpu> set ncpus=1-2
    2. (オプション) 重要性を設定します。
      zonecfg:my-zone:dedicated-cpu> set importance=10

      デフォルト値は 1 です。

    3. 指定を終了します。
      zonecfg:my-zone:dedicated-cpu> end
  8. 権限のデフォルトセットを修正します。
    zonecfg:my-zone> set limitpriv="default,sys_time"

    この行は、システムクロックを設定する機能をデフォルトの特権セットに追加します。

  9. スケジューリングクラスを FSS に設定します。
    zonecfg:my-zone> set scheduling-class=FSS
  10. メモリー上限を追加します。
    zonecfg:my-zone> add capped-memory
    1. メモリー上限を設定します。
      zonecfg:my-zone:capped-memory> set physical=1g
    2. スワップメモリーの上限を設定します。
      zonecfg:my-zone:capped-memory> set swap=2g
    3. ロックされたメモリーの上限を設定します。
      zonecfg:my-zone:capped-memory> set locked=500m
    4. メモリー上限の指定を終了します。
      zonecfg:my-zone:capped-memory> end

    注 -  capped-memory リソースを使用するには、resource-cap パッケージが大域ゾーン内にインストールされている必要があります。
  11. ファイルシステムを追加します。
    zonecfg:my-zone> add fs
    1. ファイルシステムのマウントポイント (この手順では /usr/local) を設定します。
      zonecfg:my-zone:fs> set dir=/usr/local
    2. 大域ゾーン内の /opt/local を、構成中のゾーン内で /usr/local としてマウントすることを指定します。
      zonecfg:my-zone:fs> set special=/opt/local

      非大域ゾーン内では、/usr/local ファイルシステムは読み取りおよび書き込みが可能です。

    3. ファイルシステムのタイプ (この手順では lofs) を指定します。
      zonecfg:my-zone:fs> set type=lofs

      このタイプは、カーネルとそのファイルシステムとの相互動作の方法を示します。

    4. ファイルシステムの指定を終了します。
      zonecfg:my-zone:fs> end

    この手順を複数回実行することで、複数のファイルシステムを追加できます。

  12. 必要に応じて hostid を設定します。
    zonecfg:my-zone> set hostid=80f0c086
  13. ストレージプール tanksales という ZFS データセットを追加します。
    zonecfg:my-zone> add dataset
    1. ZFS データセット sales のパスを指定します。
      zonecfg:my-zone> set name=tank/sales
    2. データセットの指定を終了します。
      zonecfg:my-zone> end

    ゾーン管理者は、データセット内のスナップショット、ファイルシステム、ボリュームを作成および破棄できます。ゾーン管理者は、データセットのプロパティーを変更したり、圧縮や暗号化を制御したりできます。

  14. 自動 VNIC を持つ排他的 IP ゾーンを作成します。
    zonecfg:my-zone> set ip-type=exclusive
    zonecfg:my-zone> add anet
    1. 作成されるリンクの基礎となるリンクとして auto を指定します。
      zonecfg:my-zone:anet> set lower-link=auto

      zoneadmd デーモンは、ゾーンがブートするごとに VNIC を作成するリンクを自動的に選択します。データリンクを選択するときは、IPoIB リンクはスキップされます。

    2. 指定を終了します。
      zonecfg:my-zone:anet> end
  15. デバイスを追加します。
    zonecfg:my-zone> add device
    1. デバイスの一致 (この手順では /dev/sound/*) を設定します。
      zonecfg:my-zone:device> set match=/dev/sound/*
    2. デバイスの指定を終了します。
      zonecfg:my-zone:device> end

    この手順を複数回実行することで、複数のデバイスを追加できます。

  16. IB 診断ツール以外の OFUV (Open Fabrics User Verbs) のコンポーネントに対する OFUV デバイスを追加します。
    zonecfg:my-zone> add device
    1. デバイスの一致 (この手順では infiniband/ofs/*) を設定します。
      zonecfg:my-zone:device> set match=infiniband/ofs/*
    2. デバイスの指定を終了します。
      zonecfg:my-zone:device> end

    IB 診断ツールは、非大域ゾーンではサポートされていません。追加されたデバイスは、OFUV のコンポーネント (Verb や rdma_cm など) とともに使用できます。

    この手順を複数回実行することで、複数のデバイスを追加できます。

  17. IB 診断ツール以外の OFUV のコンポーネントに対する OFUV デバイスを追加します。
    zonecfg:my-zone> add device
    1. デバイスの一致 (この手順では infiniband/hca/*) を設定します。
      zonecfg:my-zone:device> set match=infiniband/hca/*
    2. デバイスの指定を終了します。
      zonecfg:my-zone:device> end

    IB 診断ツールは、非大域ゾーンではサポートされていません。追加されたデバイスは、OFUV のコンポーネント (Verb や rdma_cm など) とともに使用できます。

    この手順を複数回実行することで、複数のデバイスを追加できます。

  18. format コマンドによるディスクのラベル付けを可能にするには、ディスクおよび LUN 全体をゾーンに委任し、また allow-partition プロパティーを設定している必要があります。
    zonecfg:my-zone> add device
    1. この手順で、デバイスの一致 /dev/*dsk/c2t40d3* を設定します。
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. allow-partitiontrue になるように設定します。
      zonecfg:my-zone:device> set allow-partition=true
    3. デバイスの指定を終了します。
      zonecfg:my-zone:device> end

    この手順を複数回実行することで、複数のデバイスを追加できます。

  19. ディスクに対して uscsi 操作を可能にするには、allow-raw-io プロパティーを設定している必要があります。
    zonecfg:my-zone> add device
    1. この手順で、デバイスの一致 /dev/*dsk/c2t40d3* を設定します。
      zonecfg:my-zone:device> set match=/dev/*dsk/c2t40d3*
    2. allow-raw-iotrue になるように設定します。
      zonecfg:my-zone:device> set allow-raw-io=true
    3. デバイスの指定を終了します。
      zonecfg:my-zone:device> end

      Caution

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


    この手順を複数回実行することで、複数のデバイスを追加できます。

  20. プロパティー名を使用して、ゾーン規模のリソース制御を追加します。
    zonecfg:my-zone> set max-sem-ids=10485200

    この手順を複数回実行することで、複数のリソース制御を追加できます。

  21. リソースタイプ attr を使用してコメントを追加します。
    zonecfg:my-zone> add attr
    1. 名前を comment に設定します。
      zonecfg:my-zone:attr> set name=comment
    2. タイプを string に設定します。
      zonecfg:my-zone:attr> set type=string
    3. 値をゾーンの内容を示すコメントに設定します。
      zonecfg:my-zone:attr> set value="This is my work zone."
    4. リソースタイプ attr の指定を終了します。
      zonecfg:my-zone:attr> end
  22. ゾーンの構成を検証します。
    zonecfg:my-zone> verify
  23. ゾーンの構成を確定します。
    zonecfg:my-zone> commit
  24. zonecfg コマンドを終了します。
    zonecfg:my-zone> exit

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

コマンド行での複数のサブコマンドの使用


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