この章では、構成の管理について説明します。
この章の内容は次のとおりです。
基本的な処理は、各ドメインの制約情報を XML ファイルに保存することです。たとえば、ハードウェアの障害のあとに、この XML ファイルを Logical Domains Manager に対して再実行して、必要な設定を再構築できます。
「ゲストドメイン構成を再構築する」 は、制御ドメインではなく、ゲストドメインに対して有効です。制御 (primary) ドメインの制約を XML ファイルに保存することはできますが、それを ldm add-domain i コマンドに指定することはできません。ただし、XML ファイルのリソース制約を使用して、primary ドメインを再構成する CLI コマンドを作成することはできます。ldm list-constraints -x primary コマンドの標準的な XML 出力を、primary ドメインの再構成に必要な CLI コマンドに変換する方法については、「制御ドメインの再構築」 を参照してください。
次に示す方法では、実際のバインドは保持されず、それらのバインドを作成するために使用した制約だけが保持されます。つまり、この手順を行うと、ドメインは同じ仮想リソースを持ちますが、同じ物理リソースにバインドされるとはかぎりません。
各論理ドメインで、ドメインの制約を含む XML ファイルを作成します。
# ldm list-constraints -x ldom > ldom.xml |
次の例は、primary ドメインの制約を含む XML ファイル primary.xml を作成する方法を示しています。
# ldm list-constraints -x primary > primary.xml |
作成した各ゲストドメインの 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 コマンドの出力のサンプルを次に示します。
<?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">nxge0</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 コマンドを示します。
このセクションには、primary ドメインの MAC アドレスおよびホスト 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> |
この例での論理ドメインの情報 (ldom_info) は、次のとおりです。
(MAC) Address - 00:03:ba:d8:ba:f6
hostid - 0x83d8baf6
このセクションには、primary ドメインに割り当てられた暗号化装置 (mau) の数が記述されます。
XML の一覧では mau セクションは cpu セクションのあとに記述されていますが、set-mau サブコマンドは set-cpu サブコマンドの前に実行する必要があります。これは、対応する暗号化装置を削除しないかぎりドメインから CPU を削除できないためです。
<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 |
このセクションには、primary ドメインに割り当てられた仮想 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 |
このセクションには、primary ドメインに割り当てられたメモリーの量が記述されます。
<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 |
このセクションには、primary ドメインに残す物理 I/O バスが記述されます。
<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 .... |
例 10–6 で、primary ドメインに残るように以前に構成されていたバスは、pci@7c0 です。XML に他の physio-device セクションが含まれていない場合、pci@780 バスを削除する必要があります。
このセクションは、次の CLI コマンドに相当します。
# ldm remove-io pci@780 primary |
このセクションには、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">nxge0</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> |
各表記の意味は次のとおりです。
<rasd:Address> タグには、仮想スイッチに使用される MAC アドレスが記述されます。このタグの値が auto-allocated である場合、MAC アドレスを指定する必要はありません。
XML のキープロパティー service_name は、仮想スイッチの名前 (この場合は、primary-vsw0) を示します。
XML のキープロパティー dev_path は、実際のネットワークデバイスのパス名 (この場合は、net-dev=nxge) を示します。
XML のキープロパティー mode は、SunCluster のハートビートサポートのための sc を示します。
default-vlan-id (1)、pvid (1) など、このセクションの一部の値にはデフォルト値が使用されるため、このセクションは次の CLI コマンドに相当します。
# ldm add-vswitch net-dev=nxge primary-vsw0 primary |
このセクションには、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 |
このセクションには、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 |
このセクションには、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> |
各表記の意味は次のとおりです。
XML のキープロパティーであるボリューム名 (vol_name) とサービス名 (service_name) は、CLI コマンドでは組み合わせて使用します (この場合は、vdsdev0@primary-vds0)。
XML のキープロパティー block_dev は、相当する CLI コマンドでの backend 引数となります。これは、仮想ディスクのデータの格納場所を示し、この場合は、/opt/SUNWldm/domain_disks/testdisk1 となります。
XML の省略可能なキープロパティー vol_opts は、{ro,slice,excl} のように、これらの項目の 1 つ以上がコンマで区切られて、1 つの文字列となっているものです。
XML の省略可能なキープロパティー mpgroup は、マルチパス (フェイルオーバー) グループの名前を示します。
このセクションは、次の CLI コマンドに相当します。
# ldm add-vdsdev options=ro mpgroup=mpgroup-name /opt/SUNWldm/domain_disks/testdisk1 vdsdev0@primary-vds0 |
Logical Domains 構成とは、単一システム内でのすべてのドメインとそのリソース割り当てをすべて記述したものです。構成は、サービスプロセッサ (SP) に保存および格納し、あとで使用することができます。
システムに電源を投入すると、SP は選択された構成を起動します。特定の構成を起動することで、システムは、同じドメインセットを実行し、その構成に指定されている同じ仮想化およびリソース割り当てのパーティション分割を使用します。デフォルトの構成は、最後に保存された構成です。
Logical Domains 1.2 リリース以降は、Logical Domains 構成が変更された場合は常に、現在の構成のコピーが制御ドメインに自動的に保存されます。
次の状況でも、自動保存処理はただちに行われます。
新しい構成が、SP に明示的に保存されていない場合
実際の構成の変更が、影響を受けるドメインの再起動時まで行われない場合
SP に保存されている構成が失われた場合、この自動保存処理によって構成を回復できます。また、システムの電源再投入時に現在の構成が SP に明示的に保存されなかった場合も、この処理によって構成を回復できます。このような場合、現在の構成が次回の起動時用としてマークされている構成よりも新しければ、Logical Domains Manager は再起動時にこの構成を回復できます。
電源管理、FMA、ASR、および PRI 更新イベントでは、自動保存ファイルは更新されません。
自動保存ファイルは、自動または手動で新規または既存の構成に復元できます。デフォルトでは、自動保存構成が、対応する実行中の構成よりも新しい場合、メッセージが LDoms ログに書き込まれます。したがって、ldm add-spconfig -r コマンドを使用して既存の構成を手動で更新するか、または自動保存データに基づいて新しい構成を作成する必要があります。
遅延再構成が保留中の場合、構成の変更はただちに自動保存されます。そのため、ldm list-config -r コマンドを実行すると、自動保存構成は、現在の構成より新しいものとして表示されます。
ldm *-spconfig コマンドを使用して構成を管理する方法と、自動保存ファイルを手動で回復する方法については、ldm(1M) マニュアルページを参照してください。
起動する構成を選択する方法については、「LDoms とサービスプロセッサの使用」を参照してください。
自動回復ポリシーには、制御ドメインに自動的に保存された 1 つの構成が対応する実行中の構成よりも新しい場合に、構成の回復を処理する方法を指定します。自動回復ポリシーを指定するには、ldmd SMF サービスの autorecovery_policy プロパティーを設定します。autorecovery_policy プロパティーには次の値を使用できます。
autorecovery_policy=1 – 自動保存構成が、対応する実行中の構成よりも新しい場合に、警告メッセージをログに記録します。これらのメッセージは、ldmd SMF ログファイルに記録されます。ユーザーは、構成の回復を手動で実行する必要があります。これはデフォルトのポリシーです。
autorecovery_policy=2 – 自動保存構成が、対応する実行中の構成よりも新しい場合に、通知メッセージを表示します。この通知メッセージは、Logical Domains Manager の毎回の再起動後にはじめて ldm コマンドが実行されるときに、ldm コマンドの出力結果中に出力されます。ユーザーは、構成の回復を手動で実行する必要があります。
autorecovery_policy=3 – 自動保存構成が、対応する実行中の構成よりも新しい場合に、構成を自動的に更新します。この処理は、次回の電源の再投入時に使用される SP 構成を上書きします。この構成は、制御ドメインに保存されている、より新しい構成で更新されます。この処理は、現在実行中の構成には影響を与えません。次回の電源再投入時に使用される構成にのみ影響を与えます。メッセージもログに記録されます。このメッセージには、より新しい構成が SP に保存され、次回のシステム電源の再投入時にはその構成が起動されるということが示されます。これらのメッセージは、ldmd SMF ログファイルに記録されます。
制御ドメインにログインします。
スーパーユーザーになるか、同等の役割を取得します。
役割には、承認および特権付きコマンドが含まれます。役割の詳細は、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」 を参照してください。
autorecovery_policy プロパティー値を表示します。
# svccfg -s ldmd listprop ldmd/autorecovery_policy |
ldmd サービスを停止します。
# svcadm disable ldmd |
autorecovery_policy プロパティー値を変更します。
# svccfg -s ldmd setprop ldmd/autorecovery_policy=value |
たとえば、自動回復を実行するようにポリシーを設定するには、プロパティー値を 3 に設定します。
# svccfg -s ldmd setprop ldmd/autorecovery_policy=3 |
ldmd サービスを更新して再起動します。
# svcadm refresh ldmd # svcadm enable ldmd |
次の例は、autorecovery_policy プロパティーの現在の値を表示し、その値を新しい値に変更する方法を示しています。このプロパティーの元の値は 1 です。この場合、自動保存の変更はログに記録されます。ldmd サービスの停止および再起動には svcadm コマンド、プロパティー値の表示および設定には svccfg コマンドが使用されます。
# svccfg -s ldmd listprop ldmd/autorecovery_policy ldmd/autorecovery_policy integer 1 # svcadm disable ldmd # svccfg -s ldmd setprop ldmd/autorecovery_policy=3 # svcadm refresh ldmd # svcadm enable ldmd |