23.20. ストレージボリューム

ストレージボリュームは標準的にはファイルまたはデバイスノードのいずれかになります。1.2.0 以降、オプションの output-only 属性タイプは実際のタイプ (file、block、dir、network、または netdir) を一覧表示します。

23.20.1. 一般的なメタデータ

<volume> 要素の上部セクションには、この XML サンプルに示されるメタデータとして知られる情報が含まれます。
         
      ...
      <volume type='file'>
        <name>sparse.img</name>
        <key>/var/lib/libvirt/images/sparse.img</key>
        <allocation>0</allocation>
        <capacity unit="T">1</capacity>
        ...
      </volume>
         

図23.85 ストレージボリュームの一般的なメタデータ

表 (表23.30「ボリューム子要素」) は、親 <volume> 属性に有効な子要素について説明します。

表23.30 ボリューム子要素

要素説明
<name>ストレージプールに固有のストレージボリュームの名前を提供します。これはストレージボリュームを定義をする際に必須となります。
<key>単一ストレージボリュームを識別するストレージボリュームの識別子を提供します。場合によっては、単一ストレージボリュームを識別する 2 つの一意のキーを持たせることができます。このフィールドは、常に生成されるので、ストレージボリュームの作成時に設定することはできません。
<allocation>ストレージボリュームのストレージ割り当てを提供します。これは、ストレージボリュームがスパースに割り当てられている場合は論理容量よりも小さくなることがあります。ストレージボリュームのメタデータのオーバーヘッドが大きい場合は論理容量よりも大きくなることがあります。この値はバイト単位です。ストレージボリュームの作成時に省略されると、ストレージボリュームは作成時に完全に割り当てられます。容量よりも小さい値に設定されると、ストレージプールには、ストレージボリュームをスパースに割り当てるかどうかを決定するオプションが付きます。ストレージプールのタイプにより、スパースストレージボリュームの処理方法がそれぞれ異なる場合があります。たとえば、論理プールは、満杯になるとストレージボリュームの割り当てを自動的に拡張しません。ユーザーは自動設定を行うために、これを設定するか、または dmeventd を設定します。注記 を参照してください。
<capacity>ストレージボリュームの論理ボリュームを提供します。この値はデフォルトではバイト単位ですが、<unit> 属性については、<allocation> で説明されているように 注記 の場合と同じセマンティクス (形式) で指定できます。これはストレージボリュームの作成時には必須になります。
<source>ストレージボリュームの基礎となるストレージ割り当てについての情報を提供します。これは、一部のストレージプールタイプには利用できないことがあります。
<target>ローカルホスト物理マシン上のストレージボリュームの表示についての情報を提供します。

注記

必要な場合は、オプション属性 unit を指定して、渡される値を調整することができます。この属性は、<allocation> 要素および <capacity> 要素と共に使用できます。属性 unit の受け入れられる値には、以下が含まれます。
  • B または bytes: バイト
  • KB: キロバイト
  • K または KiB: キビバイト
  • MB: メガバイト
  • M または MiB: メビバイト
  • GB: ギガバイト
  • G または GiB: ギビバイト
  • TB: テラバイト
  • T または TiB: テビバイト
  • PB: ペタバイト
  • P または PiB: ペビバイト
  • EB: エクサバイト
  • E または EiB: エクスビバイト

23.20.2. target 要素の設定

<target> 要素は、<volume> の上位レベルの要素に配置することができます。これは、ストレージボリューム上でのホスト物理マシンファイルシステムへのマッピングを記述するために使用されます。この要素は以下の子要素を取ることができます。
         
       <target>
          <path>/var/lib/libvirt/images/sparse.img</path>
          <format type='qcow2'/>
          <permissions>
            <owner>107</owner>
            <group>107</group>
            <mode>0744</mode>
            <label>virt_image_t</label>
          </permissions>
          <compat>1.1</compat>
          <features>
            <lazy_refcounts/>
          </features>
        </target>
         

図23.86 ターゲット子要素

<target> の特定の子要素は 表23.31「ターゲット子要素」 で説明されています。

表23.31 ターゲット子要素

要素説明
<path>ローカルファイルシステム上で、絶対パスとしてストレージボリュームにアクセスできる位置を提供します。これは読み取り専用の属性で、ボリュームを作成する場合に指定することができません。
<format>プール固有のボリューム形式についての情報を提供します。ディスクベースのストレージプールの場合、パーティションタイプを提供します。ファイルシステムまたはディレクトリーベースのストレージプールの場合は、ファイル形式のタイプ (cow、qcow、vmdk、raw など) を提供します。ストレージボリュームを作成する場合に省略されると、ストレージプールのデフォルト形式が使用されます。実際の形式は、type 属性を使用して指定されます。有効な属性の一覧については、「ストレージプールの使用」 の特定のストレージプールのセクションを参照してください。
<permissions>ストレージボリュームの作成時に使用するデフォルトのアクセス権についての情報を提供します。現在のところ、これは、割り当てられるストレージボリュームが単純なファイルであるディレクトリーまたはファイルシステムベースのストレージプールの場合にのみ役に立ちます。ストレージボリュームがデバイスノードであるストレージプールの場合、ホットプラグスクリプトがアクセス権を判別します。これには、4 つの子要素が含まれます。<mode> 要素には、8 進数のアクセス権セットが含まれます。<owner> 要素には数字のユーザー ID が含まれます。<group> 要素には、数字のグループ ID が含まれます。<label> 要素には、MAC (例: SELinux) ラベル文字列が含まれます。
<compat>互換性レベルを指定します。現在のところ、これは <type='qcow2'> ボリュームにのみ使用されます。現在、イメージに互換性を持たせる QEMU バージョンを指定するための有効な値は、qcow2 (バージョン 2) には <compat>0.10</compat>、および qcow2 (バージョン 3) には <compat>1.1</compat> です。<feature> 要素がある場合、<compat>1.1</compat> が使用されます。省略される場合はデフォルトの qemu-img が使用されます。
<features>形式固有の機能です。現在は、<format type='qcow2'/> (バージョン 3) とのみ使用されます。有効なサブ要素には、<lazy_refcounts/> が含まれます。これにより、メタデータの書き込みおよびフラッシュの量が削減されます。この改善は、とくに writethrough キャッシュモードで確認されますが、クラッシュ後のイメージを修復する必要があります。また、この改善により、遅延した参照カウンターの更新が可能になります。この機能は、実装時にスピードアップできることから、qcow2 (バージョン 3) と共に使用することをお勧めします。

23.20.3. バッキングストア要素の設定

単一の <backingStore> 要素は、トップレベルの <volume> 要素内に含まれます。このタグは、オプションのストレージボリュームの書き込みのコピー (copy-on-write) のバッキングストアを記述するために使用されます。これには、以下の子要素が含まれます。
            
        <backingStore>
          <path>/var/lib/libvirt/images/master.img</path>
          <format type='raw'/>
          <permissions>
            <owner>107</owner>
            <group>107</group>
            <mode>0744</mode>
            <label>virt_image_t</label>
          </permissions>
        </backingStore>
            

図23.87 バッキングストアの子要素

表23.32 バッキングストアの子要素

要素説明
<path>絶対パスとしてローカルファイルシステム上のバッキングストアにアクセスできる位置を提供します。これが省略される場合、このストレージボリュームのバッキングストアはありません。
<format>プールに固有のバッキングストア形式についての情報を提供します。ディスクベースのストレージプールの場合、パーティションタイプを提供します。フィルシステムまたはディレクトリーベースのストレージプールの場合は、ファイル形式のタイプ (cow、qcow、vmdk、raw など) を提供します。実際の形式は、<type> 属性を使って指定されます。有効な値の一覧については、プール固有のドキュメントを参照してください。ほとんどのファイル形式には、同じ形式のバッキングストアが必要になりますが、qcow2 形式は異なるバッキングストア形式を許可します。
<permissions>バッキングファイルの権限についての情報を提供します。これには、4 つの子要素が含まれます。<owner> 要素には、数字のユーザー ID が含まれます。<group> 要素には、数字のグループ ID が含まれます。<label> 要素には、MAC (例: SELinux) ラベル文字列が含まれます。