Logical Domains 1.2 管理ガイド

第 4 章 サービスと論理ドメインの設定

この章では、デフォルトのサービス、制御ドメイン、およびゲストドメインの設定に必要な手順について説明します。

Logical Domains Configuration Assistant を使用して論理ドメインおよびサービスを構成することもできます。付録 D Logical Domains Configuration Assistant を参照してください。

この章の内容は次のとおりです。

出力メッセージ

デフォルトのサービスの作成や制御 (primary) ドメインの設定に使用するコマンドで表示される出力メッセージは、プラットフォームによって異なります。

Sun UltraSPARC T1 プロセッサ

Sun UltraSPARC T1 プロセッサを搭載したサーバーを使用している場合は、primary ドメインの設定コマンドのあとで、次のような通知が表示されます。


Notice: the LDom Manager is running in configuration mode. Any 
configuration changes made will only take effect after the machine
configuration is downloaded to the system controller and the host
is reset.

Sun UltraSPARC T2 および T2 Plus プロセッサ

Sun UltraSPARC T2 または T2 Plus プロセッサを搭載したサーバーを使用している場合は、primary ドメインのデバイスまたはサービスで、動的には実行できない最初の操作を実行したあとで、次のようなメッセージが表示されます。


Initiating delayed reconfigure operation on LDom primary. All
configuration changes for other LDoms are disabled until the
LDom reboots, at which time the new configuration for LDom
primary will also take effect.

Sun UltraSPARC T2 または T2 Plus プロセッサを搭載したサーバーを使用している場合は、再起動するまで primary ドメインに対して設定コマンドを実行するごとに、次のような通知が表示されます。


Notice: LDom primary is in the process of a delayed
reconfiguration. Any changes made to this LDom will only take
effect after it reboots.

デフォルトのサービスの作成

あとで使用できるように、次のデフォルトの仮想サービスを最初に作成する必要があります。

Procedureデフォルトのサービスを作成する

  1. 論理ドメインに仮想ディスクをインポートできるように、仮想ディスクサーバー (vds) を作成します。

    たとえば、次のコマンドを使用して、仮想ディスクサーバー (primary-vds0) を制御ドメイン (primary) に追加します。


    primary# ldm add-vds primary-vds0 primary
    
  2. 仮想ネットワーク端末サーバーデーモン (vntsd) が使用する仮想コンソール端末集配信装置 (vcc) サービスを、すべての論理ドメインコンソールの端末集配信装置として作成します。

    たとえば、次のコマンドを使用して、ポートの範囲が 5000 ~ 5100 の仮想コンソール端末集配信装置サービス (primary-vcc0) を、制御ドメイン (primary) に追加します。


    primary# ldm add-vcc port-range=5000-5100 primary-vcc0 primary
    
  3. 論理ドメインの仮想ネットワーク (vnet) デバイス間でネットワークを有効にするには、仮想スイッチサービス (vsw) を作成します。

    各論理ドメインが仮想スイッチを使用して外部と通信する必要がある場合は、GLDv3 準拠のネットワークアダプタを仮想スイッチに割り当てます。

    たとえば、次のコマンドを使用して、ネットワークアダプタドライバ e1000g0 の仮想スイッチサービス (primary-vsw0) を、制御ドメイン (primary) に追加します。


    primary# ldm add-vsw net-dev=e1000g0 primary-vsw0 primary
    

    このコマンドによって、仮想スイッチに MAC アドレスが自動的に割り当てられます。ldm add-vsw コマンドに、オプションとして独自の MAC アドレスを指定できます。ただし、この場合、指定した MAC アドレスが既存の MAC アドレスと競合していないことの確認は、ユーザーが責任を持って行います。

    追加された仮想スイッチが、基本となる物理アダプタに代わり主ネットワークインタフェースとなる場合は、動的ホスト構成プロトコル (DHCP) サーバーによってドメインに同じ IP アドレスが割り当てられるように、仮想スイッチに物理アダプタの MAC アドレスを割り当てる必要があります。「制御ドメインまたはサービスドメインとその他のドメイン間のネットワークの有効化」 を参照してください。


    primary# ldm add-vsw mac-addr=2:04:4f:fb:9f:0d net-dev=e1000g0 primary-vsw0 primary
    
  4. list-services サブコマンドを使用して、サービスが作成されたことを確認します。

    次のように出力されるはずです。


    primary# ldm list-services primary
    VDS
        NAME             VOLUME         OPTIONS          DEVICE
        primary-vds0
     
    VCC
        NAME             PORT-RANGE
        primary-vcc0     5000-5100
     
    VSW
        NAME             MAC               NET-DEV   DEVICE     MODE
        primary-vsw0     02:04:4f:fb:9f:0d e1000g0   switch@0   prog,promisc

制御ドメインの初期構成

最初に、すべてのシステムリソースが制御ドメインに割り当てられます。その他の論理ドメインを作成できるように、一部のリソースを解放する必要があります。

Procedure制御ドメインを設定する


注 –

この手順には、制御ドメイン用に設定するリソースの例も含まれています。ここで示す数値は単なる例であり、使用される値が制御ドメインに適していない場合があります。


  1. 制御ドメインに暗号化デバイスが割り当てられているかどうかを判断します。


    primary# ldm list -o crypto primary
    
  2. 暗号化リソースを制御ドメインに割り当てます。


    注 –

    制御ドメインに暗号化デバイスが割り当てられている場合は、CPU を動的に再構成することはできません。そのため、暗号化デバイスを使用していない場合は、set-mau0 に設定します。


    次の例では、1 つの暗号化リソースが制御ドメイン primary に割り当てられます。これによって、残りの暗号化リソースをゲストドメインで使用できるようになります。


    primary# ldm set-mau 1 primary
    
  3. 仮想 CPU を制御ドメインに割り当てます。

    たとえば、次のコマンドでは、4 つの仮想 CPU が制御ドメイン primary に割り当てられます。これにより、残りの仮想 CPU をゲストドメインで使用できるようになります。


    primary# ldm set-vcpu 4 primary
    
  4. メモリーを制御ドメインに割り当てます。

    たとえば、次のコマンドでは、4G バイトのメモリーが制御ドメイン primary に割り当てられます。これにより、残りのメモリーをゲストドメインで使用できるようになります。


    primary# ldm set-memory 4G primary
    
  5. 論理ドメインのマシン構成をサービスプロセッサ (SP) に追加します。

    たとえば、次のコマンドを使用して initial という名前の構成を追加します。


    primary# ldm add-config initial
    
  6. 次回の再起動時に構成が使用できる状態であることを確認します。


    primary# ldm list-config
    factory-default
    initial [next poweron]

    この list サブコマンドでは、電源を再投入すると initial 構成設定が使用されることが示されています。

論理ドメインを使用するための再起動

構成の変更を有効にして、ほかの論理ドメインで使用できるようにリソースを解放するには、制御ドメインを再起動する必要があります。

Procedure再起動する

  1. 制御ドメインを停止して再起動します。


    primary# shutdown -y -g0 -i6
    

    注 –

    再起動または電源の再投入のいずれかによって、新しい構成がインスタンス化されます。サービスプロセッサ (SP) に保存されている構成が実際に起動されるのは、電源再投入後のみで、その際に list-config の出力に反映されます。


制御ドメインまたはサービスドメインとその他のドメイン間のネットワークの有効化

デフォルトでは、システムの制御ドメインとその他のドメイン間のネットワークは無効になっています。これを有効にするために、仮想スイッチデバイスをネットワークデバイスとして構成するようにしてください。仮想スイッチは、基本となる物理デバイス (この例では e1000g0) に代わり主インタフェースとして構成するか、ドメインの追加のネットワークインタフェースとして構成することができます。


注 –

この手順によってドメインへのネットワーク接続が一時的に中断される可能性があるため、次の手順は制御ドメインのコンソールから実行してください。


Procedure仮想スイッチを主インタフェースとして構成する

  1. すべてのインタフェースのアドレス指定情報を表示します。


    primary# ifconfig -a
    
  2. 仮想スイッチを plumb します。この例では、構成する仮想スイッチは vsw0 です。


    primary# ifconfig vsw0 plumb
    
  3. (省略可能) ドメイン内のすべての仮想スイッチインスタンスのリストを取得するために、仮想スイッチインスタンスを一覧で表示できます。


    primary# /usr/sbin/dladm show-link | grep vsw
    vsw0            type: non-vlan  mtu: 1500       device: vsw0
  4. 仮想スイッチ (net-dev) に割り当てられた物理ネットワークデバイスを unplumb します。この例では、物理ネットワークデバイスは e1000g0 です。


    primary# ifconfig e1000g0 down unplumb
    
  5. 物理ネットワークデバイス (e1000g0) のプロパティーを仮想スイッチ (vsw0) デバイスに移行するには、次のいずれかを実行します。

    • ネットワークが静的 IP アドレスを使用して構成されている場合は、vsw0 に対して e1000g0 の IP アドレスとネットマスクを再利用します。


      primary# ifconfig vsw0 IP_of_e1000g0 netmask netmask_of_e1000g0 broadcast + up
      
    • ネットワークが DHCP を使用して構成されている場合は、vsw0 に対して DHCP を有効にします。


      primary# ifconfig vsw0 dhcp start
      
  6. 必要な構成ファイルに修正を加えて、この変更内容を確定します。


    primary# mv /etc/hostname.e1000g0 /etc/hostname.vsw0
    primary# mv /etc/dhcp.e1000g0 /etc/dhcp.vsw0
    

    注 –

    必要に応じて、物理ネットワークデバイスと同様に仮想スイッチも構成できます。この場合、手順 2 で記載されているように仮想スイッチを plumb して、物理デバイスは、unplumb しません (手順 4 をスキップする)。そのあと、仮想スイッチは、静的 IP アドレスまたは動的 IP アドレスを使用して構成する必要があります。動的 IP アドレスは DHCP サーバーから取得できます。この場合の詳細および例は、「NAT およびルーティング用の仮想スイッチおよびサービスドメインの構成」 を参照してください。


仮想ネットワーク端末サーバーデーモンの有効化

各論理ドメインの仮想コンソールにアクセスするには、仮想ネットワーク端末サーバーデーモン (vntsd) を有効にする必要があります。このデーモンの使用法の詳細は、vntsd(1M) マニュアルページを参照してください。

Procedure仮想ネットワーク端末サーバーデーモンを有効にする


注 –

vntsd を有効にする前に、制御ドメインにデフォルトのサービス vconscon (vcc) が作成されていることを確認してください。詳細は、「デフォルトのサービスの作成」 を参照してください。


  1. svcadm(1M) コマンドを使用して、仮想ネットワーク端末サーバーデーモン vntsd(1M) を有効にします。


    primary# svcadm enable vntsd
    
  2. svcs(1) コマンドを使用して、vntsd が有効であることを確認します。


    primary# svcs -l vntsd
    fmri         svc:/ldoms/vntsd:default
    enabled      true
    state        online
    next_state   none
    state_time   Sat Jan 27 03:14:17 2007
    logfile      /var/svc/log/ldoms-vntsd:default.log
    restarter    svc:/system/svc/restarter:default
    contract_id  93
    dependency   optional_all/error svc:/milestone/network (online)
    dependency   optional_all/none svc:/system/system-log (online)

ゲストドメインの作成と起動

ゲストドメインでは、sun4v プラットフォームとハイパーバイザによって提供される仮想デバイスの両方を認識するオペレーティングシステムを実行する必要があります。現時点では、Solaris 10 11/06 OS 以上を実行する必要があります。Solaris 10 5/09 OS を実行すると、Logical Domains 1.2 のすべての機能を使用できます。必要になる可能性があるパッチについては、『Logical Domains 1.2 リリースノート』 を参照してください。デフォルトのサービスを作成し、制御ドメインからリソースを再度割り当てたら、ゲストドメインを作成して起動できます。

Procedureゲストドメインを作成および起動する

  1. 論理ドメインを作成します。

    たとえば、次のコマンドを使用して ldg1 という名前のゲストドメインを作成します。


    primary# ldm add-domain ldg1
    
  2. CPU をゲストドメインに追加します。

    たとえば、次のコマンドを使用して 4 つの仮想 CPU をゲストドメイン ldg1 に追加します。


    primary# ldm add-vcpu 4 ldg1
    
  3. メモリーをゲストドメインに追加します。

    たとえば、次のコマンドを使用して 2G バイトのメモリーをゲストドメイン ldg1 に追加します。


    primary# ldm add-memory 2G ldg1
    
  4. 仮想ネットワークデバイスをゲストドメインに追加します。

    たとえば、次のコマンドを使用して、次のように指定した仮想ネットワークデバイスをゲストドメイン ldg1 に追加します。


    primary# ldm add-vnet vnet1 primary-vsw0 ldg1
    

    各表記の意味は次のとおりです。

    • vnet1 は、後続の set-vnet または remove-vnet サブコマンドで参照するためにこの仮想ネットワークデバイスのインスタンスに割り当てられる、論理ドメインで一意のインタフェース名です。

    • primary-vsw0 は、接続する既存のネットワークサービス (仮想スイッチ) の名前です。


    注 –

    手順 5 および 6 は、仮想ディスクサーバーデバイス (vdsdev) を primary ドメインに、および仮想ディスク (vdisk) をゲストドメインに追加するための簡略化された方法です。ZFSTM ボリュームおよびファイルシステムを仮想ディスクとして使用する方法については、「ZFS ボリュームを 1 つのスライスディスクとしてエクスポートする」 および 「仮想ディスクと ZFS の使用」 を参照してください。


  5. 仮想ディスクサーバーによってゲストドメインに仮想ディスクとしてエクスポートされるデバイスを指定します。

    物理ディスク、ディスクスライス、ボリューム、またはファイルをブロック型デバイスとしてエクスポートできます。物理ディスクとファイルの例を次に示します。

    • 物理ディスクの例。 最初の例では、次の指定で物理ディスクを追加します。


      primary# ldm add-vdsdev /dev/dsk/c2t1d0s2 vol1@primary-vds0
      

      各表記の意味は次のとおりです。

      • /dev/dsk/c2t1d0s2 は、実際の物理デバイスのパス名です。デバイスを追加する場合、パス名にはデバイス名を組み合わせる必要があります。

      • vol1 は、仮想ディスクサーバーに追加するデバイスに指定する必要がある一意の名前です。ボリューム名は、この仮想ディスクサーバーによってクライアントにエクスポートされ追加されるため、ボリューム名はこの仮想ディスクサーバーのインスタンスに対して一意である必要があります。デバイスを追加する場合、ボリューム名には実際のデバイスのパス名を組み合わせる必要があります。

      • primary-vds0 は、このデバイスを追加する仮想ディスクサーバーの名前です。

    • ファイルの例。 この 2 つめの例では、ファイルをブロック型デバイスとしてエクスポートします。


      primary# ldm add-vdsdev backend vol1@primary-vds0
      

      各表記の意味は次のとおりです。

      • backend は、ブロック型デバイスとしてエクスポートされる実際のファイルのパス名です。デバイスを追加する場合、このバックエンドにデバイス名を組み合わせる必要があります。

      • vol1 は、仮想ディスクサーバーに追加するデバイスに指定する必要がある一意の名前です。ボリューム名は、この仮想ディスクサーバーによってクライアントにエクスポートされ追加されるため、ボリューム名はこの仮想ディスクサーバーのインスタンスに対して一意である必要があります。デバイスを追加する場合、ボリューム名には実際のデバイスのパス名を組み合わせる必要があります。

      • primary-vds0 は、このデバイスを追加する仮想ディスクサーバーの名前です。

  6. 仮想ディスクをゲストドメインに追加します。

    次の例では、仮想ディスクをゲストドメイン ldg1 に追加します。


    primary# ldm add-vdisk vdisk1 vol1@primary-vds0 ldg1
    

    各表記の意味は次のとおりです。

    • vdisk1 は、仮想ディスクの名前です。

    • vol1 は、接続する既存のボリュームの名前です。

    • primary-vds0 は、接続する既存の仮想ディスクサーバーの名前です。


    注 –

    仮想ディスクは、さまざまな種類の物理デバイス、ボリューム、またはファイルで構成される総称的なブロック型デバイスです。仮想ディスクは SCSI ディスクと同義ではありません。そのため、ディスクラベル内のターゲット ID は除外されます。論理ドメインの仮想ディスクの形式は、cNdNsN です。cN は仮想コントローラ、dN は仮想ディスク番号、および sN はスライスを示します。


  7. ゲストドメインの auto-boot および boot-device 変数を設定します。

    最初の例のコマンドは、ゲストドメイン ldg1auto-boot\?true に設定します。


    primary# ldm set-var auto-boot\?=true ldg1
    

    2 つめの例のコマンドは、ゲストドメイン ldg1boot-devicevdisk に設定します。


    primary# ldm set-var boot-device=vdisk ldg1
    
  8. ゲストドメイン ldg1 にリソースをバインドし、ドメインを一覧表示してリソースがバインドされていることを確認します。


    primary# ldm bind-domain ldg1
    primary# ldm list-domain ldg1
    NAME          STATE    FLAGS  CONS   VCPU MEMORY   UTIL  UPTIME
    ldg1          bound    -----  5000   4    2G
  9. ゲストドメインのコンソールのポートを見つけるために、前述の list-domain サブコマンドの出力を調べます。

    CONS という見出しの下で、論理ドメインゲスト 1 (ldg1) のコンソール出力がポート 5000 にバインドされていることがわかります。

  10. 制御ドメインにログインし、ローカルホストのコンソールポートに直接接続することによって、別の端末からゲストドメインのコンソールに接続します。


    $ ssh admin@controldom.domain
    $ telnet localhost 5000
    
  11. ゲストドメイン ldg1 を起動します。


    primary# ldm start-domain ldg1
    

ゲストドメインへの Solaris OS のインストール

この節では、ゲストドメインに Solaris OS をインストールできる、いくつかの異なる方法について説明します。

ProcedureDVD からゲストドメインに Solaris OS をインストールする

  1. Solaris 10 OS DVD を DVD ドライブに挿入します。

  2. primary ドメインでボリューム管理デーモン vold(1M) を停止します。


    primary# svcadm disable volfs
    
  3. ゲストドメイン (ldg1) を停止し、バインドを解除します。次に、DVDROM メディアがマウントされた DVD を、たとえば二次ボリューム (dvd_vol@primary-vds0) および仮想ディスク (vdisk_cd_media) として追加します。

    c0t0d0s2 は、Solaris OS メディアのマウント先です。


    primary# ldm stop ldg1
    primary# ldm unbind ldg1
    primary# ldm add-vdsdev /dev/dsk/c0t0d0s2 dvd_vol@primary-vds0
    primary# ldm add-vdisk vdisk_cd_media dvd_vol@primary-vds0 ldg1
    
  4. DVD が二次ボリュームおよび仮想ディスクとして追加されていることを確認します。


    primary# ldm list-bindings
    NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME 
    primary          active   -n-cv   SP      4     4G       0.2%  22h 45m
    ...
    VDS 
       NAME             VOLUME         OPTIONS          DEVICE
       primary-vds0     vol1                            /dev/dsk/c2t1d0s2
       dvd_vol                                          /dev/dsk/c0t0d0s2
    ....
    ------------------------------------------------------------------------------
    NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    ldg1             inactive -----           60    6G
    ...
    DISK
       NAME             VOLUME                      TOUT DEVICE  SERVER
       vdisk1           vol1@primary-vds0
       vdisk_cd_media   dvd_vol@primary-vds0
    ....
  5. ゲストドメイン (ldg1) をバインドし、起動します。


    primary# ldm bind ldg1
    primary# ldm start ldg1
    LDom ldg1 started
    primary# telnet localhost 5000
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
     
    Connecting to console "ldg1" in group "ldg1" ....
    Press ~? for control options ..
  6. クライアント OpenBootTM PROM でデバイス別名を表示します。

    この例で、vdisk_cd_media (Solaris DVD) および vdisk1 (Solaris OS をインストール可能な仮想ディスク) のデバイス別名を確認してください。


    ok devalias
    vdisk_cd_media  /virtual-devices@100/channel-devices@200/disk@1
    vdisk1          /virtual-devices@100/channel-devices@200/disk@0
    vnet1           /virtual-devices@100/channel-devices@200/network@0
    virtual-console /virtual-devices/console@1
    name            aliases
  7. ゲストドメインのコンソールで、スライス fvdisk_cd_media (disk@1) から起動します。


    ok boot vdisk_cd_media:f -v
    Boot device: /virtual-devices@100/channel-devices@200/disk@1:f  File and args: -s
    SunOS Release 5.10 Version Generic_139555-08 64-bit
    Copyright 1983-2009 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.
  8. 引き続き Solaris OS のインストールメニューに従います。

ProcedureSolaris ISO ファイルからゲストドメインに Solaris OS をインストールする

  1. ゲストドメインのバインドを解除します。

    次の例では、ldg1 をゲストドメインとして使用しています。


    primary# ldm unbind ldg1
    
  2. 二次ボリュームおよび仮想ディスクとして Solaris ISO ファイルを追加します。

    次の例では、solarisdvd.iso を Solaris ISO ファイル、iso_vol@primary-vds0 を二次ボリューム、vdisk_iso を仮想ディスクとして使用します。


    primary# ldm add-vdsdev /export/solarisdvd.iso  iso_vol@primary-vds0
    primary# ldm-vdisk vdisk vdisk_iso iso_vol@primary-vds0 ldg1
    
  3. Solaris ISO ファイルが二次ボリュームおよび仮想ディスクとして追加されていることを確認します。


    primary# ldm list-bindings
    NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME 
    primary          active   -n-cv   SP      4     4G       0.2%  22h 45m
    ...
    VDS 
       NAME             VOLUME         OPTIONS          DEVICE
       primary-vds0     vol1                            /dev/dsk/c2t1d0s2
       iso_vol                                          /export/solarisdvd.iso
    ....
    ------------------------------------------------------------------------------
    NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    ldg1             inactive -----           60    6G
    ...
    DISK
       NAME             VOLUME                      TOUT DEVICE  SERVER
       vdisk1           vol1@primary-vds0
       vdisk_iso        iso_vol@primary-vds0
    ....
  4. ゲストドメイン (ldg1) をバインドし、起動します。


    primary# ldm bind ldg1
    primary# ldm start ldg1
    LDom ldg1 started
    primary# telnet localhost 5000
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
     
    Connecting to console "ldg1" in group "ldg1" ....
    Press ~? for control options ..
  5. クライアント OpenBoot PROM でデバイス別名を表示します。

    この例で、vdisk_iso (Solaris ISO イメージ) および vdisk_install (ディスク領域) のデバイス別名を確認してください。


    ok devalias
    vdisk_iso       /virtual-devices@100/channel-devices@200/disk@1
    vdisk1          /virtual-devices@100/channel-devices@200/disk@0
    vnet1           /virtual-devices@100/channel-devices@200/network@0
    virtual-console /virtual-devices/console@1
    name            aliases
  6. ゲストドメインのコンソールで、スライス fvdisk_iso (disk@1) から起動します。


    ok boot vdisk_iso:f -v
    Boot device: /virtual-devices@100/channel-devices@200/disk@1:f  File and args: -s
    SunOS Release 5.10 Version Generic_139555-08 64-bit
    Copyright 1983-2009 Sun Microsystems, Inc.  All rights reserved.
    Use is subject to license terms.
  7. 引き続き Solaris OS のインストールメニューに従います。

Procedureゲストドメインの JumpStart を実行する

  1. ゲストドメインの JumpStart を行うには、次の 2 つの例で示すように、正規の Solaris OS の JumpStart 手順にあるプロファイルの構文を Logical Domains 固有の JumpStart 手順に変更して、通常の JumpStart 手順を使用します。

    通常の JumpStart のプロファイル


    filesys c1t1d0s0 free /
    filesys c1t1d0s1 2048 swap
    filesys c1t1d0s5 120 /spare1
    filesys c1t1d0s6 120 /spare2

    論理ドメインの仮想ディスクデバイス名は、デバイス名にターゲット ID (tN) が含まれないという点で、物理ディスクデバイス名とは異なります。通常の cNtNdNsN 形式の代わりに、仮想ディスクデバイス名は cNdNsN という形式になります。ここで、cN は仮想コントローラ、dN は仮想ディスク番号、および sN はスライスを示します。次のプロファイルの例のように、使用する JumpStart プロファイルを修正して、この変更を反映してください。

    論理ドメインで使用される実際のプロファイル


    filesys c0d0s0 free /
    filesys c0d0s1 2048 swap
    filesys c0d0s5 120 /spare1
    filesys c0d0s6 120 /spare2

    注 –

    仮想ネットワーク (vnet) デバイスの MAC アドレスは、ゲストのバナーで報告されたものではなく、JumpStart 構成に対する ldm(1M) コマンドによって報告されたとおりに使用する必要があります。


将来の再構築用の論理ドメイン構成の保存

基本的な処理は、各ドメインの制約情報を XML ファイルに保存することです。たとえば、ハードウェアの障害のあとに、この XML ファイルを Logical Domains Manager に対して再実行して、必要な設定を再構築できます。

「ゲストドメイン構成を再構築する」 は、制御ドメインではなく、ゲストドメインに対して有効です。制御 (primary) ドメインの制約を XML ファイルに保存することはできますが、それを ldm add-domain i コマンドに指定することはできません。ただし、XML ファイルのリソース制約を使用して、primary ドメインを再構成する CLI コマンドを作成することはできます。ldm list-constraints -x primary コマンドの標準的な XML 出力を、primary ドメインの再構成に必要な CLI コマンドに変換する方法については、「制御ドメインの再構築」 を参照してください。

次に示す方法では、実際のバインドは保持されず、それらのバインドを作成するために使用した制約だけが保持されます。つまり、この手順を行うと、ドメインは同じ仮想リソースを持ちますが、同じ物理リソースにバインドされるとはかぎりません。

Procedureすべての論理ドメイン構成を保存する

  1. 各論理ドメインで、ドメインの制約を含む XML ファイルを作成します。


    # ldm list-constraints -x ldom > ldom.xml
    

    次の例は、primary ドメインの制約を含む XML ファイル primary.xml を作成する方法を示しています。


    # ldm list-constraints -x primary > primary.xml
    

Procedureゲストドメイン構成を再構築する

  1. 作成した各ゲストドメインの XML ファイルに対して、次のコマンドを実行します。


    # ldm add-domain -i ldom.xml
    # ldm bind-domain ldom
    # ldm start-domain ldom
    

制御ドメインの再構築

この節では、ldm list-constraints -x primary コマンドの標準的なの XML 出力を、primary ドメインの再構成に必要な CLI コマンドに変換する方法について説明します。XML 出力のサンプルでは、XML から CLI コマンドを作成するために使用するリソースおよびプロパティーが太字で示されています。CLI コマンドの詳細は、ldm(1M) マニュアルページを参照してください。

ldm list-constraints -x primary コマンドの出力のサンプルを次に示します。


例 4–1 list-constraints サブコマンドの XML 出力のサンプル


<?xml version="1.0"?>
<LDM_interface version="1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="./schemas/combined-v3.xsd"
        xmlns:ovf="./schemas/envelope"
        xmlns:rasd="./schemas/CIM_ResourceAllocationSettingData"
        xmlns:vssd="./schemas/CIM_VirtualSystemSettingData"
        xmlns:gprop="./schemas/GenericProperty" xmlns:bind="./schemas/Binding">
  <data version="3.0">
    <Envelope>
      <References/>
      <Content xsi:type="ovf:VirtualSystem_Type" ovf:id="primary">
        <Section xsi:type="ovf:ResourceAllocationSection_Type">
          <Item>
            <rasd:OtherResourceType>ldom_info</rasd:OtherResourceType>
            <rasd:Address>00:03:ba:d8:ba:f6</rasd:Address>
            <gprop:GenericProperty key="hostid">0x83d8baf6</gprop:GenericProperty>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>cpu</rasd:OtherResourceType>
            <rasd:AllocationUnits>4</rasd:AllocationUnits>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>mau</rasd:OtherResourceType>
            <rasd:AllocationUnits>1</rasd:AllocationUnits>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>memory</rasd:OtherResourceType>
            <rasd:AllocationUnits>4G</rasd:AllocationUnits>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>physio_device</rasd:OtherResourceType>
            <gprop:GenericProperty key="name">pci@7c0</gprop:GenericProperty>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>vsw</rasd:OtherResourceType>
            <rasd:Address>auto-allocated</rasd:Address>
            <gprop:GenericProperty key="service_name">primary-vsw0</gprop:GenericProperty>
            <gprop:GenericProperty key="dev_path">e1000g0</gprop:GenericProperty>
            <gprop:GenericProperty key="default-vlan-id">1</gprop:GenericProperty>
            <gprop:GenericProperty key="pvid">1</gprop:GenericProperty>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>vcc</rasd:OtherResourceType>
            <gprop:GenericProperty key="service_name">primary-vcc0</gprop:GenericProperty>
            <gprop:GenericProperty key="min_port">5000</gprop:GenericProperty>
            <gprop:GenericProperty key="max_port">6000</gprop:GenericProperty>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>vds</rasd:OtherResourceType>
            <gprop:GenericProperty key="service_name">primary-vds0</gprop:GenericProperty>
          </Item>
        </Section>
        <Section xsi:type="ovf:VirtualHardwareSection_Type">
          <Item>
            <rasd:OtherResourceType>vds_volume</rasd:OtherResourceType>
            <gprop:GenericProperty key="vol_name">primary-vds0-vol0</gprop:GenericProperty>
            <gprop:GenericProperty
              key"block_dev">/opt/SUNWldm/domain_disks/testdisk.nv.53.1</gprop:GenericProperty>
            <gprop:GenericProperty key="service_name">primary-vds0</gprop:GenericProperty>
          </Item>
        </Section>
      </Content>
    </Envelope>
  </data>
</LDM_interface>

<Content> タグおよび <Content> タグ内の <Section> には、primary ドメイン、および primary ドメインに含まれるすべてのリソースが記述されています。<Item> 内の <rasd:...> タグおよび <gprop:GenericProperty...> タグには、各リソースに必要なプロパティーが記述されています。各 <Section> の各リソースを確認して、リソースの制約に基づいて CLI コマンドを作成できます。以降の節では、ドメインの XML 記述でより一般的ないくつかのリソースと、そのリソースに対する同等の CLI コマンドを示します。

論理ドメインの情報 (ldom_info) セクション

このセクションには、primary ドメインの MAC アドレスおよびホスト ID の情報が記述されます。これは primary ドメインであるため、この情報を設定することはできません。この情報は自動的に設定されます。


例 4–2 論理ドメインの情報 (ldom_info) セクション


<Section> xsi:type="ovf:ResourceAllocationSection_Type">
  <Item>
    <rasd:OtherResourceType>ldom_info</rasd:OtherResourceType>
    <rasd:Address>00:03:ba:d8:ba:f6</rasd:Address>
    <gprop:GenericProperty key="hostid">0x83d8baf6</gprop:GenericProperty>
  </Item>
</Section>

この例での論理ドメインの情報 (ldom_info) は、次のとおりです。

暗号化 (mau) セクション

このセクションには、primary ドメインに割り当てられた暗号化装置 (mau) の数が記述されます。


注 –

XML の一覧では mau セクションは cpu セクションのあとに記述されていますが、set-mau サブコマンドは set-cpu サブコマンドの前に実行する必要があります。これは、対応する暗号化装置を削除しないかぎりドメインから CPU を削除できないためです。



例 4–3 暗号化 (mau) セクション


<Section> xsi:type="ovf:VirtualHardwareSection_Type"
  <Item>
    <rasd:OtherResourceType>mau</rasd:OtherResourceType>
    <rasd:AllocationUnits>1</rasd:AllocationUnits>
  </Item>
</Section>

このセクションは、次の CLI コマンドに相当します。


# ldm set-mau 1 primary

CPU (cpu) セクション

このセクションには、primary ドメインに割り当てられた仮想 cpu の数が記述されます。


例 4–4 CPU (cpu) セクション


<Section> xsi:type="ovf:VirtualHardwareSection_Type"
  <Item>
    <rasd:OtherResourceType>cpu</rasd:OtherResourceType>
    <rasd:AllocationUnits>4</rasd:AllocationUnits>
  </Item>
</Section>

このセクションは、次の CLI コマンドに相当します。


# ldm set-vcpu 4 primary

メモリー (memory) セクション

このセクションには、primary ドメインに割り当てられたメモリーの量が記述されます。


例 4–5 メモリー (memory) セクション


<Section> xsi:type="ovf:VirtualHardwareSection_Type"
  <Item>
    <rasd:OtherResourceType>memory</rasd:OtherResourceType>
    <rasd:AllocationUnits>4G</rasd:AllocationUnits>
  </Item>
</Section>

このセクションは、次の CLI コマンドに相当します。


# ldm set-memory 4G primary

物理入出力 (physio_device) セクション

このセクションには、primary ドメインに残す物理 I/O バスが記述されます。


例 4–6 物理 I/O (physio_device) セクション


<Section> xsi:type="ovf:VirtualHardwareSection_Type"
  <Item>
    <rasd:OtherResourceType>physio_device</rasd:OtherResourceType>
    <gprop:GenericProperty key="name">pci@7c0</gprop:GenericProperty>
  </Item>
</Section>

以前の構成どおりに、同じ I/O デバイスを primary ドメインに設定するには、まず、起動時に構成される I/O デバイスを一覧表示する必要があります。


# ldm list -l primary
....
IO
    DEVICE           PSEUDONYM        OPTIONS
    pci@7c0          bus_b
    pci@780          bus_a
....

例 4–6 で、primary ドメインに残るように以前に構成されていたバスは、pci@7c0 です。XML に他の physio-device セクションが含まれていない場合、pci@780 バスを削除する必要があります。

このセクションは、次の CLI コマンドに相当します。


# ldm remove-io pci@780 primary

仮想スイッチ (vsw) セクション

このセクションには、primary ドメインに割り当てられた仮想スイッチ (vsw) が記述されます。


<Section xsi:type="ovf:VirtualHardwareSection_Type">
  <Item>
    <rasd:OtherResourceType>vsw</rasd:OtherResourceType>
    <rasd:Address>auto-allocated</rasd:Address>
    <gprop:GenericProperty key="service_name">primary-vsw0</gprop:GenericProperty>
    <gprop:GenericProperty key="dev_path">e1000g0</gprop:GenericProperty>
    <gprop:GenericProperty key="mode">sc</gprop:GenericProperty>
    <gprop:GenericProperty key="default-vlan-id">1</gprop:GenericProperty>
    <gprop:GenericProperty key="pvid">1</gprop:GenericProperty>
  </Item>
</Section>

各表記の意味は次のとおりです。

default-vlan-id (1)、pvid (1) など、このセクションの一部の値にはデフォルト値が使用されるため、このセクションは次の CLI コマンドに相当します。


# ldm add-vswitch net-dev=e1000g primary-vsw0 primary

仮想コンソール端末集配信装置 (vcc) セクション

このセクションには、primary ドメインに割り当てられた仮想コンソール端末集配信装置 (vcc) が記述されます。


<Section xsi:type="ovf:VirtualHardwareSection_Type">
  <Item>
    <rasd:OtherResourceType>vcc</rasd:OtherResourceType>
    <gprop:GenericProperty key="service_name">primary-vcc0</gprop:GenericProperty>
    <gprop:GenericProperty key="min_port">5000</gprop:GenericProperty>
    <gprop:GenericProperty key="max_port">6000</gprop:GenericProperty>
  </Item>
</Section>

XML のキープロパティー service_name は、vcc サービスの名前 (この場合は、primary-vcc0) を示します。

このセクションは、次の CLI コマンドに相当します。


# ldm add-vcc port-range=5000-6000 primary-vcc0 primary

仮想ディスクサーバー (vds) セクション

このセクションには、primary ドメインに割り当てられた仮想ディスクサーバー (vds) が記述されます。


<Section xsi:type="ovf:VirtualHardwareSection_Type">
  <Item>
    <rasd:OtherResourceType>vds</rasd:OtherResourceType>
    <gprop:GenericProperty key="service_name">primary-vds0</gprop:GenericProperty>
  </Item>
</Section>

XML のキープロパティー service_name は、仮想ディスクサーバーのこのインスタンスのサービス名 (この場合は、primary-vds0) を示します。この service_name は、サーバー上のすべての仮想ディスクサーバーインスタンスの中で一意である必要があります。

このセクションは、次の CLI コマンドに相当します。


# ldm add-vds primary-vds0 primary

仮想ディスクサーバーデバイス (vdsdev) セクション

このセクションには、primary ドメインに割り当てられた仮想ディスクサーバーによってエクスポートされたデバイス (vdsdev) が記述されます。


<Section xsi:type="ovf:VirtualHardwareSection_Type">
  <Item>
    <rasd:OtherResourceType>vds_volume</rasd:OtherResourceType>
    <gprop:GenericProperty key="vol_name">vdsdev0</gprop:GenericProperty>
    <gprop:GenericProperty key="service_name">primary-vds0</gprop:GenericProperty>
    <gprop:GenericProperty
      key="block_dev">/opt/SUNWldm/domain_disks/testdisk1</gprop:GenericProperty>
    <gprop:GenericProperty key="vol_opts">ro</gprop:GenericProperty>
    <gprop:GenericProperty key="mpgroup">mpgroup-name</gprop:GenericProperty>
  </Item>
</Section>

各表記の意味は次のとおりです。

このセクションは、次の CLI コマンドに相当します。


# ldm add-vdsdev options=ro mpgroup=mpgroup-name
/opt/SUNWldm/domain_disks/testdisk1 vdsdev0@primary-vds0

ドメインの依存関係の構成

Logical Domains Manager を使用して、ドメイン間の依存関係を確立できます。依存する 1 つ以上のドメインを持つドメインは、マスタードメインと呼ばれます。別のドメインに依存するドメインは、スレーブドメインと呼ばれます。

master プロパティーを設定することによって、各スレーブドメインに最大 4 つのマスタードメインを指定できます。たとえば、次に示すコンマで区切られたリストでは、pine スレーブドメインに 4 つのマスタードメインを指定しています。


# ldm add-domain master=apple,lemon,orange,peach pine

各マスタードメインには、マスタードメインに障害が発生した場合のスレーブドメインの動作を指定できます。たとえば、マスタードメインに障害が発生した場合、そのスレーブドメインでパニックを発生させる必要があることがあります。1 つのスレーブドメインに複数のマスタードメインが指定されている場合、最初のマスタードメインに障害が発生すると、そのすべてのスレーブドメインに対して定義済みの障害ポリシーがトリガーされます。


注 –

複数のマスタードメインに同時に障害が発生した場合、指定された障害ポリシーのうち 1 つのみが、影響を受けるすべてのスレーブドメインに対して実施されます。たとえば、障害が発生したマスタードメインに stop および panic という障害ポリシーが定義されている場合、すべてのスレーブドメインが停止するか、パニックが発生します。


マスタードメインの障害ポリシーは、failure-policy プロパティーに次のいずれかの値を設定することによって制御できます。

この例では、マスタードメインの障害ポリシーが次のように指定されています。


# ldm set-domain failure-policy=ignore apple
# ldm set-domain failure-policy=panic lemon
# ldm set-domain failure-policy=reset orange
# ldm set-domain failure-policy=stop peach

このメカニズムを使用して、ドメイン間の明示的な依存関係を作成できます。たとえば、ゲストドメインが、サービスドメインに暗黙に依存し、その仮想デバイスを提供しているとします。ゲストドメインが依存しているサービスドメインが実行されていない場合、ゲストドメインの入出力はブロックされます。ゲストドメインをサービスドメインのスレーブドメインとして定義することによって、サービスドメインが停止した場合のゲストドメインの動作を指定できます。このような依存関係が確立されていない場合、ゲストドメインはサービスドメインが使用可能になるのを待機します。


注 –

Logical Domains Manager では、依存サイクルが生じるようなドメイン関係を作成することはできません。詳細は、「依存サイクル」 を参照してください。


ドメインの依存関係の XML の例は、例 10–6 を参照してください。

ドメインの依存関係の例

次の例は、ドメインの依存関係を構成する方法を示します。

依存サイクル

Logical Domains Manager では、依存サイクルが生じるようなドメイン関係を作成することはできません。依存サイクルとは、スレーブドメインが自身に依存したり、マスタードメインがそのスレーブドメインのいずれかに依存したりすることになる、2 つ以上のドメイン間の関係です。

Logical Domains Manager は、依存関係を追加する前に、依存サイクルが存在しないかを判断します。Logical Domains Manager は、まずスレーブドメインについて、マスター配列によって指定されたすべてのパスを最初から最後まで検索します。途中で依存サイクルが見つかると、エラーとして報告されます。

次の例は、依存サイクルがどのように作成されるかを示します。最初のコマンドは、mohawk というスレーブドメインを作成します。このドメインは、マスタードメインに primary を指定します。その結果、mohawk は、次のような依存関係の連鎖で primary に依存します。

図 4–1 単一のドメインの依存関係

この図は、mohawk ドメインがマスタードメインである primary に依存する、ドメインの依存関係の連鎖を示しています。

2 つめのコマンドは、primary というスレーブドメインを作成します。このドメインは、マスタードメインに counter を指定します。その結果、次のような依存関係の連鎖で、mohawkprimary に依存し、primary が counter に依存します。

図 4–2 複数のドメインの依存関係

この図は、mohawk が primary に依存し、primary が counter に依存する、ドメインの依存関係の連鎖を示しています。

3 つめのコマンドは、counter ドメインと mohawk ドメインとの間に依存関係の作成を試みます。これによって、次のような依存サイクルが生成されます。

図 4–3 ドメインの依存サイクル

この図は、mohawk が primary に依存し、primary が counter に依存し、counter が mohawk に依存する、ドメインの依存サイクルを示しています。

次のエラーメッセージが表示されて ldm set-domain コマンドが失敗します。


# ldm add-domain master=primary mohawk
# ldm set-domain master=counter primary
# ldm set-domain master=mohawk counter
Dependency cycle detected: LDom "counter" indicates "primary" as its master