13.8. SCSI デバイスで NPIV 仮想アダプター (vHBA) を使用する

NPIV (N_Port ID Virtualization) とは、単一の物理的なファイバーチャンネルホストバスアダプター (HBA) の共有を可能にするソフトウェア技術です。
これにより複数のゲストが複数の物理ホストから同一のストレージを見ることが可能になり、ストレージの移行パスが容易になります。このため、適切なストレージパスが指定されていれば、移行でストレージを作成したりコピーしたりする必要がありません。
仮想化では、仮想ホストバスアダプター (vHBA) が仮想マシンの LUN を制御します。各 vHBA は、独自の WWNN (World Wide Node Name) と WWPN (World Wide Port Name) で識別されます。ストレージへのパスは、WWNN と WWPN の値で決定されます。
このセクションでは、仮想マシン上で vHBA を設定する方法について説明します。Red Hat Enterprise Linux 6 では、ホストの再起動後における vHBA 設定維持をサポートしていません。ホストの再起動後は、vHBA 関連の設定を確認してください。

13.8.1. vHBA の作成

手順13.8 vHBA の作成

  1. ホストシステム上で HBA を見つける

    ホストシステム上で HBA を見つけるには、ホストシステム上の SCSI デバイスを調べて、vport 機能のある scsi_host を探します。
    以下のコマンドを実行して scsi_host リストを表示します。
    # virsh nodedev-list --cap scsi_host
    scsi_host0
    scsi_host1
    scsi_host2
    scsi_host3
    scsi_host4
    scsi_host で以下のコマンドを実行し、デバイス XML で <capability type='vport_ops'> の行を調べます。これは、vport 機能のある scsi_host を示します。
    # virsh nodedev-dumpxml scsi_hostN
  2. HBA の詳細を確認する

    virsh nodedev-dumpxml HBA_device コマンドを使って HBA の詳細をチェックします。
    virsh nodedev-dumpxml コマンドからの XML 出力では、<name><wwnn>、および <wwpn> のフィールドが一覧表示されます。これらは vHBA の作成に使用されます。<max_vports> の値は、サポートされる vHBA の最大数を示します。
     # virsh nodedev-dumpxml scsi_host3
    <device>
      <name>scsi_host3</name>
      <path>/sys/devices/pci0000:00/0000:00:04.0/0000:10:00.0/host3</path>
      <parent>pci_0000_10_00_0</parent>
      <capability type='scsi_host'>
        <host>3</host>
        <capability type='fc_host'>
          <wwnn>20000000c9848140</wwnn>
          <wwpn>10000000c9848140</wwpn>
          <fabric_wwn>2002000573de9a81</fabric_wwn>
        </capability>
        <capability type='vport_ops'>
          <max_vports>127</max_vports>
          <vports>0</vports>
        </capability>
      </capability>
    </device>
    この例では、<max_vports> 値は HBA 設定で使用できる 127 の仮想ポートがあることを示しています。<vports> 値は、現在使用中の仮想ポートの数を示します。これらの値は、vHBA 作成後に更新されます。
  3. vHBA ホストデバイスの作成

    vHBA ホスト用に以下のような XML ファイルを作成します (この例では、ファイル名 vhba_host3.xml)。
    # cat vhba_host3.xml
       <device>
         <parent>scsi_host3</parent>
         <capability type='scsi_host'>
           <capability type='fc_host'>
           </capability>
         </capability>
       </device>
    <parent> フィールドでは、この vHBA デバイスに関連付ける HBA デバイスを指定します。<device> タグ内の詳細は、ホスト用の vHBA デバイスを作成するために次のステップで使用します。nodedev XML 形式についての詳細は、http://libvirt.org/formatnode.html を参照してください。
  4. vHBA ホストデバイス上で新規 vHBA を作成する

    vhba_host3 上で vHBA を作成するには、virsh nodedev-create コマンドを使用します。
    # virsh nodedev-create vhba_host3.xml
    Node device scsi_host5 created from vhba_host3.xml
  5. vHBA の確認

    新規 vHBA (scsi_host5) の詳細を virsh nodedev-dumpxml コマンドで確認します。
    # virsh nodedev-dumpxml scsi_host5
    <device>
      <name>scsi_host5</name>
      <path>/sys/devices/pci0000:00/0000:00:04.0/0000:10:00.0/host3/vport-3:0-0/host5</path>
      <parent>scsi_host3</parent>
      <capability type='scsi_host'>
        <host>5</host>
        <capability type='fc_host'>
          <wwnn>5001a4a93526d0a1</wwnn>
          <wwpn>5001a4ace3ee047d</wwpn>
          <fabric_wwn>2002000573de9a81</fabric_wwn>
        </capability>
      </capability>
    </device>