15.4. 创建存储池的参数
根据您需要的存储池类型,您可以修改其 XML 配置文件,并定义特定的存储池类型。本节提供了关于创建各种类型的存储池所需的 XML 参数以及示例。
15.4.1. 基于目录的存储池参数
当您想使用 XML 配置文件创建或修改基于目录的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_dir
参数
下表提供了基于目录的存储池 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
指定目标的路径。这将是用于存储池的路径。 |
|
示例
以下是一个基于 /guest_images
目录的存储池的 XML 文件示例:
<pool type='dir'> <name>dirpool</name> <target> <path>/guest_images</path> </target> </pool>
其它资源
15.4.2. 基于磁盘的存储池参数
当您想使用 XML 配置文件创建或修改基于磁盘的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_disk
参数
下表提供了基于磁盘存储池的 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
指定存储设备的路径。例如: |
|
指定目标设备的路径。这将是用于存储池的路径。 |
|
示例
以下是基于磁盘存储池的 XML 文件示例:
<pool type='disk'> <name>phy_disk</name> <source> <device path='/dev/sdb'/> <format type='gpt'/> </source> <target> <path>/dev</path> </target> </pool>
其它资源
15.4.3. 基于文件系统的存储池参数
当您想使用 XML 配置文件创建或修改基于文件系统的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_fs
参数
下表提供了基于文件系统的存储池 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
指定分区的路径。例如: |
|
文件系统类型,例如 ext4。 |
|
指定目标的路径。这将是用于存储池的路径。 |
|
示例
以下是基于 /dev/sdc1
分区的存储池的一个 XML 文件示例:
<pool type='fs'> <name>guest_images_fs</name> <source> <device path='/dev/sdc1'/> <format type='auto'/> </source> <target> <path>/guest_images</path> </target> </pool>
其它资源
15.4.4. 基于 iSCSI 的存储池参数
当您想使用 XML 配置文件创建或修改基于 iSCSI 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_iscsi
参数
下表提供了基于 iSCSI 存储池的 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
主机的名称 |
|
iSCSI IQN |
|
指定目标的路径。这将是用于存储池的路径。 |
|
[可选] iSCSI initiator 的 IQN。只有 ACL 将 LUN 限制为特定发起方时才需要。 |
|
可使用 virsh find-storage-pool-sources-as
iscsi 命令确定 iSCSI initiator 的 IQN 。
示例
以下是基于指定 iSCSI 设备的存储池的 XML 文件示例:
<pool type='iscsi'> <name>iSCSI_pool</name> <source> <host name='server1.example.com'/> <device path='iqn.2010-05.com.example.server1:iscsirhel7guest'/> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>
15.4.5. 基于 LVM 的存储池参数
当您想使用 XML 配置文件创建或修改基于 LVM 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_logical
参数
下表提供了基于 LVM 的存储池 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
存储池设备的路径 |
|
卷组名称 |
|
虚拟组格式 |
|
目标路径 |
|
如果逻辑卷组由多个磁盘分区组成,则可能会列出多个源设备。例如:
<source> <device path='/dev/sda1'/> <device path='/dev/sdb3'/> <device path='/dev/sdc2'/> ... </source>
示例
以下是基于指定 LVM 的存储池的 XML 文件示例:
<pool type='logical'> <name>guest_images_lvm</name> <source> <device path='/dev/sdc'/> <name>libvirt_lvm</name> <format type='lvm2'/> </source> <target> <path>/dev/libvirt_lvm</path> </target> </pool>
其它资源
15.4.6. 基于 NFS 的存储池参数
当您想使用 XML 配置文件创建或修改基于 NFS 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_netfs
参数
下表提供了基于 NFS 的存储池 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
挂载点所在的网络服务器的主机名。这可以是主机名或 IP 地址。 |
|
存储池的格式 | 下面是其中之一:
|
网络服务器上使用的目录 |
|
指定目标的路径。这将是用于存储池的路径。 |
|
示例
以下是基于 file_server
NFS 服务器的 /home/net_mount
目录的存储池的一个 XML 文件示例:
<pool type='netfs'> <name>nfspool</name> <source> <host name='file_server'/> <format type='nfs'/> <dir path='/home/net_mount'/> </source> <target> <path>/var/lib/libvirt/images/nfspool</path> </target> </pool>
其它资源
15.4.7. 使用 vHBA 设备的基于 SCSI 的存储池的参数
要为使用虚拟主机适配器总线(vHBA)设备的基于 SCSi 的存储池创建或修改 XML 配置文件,您必须在 XML 配置文件中包括某些必要的参数。有关所需参数的更多信息,请参阅下表。
您可以使用 virsh pool-define
命令来根据指定文件中的 XML 配置创建存储池。例如:
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_vhba
参数
下表提供了使用 vHBA 的基于 SCSI 的存储池 XML 文件所需的参数列表。
描述 | XML |
---|---|
存储池的类型 |
|
存储池的名称 |
|
vHBA 的标识符。 |
|
目标路径。这将是用于存储池的路径。 |
|
当 <path>
字段是 /dev/
时,libvirt
会为卷设备路径生成一个唯一的短设备路径。例如:/dev/sdc
。否则会使用物理主机路径。例如:/dev/disk/by-path/pci-0000:10:00.0-fc-0x5006016044602198-lun-0
。唯一的短设备路径允许多个存储池在多个虚拟机(VM)中列出相同的卷。如果多个虚拟机使用了物理主机路径,则可能会出现重复的设备类型警告。
可以在 <adapter>
字段中使用 parent
属性来通过不同的路径标识 NPIV LUN 的物理 HBA 父级。此字段 scsi_hostN
与 vports
和 max_vports
属性相结合,以完成父识别。parent
、parent_wwnn
、parent_wwpn
或 parent_fabric_wwn
属性提供了不同程度的保证,确保在主机重启后使用相同的 HBA。
-
如果没有指定
parent
,libvirt
将使用支持 NPIV 的第一个scsi_hostN
适配器。 -
如果只指定了
parent
,则在配置中添加了额外的 SCSI 主机适配器时可能会出现问题。 -
如果指定了
parent_wwnn
或parent_wwpn
,则在主机重启后使用相同的 HBA。 -
如果使用
parent_fabric_wwn
,则在主机重新启动后,将选择同一结构上的 HBA ,而不考虑所用的scsi_hostN
。
示例
以下是使用 vHBA 的基于 SCSI 的存储池的 XML 文件示例。
它是 HBA 中唯一存储池的存储池:
<pool type='scsi'> <name>vhbapool_host3</name> <source> <adapter type='fc_host' wwnn='5001a4a93526d0a1' wwpn='5001a4ace3ee047d'/> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>
存储池是使用单个 vHBA 的多个存储池中的一个,并使用
parent
属性来识别 SCSI 主机设备:<pool type='scsi'> <name>vhbapool_host3</name> <source> <adapter type='fc_host' parent='scsi_host3' wwnn='5001a4a93526d0a1' wwpn='5001a4ace3ee047d'/> </source> <target> <path>/dev/disk/by-path</path> </target> </pool>