Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

23.18. ストレージプール

すべてのストレージプールのバックエンドは、同じパブリック API および XML 形式を共有しますが、さまざまな機能レベルがあります。ボリュームの作成が可能なものもあります。その他のユーザーは、既存のボリュームの使用のみを許可する場合があります。ボリュームのサイズまたは配置に関して制約があるものもあります。
<ストレージプールドキュメントの最上位の要素はプールです>これには単一の属性タイプがあり、そのタイプは dir、fs、netfs、disk、iscsi、logical、scsi、mpath、rbd、sheepdog、または gluster の値を取ることができます。

23.18.1. ストレージプールのメタデータの提供

以下の XML 例は、ストレージプールに追加可能なメタデータタグを示しています。以下の例では、プールは iSCSI ストレージプールです。

図23.79 一般的なメタデータタグ

         
     <pool type="iscsi">
        <name>virtimages</name>
        <uuid>3e3fce45-4f53-4fa7-bb32-11f34168b82b</uuid>
        <allocation>10000000</allocation>
        <capacity>50000000</capacity>
        <available>40000000</available>
        ...
     </pool>
         

表23.27 virt-sysprep commands

要素 説明
<name> ホストの物理マシン一意である必要があるストレージプールの名前を指定します。これは、ストレージプールを定義する場合に必須です。
<uuid> グローバルに一意である必要があるストレージプールの識別子を提供します。UUID の指定は任意ですが、ストレージプールの作成時に UUID が指定されていない場合には、UUID が自動的に生成されます。
<allocation> ストレージプールのストレージ割り当ての合計を提供します。これは、メタデータのオーバーヘッドにより、すべてのストレージボリュームでの合計割り当ての合計の合計よりも大きくなる可能性があります。この値はバイト単位で示されます。この要素は読み取り専用であるため、値は変更しないでください。
<capacity> プールの合計ストレージ容量を提供します。基礎となるデバイスの制約により、ストレージボリュームのフル容量を使用できない可能性があります。この値はバイト単位です。この要素は読み取り専用であるため、値は変更しないでください。
<available> ストレージプールに新規ストレージボリュームを割り当てるために使用できる空き領域を提供します。基礎となるデバイスの制約により、すべての空き領域を 1 つのストレージボリュームに割り当てできない可能性があります。この値はバイト単位です。この要素は読み取り専用であるため、値は変更しないでください。

23.18.2. ソース要素

<プール要素内には <>、単一のソース要素のみを定義できます> (1 つのソース要素のみ)。<ソースの子要素は>、ストレージプールのタイプによって異なります。使用可能な XML の例を以下に示します。

図23.80 Source element option 1

         
           ...
        <source>
          <host name="iscsi.example.com"/>
          <device path="demo-target"/>
          <auth type='chap' username='myname'>
            <secret type='iscsi' usage='mycluster_myname'/>
          </auth>
          <vendor name="Acme"/>
          <product name="model"/>
        </source>
        ...
         

図23.81 ソース要素オプション 2

         
         ...
        <source>
          <adapter type='fc_host' parent='scsi_host5' wwnn='20000000c9831b4b' wwpn='10000000c9831b4b'/>
        </source>
        ...
         

<ソースで使用できる子要素については 表23.28「ソース子要素コマンド」、以下で説明します>

表23.28 ソース子要素コマンド

要素 説明
<device> ホストの物理マシンデバイス <(プールタイプ= がベース)がサポートするストレージプールのソースを提供します> 「ストレージプール」 )。バックエンドドライバーによっては複数回繰り返すことができます。ブロックデバイスノードへの完全修飾パスである単一の属性パスが含まれます
<dir> ディレクトリー<(プールタイプが='dir')が関係するストレージプールのソースを提供するか、必要に応じてファイルシステムに基づくストレージプール内のサブディレクトリー><(プールタイプ='gluster')を選択します。>この要素は 1 回のみ発生する可能性があります<(プール>)。この要素は、バッキングディレクトリーへの完全<パス>である単一の属性(パス)を受け入れます。
<adapter> SCSI アダプターがサポートするストレージプールのソースを提供します<(pool type='scsi')>。この要素は 1 回のみ発生する可能性があります<(プール>)。属性名は SCSI アダプター名(「scsi_host1"」など)です。"host1" は後方互換性のために引き続きサポートされますが、推奨されません。属性タイプはアダプタータイプを指定します。Valid values are 'fc_host'| 'scsi_host'.省略して name 属性が指定されている場合には、デフォルトで type='scsi_host' に設定されます。後方互換性を維持するには、type='scsi_host' アダプターでは属性タイプは 任意ですが 、type='fc_host' アダプターには必須です。wwnn (Word Wide Node Name) およびwwpn (Word Wide Port Name)は、ファイバーチャンネルストレージファブリック(デバイスは HBA または vHBA に) でデバイスを一意に識別するために、type='fc_host' アダプターにより使用されます。wwnn とwwpn の両方を指定する必要があります。HBA(v)HBA の wwnn/wwpn 「デバイス設定の収集」。オプションの属性 parent は、type='fc_host' アダプターの親デバイスを指定します。
<host> リモートサーバーからストレージがサポートするストレージプールのソースを提供します(type='netfs'|'iscsi'|'rbd'|'rbd'|'sheepdog'gluster')<この要素は、ディレクトリーまたは <> デバイス要素と組み合わせて使用する必要があります>。サーバーのホスト名または IP アドレスである属性名が含まれますオプションで、プロトコル固有のポート番号のポート属性を含めることができます
<auth> <auth> 要素は、type 属性の設定によってソースへのアクセスに必要な認証情報を提供します(プール type ='iscsi'|'rbd')。type は type ='chap' または type='ceph' にする必要があります。Ceph RBD(Rados Block Device)ネットワークソースには「ceph」を使用し、CHAP(Challenge-Handshake Authentication Protocol)iSCSI ターゲットに「iscsi」を使用します。また、必須の属性ユーザー名は、認証中に使用するユーザー名や、必須の属性タイプを持つサブ要素シークレットを識別し、実際のパスワードまたはその他の認証情報を保持する libvirt シークレットオブジェクトと関連付けるようにします。ドメイン XML はパスワードを意図的に公開せず、パスワードを管理するオブジェクトへの参照のみを公開します。secret 要素には、シークレットオブジェクトの UUID を持つ uuid 属性または secret オブジェクトで指定されたキーに一致する usage 属性が必要です。
<name> 名前付き要素タイプのストレージデバイスがサポートするストレージプールのソースを提供します。値は使用できます( <type='logical'|'rbd'|'sheepdog','gluster')>
<format> <ストレージプールの種類の形式を説明します 。この値は、type='logical'|'disk'|'fs'|'netfs'' です。>この値はバックエンド固有の値であることに注意してください。これは通常、ファイルシステムの種類、ネットワークファイルシステムタイプ、またはパーティションテーブルのタイプ、または LVM メタデータタイプを示すために使用されます。すべてのドライバーにはデフォルト値を指定する必要があるため、要素はオプションになります。
<vendor> ストレージデバイスのベンダーに関する情報(オプション)を提供します。これには、バックエンド固有の値が 1 <つの属性名が含まれます>
<product> ストレージデバイス製品名に関するオプションの情報を提供します。これには、バックエンド固有の値が 1 <つの属性名が含まれます>

23.18.3. ターゲット要素の作成

<単一のターゲット要素は <>、次のタイプのトップレベルプール要素に含まれます>。(type='dir'|'fs'|'netfs'|'logical'|'disk'|'iscsi'|'scsi'|'mpath')このタグは、ストレージプールからホストファイルシステムへのマッピングを記述するために使用されます。以下の子要素を含めることができます。

図23.82 ターゲット要素 XML の例

         
     <pool>
        ...
        <target>
          <path>/dev/disk/by-path</path>
          <permissions>
            <owner>107</owner>
            <group>107</group>
            <mode>0744</mode>
            <label>virt_image_t</label>
          </permissions>
          <timestamps>
            <atime>1341933637.273190990</atime>
            <mtime>1341930622.047245868</mtime>
            <ctime>1341930622.047245868</ctime>
          </timestamps>
          <encryption type='...'>
            ...
          </encryption>
        </target>
      </pool>
         

テーブル表23.29「ターゲット子要素」) <は、親ターゲット要素に有効な子要素について説明しています>

表23.29 ターゲット子要素

要素 説明
<path> ストレージプールがローカルファイルシステムの namespace にマップされる場所を指定します。ファイルシステムまたはディレクトリーベースのストレージプールでは、ストレージボリュームが作成されるディレクトリーの名前になります。デバイスベースのストレージプールでは、デバイスのノードが存在するディレクトリーの名前になります。後者の場合、/dev/は論理選択のように表示される場合がありますが、デバイスのノードは、オンデマンドで割り当てられるため、システム全体で安定する保証はありません。/dev/disk/by-{path,id,uuid,label} の場所のいずれかなど、安定した場所を使用することが推奨されます。
<permissions> これは現在、ディレクトリーとしてローカルファイルシステムの名前空間にマップされるディレクトリーまたはファイルシステムベースのストレージプールにのみ役立ちます。ストレージプールのビルド時に最終的なディレクトリーに使用するパーミッションに関する情報を提供します。<mode> 要素には 8 進数 パーミッションセットが含まれます。<owner> 要素には、ユーザー ID の数値が含まれます。<group> 要素には、数値のグループ ID が含まれます。<label> 要素には MAC(例: SELinux)ラベル文字列が含まれます。
<timestamps> ストレージボリュームに関するタイミング情報を提供します。最大 4 つのサブ要素があり、ここでは timestamps='atime'|'ctime'|'mtime' はストレージボリュームのアクセス、birth、変更、変更時間(既知の場合)を保持します。使用される時間フォーマットは <秒> です。エポック(1 Jan 1970)以降、<ナノ> 秒です。ナノ秒の解決が 0 の場合、またはホストのオペレーティングシステムまたはファイルシステムでサポートされない場合は、ナノ秒の部分を省略します。これは読み取り専用属性で、ストレージボリュームの作成時に無視されます。
<encryption> ストレージボリューム(ある場合)は、ストレージボリュームの暗号化方法を指定します。詳細は、libvirt のアップストリームページを参照してください

23.18.4. デバイス拡張の設定

<ストレージプールが基礎となる配置や割り当てスキームに関する情報を公開する場合、ソース要素内の> <device> 要素に、利用可能なエクステントに関する情報が含まれる場合があります。一部のストレージプールには、ストレージボリュームが 1 つの制約内ですべて割り当てる必要がある制約があります(ディスクパーティションプールなど)。そのため、エクステント情報により、アプリケーションが新規ストレージボリュームの最大許容サイズを決定することができます。
<エクステント情報をサポートするストレージプールでは、各デバイス要素内にゼロ以上の <> Extent> 要素があります。各要素には、バイト単位で測定される、デバイスのエクステントの境界を提供する <start><end> の 2 つの属性が含まれます。