14.10. 创建 vHBA

虚拟主机总线适配器(vHBA)设备将主机系统连接到 SCSI 设备,对于创建基于 SCSI 的存储池是必需的。

您可以通过在 XML 配置文件中定义 vHBA 设备来创建它。

流程

  1. 使用 virsh nodedev-list --cap vports 命令定位主机系统上的 HBA。

    以下示例显示了支持 vHBA 的两个 HBA 的主机:

    # virsh nodedev-list --cap vports
    scsi_host3
    scsi_host4
  2. 使用 virsh nodedev-dumpxml HBA_device 命令查看 HBA 的详情。

    # virsh nodedev-dumpxml scsi_host3

    命令的输出列出了用于创建 vHBA 的 <name><wwnn><wwpn> 字段。<max_vports> 显示支持的 vHBA 的最大数。例如:

    <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>
        <unique_id>0</unique_id>
        <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 主机创建类似如下的 XML 文件。在这些示例中,该文件名为 vhba_host3.xml

    本例使用 scsi_host3 来描述父 vHBA。

    <device>
      <parent>scsi_host3</parent>
      <capability type='scsi_host'>
        <capability type='fc_host'>
        </capability>
      </capability>
    </device>

    这个示例使用 WWNN/WWPN 对描述父 vHBA。

    <device>
      <name>vhba</name>
      <parent wwnn='20000000c9848140' wwpn='10000000c9848140'/>
      <capability type='scsi_host'>
        <capability type='fc_host'>
        </capability>
      </capability>
    </device>
    注意

    WWNN 和 WWPN 值必须与上一步中 HBA 详情中的值匹配。

    <parent> 字段指定与这个 vHBA 设备关联的 HBA 设备。下一步中使用 <device> 标签中的详细信息,来为主机创建新的 vHBA 设备。有关 nodedev XML 格式的更多信息,请参阅 libvirt 上游页面

    注意

    virsh 命令不提供定义 parent_wwnnparent_wwpnparent_fabric_wwn 属性的方式。

  4. 使用 virsh nodev-create 命令,根据上一步中创建的 XML 文件创建 VHBA。

    # virsh nodedev-create vhba_host3
    Node device scsi_host5 created from vhba_host3.xml

验证

  • 使用 virsh nodedev-dumpxml 命令验证新 vHBA 的详情(scsi_host5):

    # 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>
        <unique_id>2</unique_id>
        <capability type='fc_host'>
          <wwnn>5001a4a93526d0a1</wwnn>
          <wwpn>5001a4ace3ee047d</wwpn>
          <fabric_wwn>2002000573de9a81</fabric_wwn>
        </capability>
      </capability>
    </device>