Red Hat Training

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

20.16. Devices

この XML 要素のセットはすべて、ゲスト仮想マシンのドメインに提供されるデバイスを説明するために使用されます。以下のデバイスはすべて、主な devices 要素の子として示されます。
以下の仮想デバイスに対応しています。
  • virtio-scsi-pci - PCI バスストレージデバイス
  • virtio-9p-pci - PCI バスストレージデバイス
  • virtio-blk-pci - PCI バスストレージデバイス
  • virtio-net-pci - PCI バスネットワークデバイス (virtio-net としても知られる)
  • virtio-serial-pci - PCI バス入力デバイス
  • virtio-balloon-pci - PCI バスメモリーバルーンデバイス
  • virtio-rng-pci - PCI バス仮想乱数発生器
重要
virtio デバイスを作成し、ベクトル数を 32 より大きい値に設定すると、デバイスは、Red Hat Enterprise Linux 6 ではゼロに設定されているかのように動作しますが、Enterprise Linux 7 では動作しません。生成されるベクトル設定の不一致により、いずれかのプラットフォームの virtio デバイスのベクトル数が 33 以上に設定されていると、移行エラーが発生します。したがって、vector の値を 32 より大きく設定することは推奨されません。virtio-balloon-pci および virtio-rng-pci を除くすべての virtio デバイスは、vector 引数を受け入れます。

図20.22 デバイス - 子要素


  ...
  <devices>
    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
  </devices>
  ...
<emulator> 要素の内容は、デバイスモデルエミュレーターバイナリーへの完全修飾パスを指定します。capabilities XML は、各特定のドメインタイプまたはアーキテクチャーの組み合わせに使用する推奨されるデフォルトエミュレーターを指定します。

20.16.1. ハードドライブ、フロッピーディスク、CDROM

ドメイン XML のこのセクションでは、フロッピー、ハードディスク、CD-ROM、準仮想化ドライバーなど、ディスクのように見えるデバイスをディスク要素で指定します。

図20.23 デバイス - ハードドライブ、フロッピーディスク、CDROM


 ...
  <devices>
    <disk type='file' snapshot='external'>
      <driver name="tap" type="aio" cache="default"/>
      <source file='/var/lib/xen/images/fv0' startupPolicy='optional'>
        <seclabel relabel='no'/>
      </source>
      <target dev='hda' bus='ide'/>
      <iotune>
        <total_bytes_sec>10000000</total_bytes_sec>
        <read_iops_sec>400000</read_iops_sec>
        <write_iops_sec>100000</write_iops_sec>
      </iotune>
      <boot order='2'/>
      <encryption type='...'>
        ...
      </encryption>
      <shareable/>
      <serial>
        ...
      </serial>
    </disk>
      ...
    <disk type='network'>
      <driver name="qemu" type="raw" io="threads" ioeventfd="on" event_idx="off"/>
      <source protocol="sheepdog" name="image_name">
        <host name="hostname" port="7000"/>
      </source>
      <target dev="hdb" bus="ide"/>
      <boot order='1'/>
      <transient/>
      <address type='drive' controller='0' bus='1' unit='0'/>
    </disk>
    <disk type='network'>
      <driver name="qemu" type="raw"/>
      <source protocol="rbd" name="image_name2">
        <host name="hostname" port="7000"/>
      </source>
      <target dev="hdd" bus="ide"/>
      <auth username='myuser'>
        <secret type='ceph' usage='mypassid'/>
      </auth>
    </disk>
    <disk type='block' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <target dev='hdc' bus='ide' tray='open'/>
      <readonly/>
    </disk>
    <disk type='block' device='lun'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sda'/>
      <target dev='sda' bus='scsi'/>
      <address type='drive' controller='0' bus='0' target='3' unit='0'/>
    </disk>
    <disk type='block' device='disk'>
      <driver name='qemu' type='raw'/>
      <source dev='/dev/sda'/>
      <geometry cyls='16383' heads='16' secs='63' trans='lba'/>
      <blockio logical_block_size='512' physical_block_size='4096'/>
      <target dev='hda' bus='ide'/>
    </disk>
    <disk type='volume' device='disk'>
      <driver name='qemu' type='raw'/>
      <source pool='blk-pool0' volume='blk-pool0-vol0'/>
      <target dev='hda' bus='ide'/>
    </disk>
  </devices>
  ...

20.16.1.1. ディスク要素

<disk> 要素は、ディスクを記述するための主要なコンテナーです。属性type は、<disk> 要素で使用できます。以下のタイプが許可されています。
  • file
  • block
  • dir
  • network
詳細については、ディスク要素を参照してください。

20.16.1.2. ソース要素

<disk type='file''> の場合、file 属性は、ディスクを保持しているファイルへの完全修飾パスを指定します。<disk type='block'> の場合、dev 属性は、ディスクとして機能するホスト物理マシンデバイスへのパスを指定します。fileblock の両方で、以下で説明する 1 つ以上のオプションのサブ要素 seclabel を使用して、そのソースファイルのみのドメインセキュリティーラベル付けポリシーを上書きできます。ディスクタイプが dir の場合、dir 属性は、ディスクとして使用するディレクトリーへの完全修飾パスを指定します。ディスクタイプが network の場合、protocol 属性は、要求されたイメージにアクセスするためのプロトコルを指定します。可能な値は、nbdrbdsheepdog、または gluster です。
プロトコル属性が rbdsheepdog、または gluster の場合、使用するボリュームやイメージを指定するには、追加の属性 name が必須です。ディスクのタイプが network の場合、source には、接続するホスト物理マシンを指定するために使用される type='dir' および type='network' を含む、ゼロ以上の host サブ要素が含まれることがあります。cdrom またはフロッピー (デバイス属性) を表すfileディスクタイプで、ソースファイルにアクセスできない場合にディスクをどうするかという動作のポリシーを定義できます。これは、startupPolicy 属性を次の値で操作することによって行われます。
  • mandatory は、何らかの理由で欠落している場合に障害の原因となります。これはデフォルト設定です。
  • requisite は、起動時に欠落している場合は失敗し、移行/復元/復帰時に欠落している場合はドロップします。
  • optional - 起動の試行時にない場合はドロップします。

20.16.1.3. ミラー要素

この要素は、ハイパーバイザーが BlockCopy 操作を起動し、属性ファイルの <mirror> の場所が最終的にソースと同じ内容を持ち、属性形式のファイル形式 (ソースの形式とは異なる場合あり) の場合に存在します。属性 ready が存在する場合は、ディスクがピボットする準備ができていることが分かっています。存在しない場合は、ディスクが依然としてコピー中である可能性があります。現在、この要素は出力でのみ有効で、入力では無視されます。

20.16.1.4. ターゲット要素

<target> 要素は、ディスクがゲスト仮想マシン OS に公開されるバス/デバイスを制御します。dev 属性は、論理デバイスの名前を示します。実際のデバイス名が、ゲスト仮想マシンの OS のデバイス名にマッピングされる保証はありません。オプションのバス属性では、エミュレートするディスクデバイスの種類を指定します。指定できる値はドライバー固有で、一般的な値は idescsivirtioxenusb、または sata です。省略した場合、バスタイプはデバイス名のスタイルから推測されます。たとえば、'sda' という名前のデバイスは通常、SCSI バスを使用してエクスポートされます。オプションの属性 tray は、リムーバブルディスク (CD-ROM やフロッピーディスクなど) のトレイステータスを示します。値は open または closed のいずれかです。デフォルト設定は closed です。詳細は、ターゲット要素を参照してください。

20.16.1.5. iotune

オプションの <iotune> 要素は、デバイスごとに異なる値を使用して、追加のデバイスごとの I / O チューニングを提供する機能を提供します (これを、ドメインにグローバルに適用するblkiotune要素と比較してください)。この要素には、次のオプションのサブ要素があります。指定されないか、または値 0 が指定されたサブ要素はすべて制限がないことを意味します。
  • <total_bytes_sec> - 合計スループット制限 (バイト/秒)。この要素は、<read_bytes_sec> または <write_bytes_sec> とは併用できません。
  • <read_bytes_sec> - 読み取りスループットの制限 (バイト/秒)。
  • <write_bytes_sec> - 書き込みスループットの制限 (バイト/秒)。
  • <total_iops_sec> - 1 秒あたりの I/O 操作の合計です。この要素は、<read_iops_sec> または <write_iops_sec> とは併用できません。
  • <read_iops_sec> - 1 秒あたりの読み取り I/O 操作数。
  • <write_iops_sec> - 1 秒あたりの書き込み I/O 操作数。

20.16.1.6. driver

任意の <driver> 要素を使用すると、ディスクの提供に使用されるハイパーバイザードライバーに関する詳細を指定できます。以下のオプションが使用できます。
  • ハイパーバイザーが複数のバックエンドドライバーをサポートする場合、name 属性はプライマリーバックエンドドライバー名を選択し、任意の type 属性はサブタイプを提供します。可能なタイプのリストについては、ドライバー要素を参照してください。
  • オプションの cache 属性は、キャッシュメカニズムを制御します。使用できる値は、defaultnonewritethroughwritebackdirectsync (writethroughと同様ですが、ホスト物理マシンのページキャッシュをバイパスします) および unsafe (ホスト物理マシンはすべてのディスク io をキャッシュする場合があります) です。ゲスト仮想マシン仮想マシンからの同期要求は無視されます)。
  • オプションの error_policy 属性は、ハイパーバイザーがディスクの読み取りまたは書き込みエラーでどのように動作するかを制御します。可能な値は、stopreportignore、および enospaceです。error_policy のデフォルト設定は report です。読み取りエラーのみに対する動作を制御するオプションのrerror_policyもあります。rerror_policy が指定されていない場合、error_policy は読み取りおよび書き込みエラーの両方に使用されます。rerror_policy が指定されている場合は、読み取りエラーの error_policy をオーバーライドします。また、enospace は読み取りエラーの有効なポリシーではないため、error_policyenospace に設定され、no rerror_policy が指定されていない場合は、読み取りエラーのデフォルト設定である report が使用される点に注意してください。
  • オプションの io 属性は、I/O の特定のポリシーを制御します。qemu ゲスト仮想マシン仮想マシンは threadsnative をサポートします。オプションの ioeventfd 属性を使用すると、ディスクデバイスのドメイン I/O の非同期処理を設定できます。デフォルトは、ハイパーバイザーの判断に任されます。指定できる値は onoff です。これを有効にすると、別のスレッドが I/O を処理している間にゲスト仮想マシンの仮想マシンを実行できます。通常、I/O の実行中にシステム CPU の使用率が高くなったゲスト仮想マシンの仮想マシンは、この恩恵を受けます。一方、ホストの物理マシンが過負荷になると、ゲスト仮想マシンの仮想マシンの I/O レイテンシーが増加します。io を操作する必要があることを完全に証明している場合を除き、デフォルト設定を変更せず、ハイパーバイザーが設定を指示できるようにすることを強くお勧めします。
  • オプションの event_idx 属性は、デバイスイベント処理のいくつかの側面を制御し、on または off のいずれかに設定できます。on の場合、ゲスト仮想マシン仮想マシンの割り込みと終了の数を減らします。デフォルトではハイパーバイザーが決定し、デフォルトの設定は on になります。この動作が最適ではない状況がある場合、この属性は機能を強制的に off にする方法を提供します。event_idx を操作する必要があることを完全に証明している場合を除き、デフォルト設定を変更せず、ハイパーバイザーが設定を指示できるようにすることを強くお勧めします。
  • オプションの copy_on_read 属性は、リードバックファイルをイメージファイルにコピーするかどうかを制御します。使用できる値は、on または <off> のいずれかです。copy-on-read は、同じバッキングファイルセクターに繰り返しアクセスすることを回避し、バッキングファイルが低速のネットワーク上にある場合に役立ちます。デフォルトでは、copy-on-readoff です。

20.16.1.7. 追加のデバイス要素

device 要素内では、以下の属性を使用できます。
  • <boot> - ディスクが起動可能であることを指定します。

    追加の起動値

    • <order> - システムの起動時にデバイスを試行する順序を指定します。
    • <デバイスごと>のブート要素は、BIOS ブートローダーセクションの一般的なブート要素とは併用できません。
  • <encryption> - ボリュームの暗号化方法を指定します。詳細については、ストレージの暗号化ページを参照してください。
  • <readonly> - ゲスト仮想マシンがデバイスを変更できないことを示します。この設定は、attribute device='cdrom' を使用するディスクの既定値です。
  • 共有可能 デバイスがドメイン間で共有される必要があることを示しています (ハイパーバイザーと OS が対応している場合)。shareable を使用すると、そのデバイスに cache='no' が指定されます。
  • <transient> - デバイスのコンテンツの変更は、ゲスト仮想マシンの仮想マシンの終了時に自動的に元に戻す必要があることを示します。一部のハイパーバイザーでは、ディスクに transient マークを付けると、ドメインが移行またはスナップショットに参加できなくなります。
  • <serial> - ゲスト仮想マシンのハードドライブのシリアル番号を指定します。(例: <serial>WD-WMAP9A966149</serial>)
  • <wwn> - 仮想ハードディスクまたは CD-ROM ドライブの WWN (World Wide Name) を指定します。16 桁の 16 進数で設定される必要があります。
  • <vendor> - 仮想ハードディスクまたは CD-ROM デバイスのベンダーを指定します。印刷可能な 8 文字を超えてはなりません。
  • <product> - 仮想ハードディスクまたは CD-ROM デバイスの製品を指定します。印刷可能な 16 文字を超えてはなりません。
  • <host> - 4 つの属性をサポートします: viznameporttransportsocket。それぞれ、ホスト名、ポート番号、トランスポートタイプ、およびソケットへのパスを指定します。この要素の意味と要素数は、以下に示すように protocol 属性により異なります。

    追加のホスト属性

    • nbd - nbd-server を実行しているサーバーを指定します。使用できるのは、1 台のホスト物理マシンだけです。
    • rbd - RBD タイプのサーバーを監視し、1 つ以上のホスト物理マシンで使用できます。
    • sheepdog - sheepdog サーバーのいずれかを指定し (デフォルトは localhost:7000)、ホスト物理マシンの 1 つを使用するか、またはいずれとも使用することができません。
    • gluster - glusterd デーモンを実行しているサーバーを指定します。使用できる物理マシンは 1 つだけです。トランスポート属性の有効な値は、tcprdma、または unix です。何も指定しないと、tcp が想定されます。transport が unix の場合、socket 属性は unix ソケットへのパスを指定します。
  • <address> - ディスクを、コントローラーの指定したスロットに関連付けます。実際の <controller> デバイスは多くの場合、推測できますが、明示的に指定することもできます。type 属性は必須で、通常は pci または drive です。pci コントローラーの場合、busslot、および function の追加属性と、オプションの domain および multifunction が存在する必要があります。multifunction のデフォルトは off です。drive コントローラーでは、追加の属性 controllerbustarget、および unit が利用できます。それぞれの属性のデフォルト設定は 0 です。
  • auth - ソースへのアクセスに必要な認証情報を提供します。これには、認証時に使用するユーザー名を識別する必須属性usernameと、必須属性typeを持つサブ要素secret が含まれます。詳細は、デバイス要素を参照してください。
  • geometry - ジオメトリー設定を上書きする機能を提供します。これは、主に S390 DASD ディスクまたは古い DOS ディスクに役立ちます。
  • cyls - シリンダーの数を指定します。
  • heads - ヘッドの数を指定します。
  • secs - トラックごとのセクター数を指定します。
  • trans - BIOS-Translation-Modus を指定し、nonelba、または auto の値を設定できます
  • blockio - ブロックデバイスを、以下のブロックデバイスプロパティーのいずれかで上書きできます。

    blockio オプション

    • logical_block_size - ゲスト仮想マシン仮想マシン OS にレポートし、ディスク I/O の最小単位を記述します。
    • physical_block_size - ゲスト仮想マシンの仮想マシン OS を報告し、ディスクのハードウェアセクターサイズを説明します。これは、ディスクデータの調整に関連付けることができます。