10.5. ゲスト仮想マシンのストレージコントローラーの管理

Red Hat Enterprise Linux 6.4 より、Red Hat Enterprise Linux 6.4 以降を実行するゲスト仮想マシンに SCSI と virtio-SCSI デバイスが追加することがサポートされています。virtio ディスクとは異なり、SCSI デバイスには、ゲスト仮想マシン内にコントローラーが存在することが求められます。Virtio-SCSI は、SCSI LUN に直接接続する機能を提供し、virtio-blk と比較するとスケーラビリティーが改善されています。virtio-SCSI の利点は、28 デバイスしか処理できず、PCI スロットを使い果たす virtio-blk とは異なり、数百のデバイスを処理できる点にあります。Virtio-SCSI は、以下の機能を使ってターゲットデバイスの機能セットを継承することを可能にします。
  • virtio-scsi コントローラーを介して仮想ハードドライブまたは CD を割り当てる
  • QEMU scsi-block デバイスを介して物理 SCSI デバイスをホストからゲストにパススルーする
  • 28-デバイスの制限のある virtio-blk とは異なり、1 ゲストごとに数百のデバイスの使用を可能にする
このセクションでは、仮想 SCSI コントローラー (別名 "ホストバスアダプター": HBA) を作成し、ゲスト仮想マシンに SCSI ストレージを追加するために必要なステップを詳しく説明します。

手順10.10 仮想 SCSI コントローラーを作成する

  1. ゲスト仮想マシン (Guest1) の設定を表示して、事前に存在している SCSI コントローラーを探します。
    # virsh dumpxml Guest1 | grep controller.*scsi
    デバイスコントローラーが存在する場合は、このコマンドが以下のように一行または複数行の出力を行います。
    <controller type='scsi' model='virtio-scsi' index='0'/>
  2. 先のステップでデバイスコントローラーが表示されない場合、新しいファイルでその 1 つを記述し、それを以下のステップを実行して仮想マシンに追加します。
    1. 新しいファイルに <controller> 要素を書き込むことによってデバイスコントローラーを作成し、このファイルを XML 拡張子を付けて保存します。たとえば、NewHBA.xml のようになります。
      <controller type='scsi' model='virtio-scsi'/>
    2. virtio-scsi-controller.xml で作成したばかりのデバイスコントローラーを使用中のゲスト仮想マシン (例: Guest1) に関連付けます。
      # virsh attach-device --config Guest1 ~/virtio-scsi-controller.xml
      この例では、 --config オプションはディスク接続の場合と同様の動作をします。詳細については 手順14.2「ゲストに物理ブロックデバイスを追加する」 を参照してください。
  3. 新しい SCSI ディスクまたは CD-ROM を追加します。「ゲストにファイルベースのストレージを追加する」「ゲストにハードドライブと他のブロックデバイスを追加する」 のセクションに記載されている方法に従って、新しいディスクを追加します。SCSI ディスクを作成するには、sd で始まるターゲットデバイス名を指定してください。
    # virsh attach-disk Guest1 /var/lib/libvirt/images/FileName.img sdb --cache none
    ゲスト仮想マシン内のドライバーのバージョンによっては、新しいディスクが実行中のゲスト仮想マシンですぐには検出されない場合があります。『Red Hat Enterprise Linux ストレージ管理ガイド』 の手順に従ってください。