15.4. 创建存储池的参数
根据您需要的存储池类型,您可以修改其 XML 配置文件,并定义特定的存储池类型。本节提供了关于创建各种类型的存储池所需的 XML 参数以及示例。
15.4.1. 基于目录的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于目录的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_dir
参数
下表提供了基于目录的存储池 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='dir'>
|
| 存储池的名称 |
<name>name</name>
|
| 指定目标的路径。这将是用于存储池的路径。 |
<target> <path>target_path</path> </target>
|
示例
以下是一个基于 /guest_images 目录的存储池的 XML 文件示例:
15.4.2. 基于磁盘的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于磁盘的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_disk
参数
下表提供了基于磁盘存储池的 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='disk'>
|
| 存储池的名称 |
<name>name</name>
|
|
指定存储设备的路径。例如: |
<source> <path>source_path</path> </source>
|
| 指定目标设备的路径。这将是用于存储池的路径。 |
<target> <path>target_path</path> </target>
|
示例
以下是基于磁盘存储池的 XML 文件示例:
15.4.3. 基于文件系统的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于文件系统的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_fs
参数
下表提供了基于文件系统的存储池 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='fs'>
|
| 存储池的名称 |
<name>name</name>
|
|
指定分区的路径。例如: |
<source> <device path=device_path />
|
| 文件系统类型,例如 ext4。 |
<format type=fs_type /> </source>
|
| 指定目标的路径。这将是用于存储池的路径。 |
<target> <path>path-to-pool</path> </target>
|
示例
以下是基于 /dev/sdc1 分区的存储池的一个 XML 文件示例:
15.4.4. 基于 iSCSI 的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于 iSCSI 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_iscsi
参数
下表提供了基于 iSCSI 存储池的 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='iscsi'>
|
| 存储池的名称 |
<name>name</name>
|
| 主机的名称 |
<source> <host name=hostname />
|
| iSCSI IQN |
<device path=iSCSI_IQN /> </source>
|
| 指定目标的路径。这将是用于存储池的路径。 |
<target> <path>/dev/disk/by-path</path> </target>
|
| [可选] iSCSI initiator 的 IQN。只有 ACL 将 LUN 限制为特定发起方时才需要。 |
<initiator> <iqn name='initiator0' /> </initiator>
|
可使用 virsh find-storage-pool-sources-as iscsi 命令确定 iSCSI initiator 的 IQN 。
示例
以下是基于指定 iSCSI 设备的存储池的 XML 文件示例:
15.4.5. 基于 LVM 的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于 LVM 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_logical
参数
下表提供了基于 LVM 的存储池 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='logical'>
|
| 存储池的名称 |
<name>name</name>
|
| 存储池设备的路径 |
<source> <device path='device_path' />
|
| 卷组名称 |
<name>VG-name</name>
|
| 虚拟组格式 |
<format type='lvm2' /> </source>
|
| 目标路径 |
<target> <path=target_path /> </target>
|
如果逻辑卷组由多个磁盘分区组成,则可能会列出多个源设备。例如:
示例
以下是基于指定 LVM 的存储池的 XML 文件示例:
15.4.6. 基于 NFS 的存储池参数 复制链接链接已复制到粘贴板!
当您想使用 XML 配置文件创建或修改基于 NFS 的存储池时,您必须包含某些必要的参数。有关这些参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_netfs
参数
下表提供了基于 NFS 的存储池 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='netfs'>
|
| 存储池的名称 |
<name>name</name>
|
| 挂载点所在的网络服务器的主机名。这可以是主机名或 IP 地址。 |
<source> <host name=hostname />
|
| 存储池的格式 | 下面是其中之一: <format type='nfs' />
<format type='cifs' />
|
| 网络服务器上使用的目录 |
<dir path=source_path /> </source>
|
| 指定目标的路径。这将是用于存储池的路径。 |
<target> <path>target_path</path> </target>
|
示例
以下是基于 file_server NFS 服务器的 /home/net_mount 目录的存储池的一个 XML 文件示例:
15.4.7. 使用 vHBA 设备的基于 SCSI 的存储池的参数 复制链接链接已复制到粘贴板!
要为使用虚拟主机适配器总线(vHBA)设备的基于 SCSi 的存储池创建或修改 XML 配置文件,您必须在 XML 配置文件中包括某些必要的参数。有关所需参数的更多信息,请参阅下表。
您可以使用 virsh pool-define 命令来根据指定文件中的 XML 配置创建存储池。例如:
virsh pool-define ~/guest_images.xml
# virsh pool-define ~/guest_images.xml
Pool defined from guest_images_vhba
参数
下表提供了使用 vHBA 的基于 SCSI 的存储池 XML 文件所需的参数列表。
| 描述 | XML |
|---|---|
| 存储池的类型 |
<pool type='scsi'>
|
| 存储池的名称 |
<name>name</name>
|
|
vHBA 的标识符。 |
|
| 目标路径。这将是用于存储池的路径。 |
<target> <path=target_path /> </target>
|
当 <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 中唯一存储池的存储池:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 存储池是使用单个 vHBA 的多个存储池中的一个,并使用
parent属性来识别 SCSI 主机设备:Copy to Clipboard Copied! Toggle word wrap Toggle overflow