12.8.2. 使用 vHBA 创建存储池
建议您基于 vHBA 定义 libvirt 存储池来保留 vHBA 配置。
使用存储池有两个主要优点:
- libvirt 代码可以使用 virsh 命令输出轻松查找 LUN 的路径,并
- 虚拟机迁移只需要在目标机器上定义和启动具有相同 vHBA 名称的存储池。 要做到这一点,在虚拟机的 XML 配置中必须指定 vHBA LUN、libvirt LUN、libvirt 存储池和卷名称。如需示例,请参阅 第 12.8.3 节 “将虚拟机配置为使用 vHBA LUN”。
创建 SCSI 存储池
要创建 vHBA 配置,首先请创建一个 libvirt'scsi'
存储池 XML 文件,该文件基于 vHBA 使用以下格式。注意确定使用在 过程 12.6, “创建 vHBA” 中创建的 vHBA 作为主机名,修改 vHBA 名称 scsi_ hostN 为存储池配置。在本例中,vHBA 名为 scsi_host5,它在 Red Hat Enterprise Linux 6 libvirt 存储池中指定为 <adapter name='host5'
/>。建议您为<path>
值使用稳定位置,如系统中的/dev/disk/by-{path|id|uuid|label}
位置。有关<path>
和<target>
中的元素的更多信息,请访问 http://libvirt.org/formatstorage.html。在这个示例中,'scsi'
存储池名为 vhbapool_host3.xml :<pool type='scsi'> <name>vhbapool_host3</name> <uuid>e9392370-2917-565e-692b-d057f46512d6</uuid> <capacity unit='bytes'>0</capacity> <allocation unit='bytes'>0</allocation> <available unit='bytes'>0</available> <source> <adapter name='host5'/> </source> <target> <path>/dev/disk/by-path</path> <permissions> <mode>0700</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool>
定义池
要定义存储池(在这个示例中名为 vhbapool_host3 ),请使用 virsh pool-define 命令:# virsh pool-define vhbapool_host3.xml Pool vhbapool_host3 defined from vhbapool_host3.xml
启动池
使用以下命令启动存储池:# virsh pool-start vhbapool_host3 Pool vhbapool_host3 started
启用自动启动
最后,要确保后续主机重启将自动定义虚拟机中使用的 vHBA,设置存储池自动启动功能(在本例中,对于名为 vhbapool_host3的池):# virsh pool-autostart vhbapool_host3