精简预配的共享 GFS2 块存储
精简预配通过将磁盘存储空间分配给 VDI(因为数据会写入虚拟磁盘)来更好地利用可用存储,而非提前分配 VDI 的完整虚拟大小。通过精简预配,可以大大降低共享存储阵列上所需的空间量以及您的总体拥有成本 (TCO)。
在以下情况下,面向共享块存储进行精简预配尤其适用:
- 您希望提高空间效率。图像是稀疏的,而不是厚厚地分配。
- 您希望降低存储阵列上的每秒 I/O 操作数。GFS2 SR 是第一种支持在共享块存储上进行存储读取缓存的 SR 类型。
- 您对多个虚拟机使用公共基础映像。这样,各个 VM 的映像通常会占用更少的空间。
- 您使用快照。每个快照都是一个映像,并且每个映像现在都是稀疏的。
- 您的存储不支持 NFS,仅支持块存储。如果您的存储支持 NFS,我们建议您使用 NFS 而非 GFS2。
- 您希望创建大小大于 2 TiB 的 VDI。GFS2 SR 最大支持大小为 16 TiB 的 VDI。
共享 GFS2 类型将磁盘表示为在 iSCSI 或 HBA LUN 上创建的文件系统。GFS2 SR 上存储的 VDI 以 QCOW2 映像格式存储。
必备条件
开始操作之前,请确保满足以下必备条件:
-
群集池中的所有 Citrix Hypervisor 服务器都必须至少具有 2 GiB 的控制域内存。
-
群集中的所有主机都必须使用群集网络的静态 IP 地址。
-
我们建议您仅在至少包含三个主机的池中使用群集,因为包含两个主机的池对自主防护整个池非常敏感。
- 如果在池中的主机之间设置了防火墙,请确保主机能够使用以下端口在群集网络中进行通信:
- TCP:8892、21064
- UDP:5404、5405
有关详细信息,请参阅 Citrix 技术使用的通信端口。
-
如果要对现有池进行群集操作,请务必禁用高可用性。启用群集功能后,可以重新启用高可用性。
-
我们强烈建议您为群集池使用不用于任何其他流量的绑定网络。
- 您有一个基于块的存储设备,该设备对资源池中的所有Citrix Hypervisor 服务器均可见。
设置群集池以使用共享 GFS2 SR
要使用共享 GFS2 存储,Citrix Hypervisor 资源池必须是群集池。请先在您的池中启用群集,然后再创建 GFS2 SR。
注意:
群集池的行为与非群集池不同。有关群集行为的信息,请参阅群集池。
如果喜欢,可以使用 XenCenter 在池中设置群集功能。有关详细信息,请参阅 XenCenter 产品文档。
要使用 xe CLI 创建群集池,请执行以下操作:
-
创建绑定网络以用作群集网络。
注意:
我们强烈建议您为群集池使用专用的绑定网络。请勿将此网络用于任何其他流量。
在希望作为池主服务器的 Citrix Hypervisor 服务器上,完成以下步骤:
-
在 Citrix Hypervisor 服务器上打开控制台。
-
使用以下命令命名您的资源池:
xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
-
使用以下命令创建用于绑定 NIC 的网络:
xe network-create name-label=bond0
此时将返回新网络的 UUID。
-
使用以下命令查找要在绑定中使用的 PIF 的 UUID:
xe pif-list
-
在主动-主动模式、主动-被动模式或 LACP 绑定模式下创建绑定网络。根据要使用的绑定模式,完成以下操作之一:
-
要在主动-主动模式(默认模式)下配置绑定,请使用
bond-create
命令创建绑定。使用逗号分隔参数,指定新创建的网络 UUID 和要绑定的 PIF 的 UUID:xe bond-create network-uuid=<network_uuid> / pif-uuids=<pif_uuid_1>,<pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4>
绑定两个 NIC 时,请键入两个 UUID;绑定四个 NIC 时,请输入四个 UUID。在运行该命令之后,将返回该绑定的 UUID。
-
要在主动-被动或 LACP 绑定模式下配置绑定,请使用相同的语法,添加可选的
mode
参数并指定lacp
或active-backup
:xe bond-create network-uuid=<network_uuid> pif-uuids=<pif_uuid_1>, / <pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4> / mode=balance-slb | active-backup | lacp
-
在池主服务器上创建绑定网络后,当您将其他 Citrix Hypervisor 服务器加入池时,网络和绑定信息将自动复制到加入的服务器。
有关详细信息,请参阅网络连接。
-
-
创建至少包含三台 Citrix Hypervisor 服务器的资源池。
在每个(非主)池成员的 Citrix Hypervisor 服务器上重复执行以下步骤:
- 在 Citrix Hypervisor 服务器上打开控制台。
-
使用以下命令将 Citrix Hypervisor 服务器加入池主服务器上的池:
xe pool-join master-address=master_address master-username=administrators_username master-password=password
master-address
参数的值必须设置为作为池主服务器的 Citrix Hypervisor 服务器的完全限定域名。安装池主服务器时,password
必须为设置的管理员密码。
有关详细信息,请参阅主机和资源池。
-
对于属于此网络的每个 PIF,请设置
disallow-unplug=true
。-
使用以下命令查找属于网络的 PIF 的 UUID:
xe pif-list
-
在资源池中的 Citrix Hypervisor 服务器上运行以下命令:
xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
-
-
在您的池上启用群集功能。在资源池中的 Citrix Hypervisor 服务器上运行以下命令:
xe cluster-pool-create network-uuid=<network_uuid>
提供您在前面步骤中创建的绑定网络的 UUID。
请务必在您的群集池与 GFS2 SR 之间设置存储多路径。有关详细信息,请参阅存储多路径。
创建共享 GFS2 SR
可以在 iSCSI 或 HBA LUN 上创建共享 GFS2 SR。
通过 iSCSI SR 创建共享 GFS2
可以使用 XenCenter 通过 iSCSI SR 创建 GFS2。有关详细信息,请参阅 XenCenter 产品文档中的软件 iSCSI 存储。
或者,可以使用 xe CLI 通过 iSCSI SR 创建 GFS2。
GFS2 SR 的 Device-config 参数:
参数名称 | 说明 | 必需? |
---|---|---|
provider |
块提供程序实现。在这种情况下为 iscsi 。 |
是 |
target |
托管此对象的 iSCSI 文件管理器的 IP 地址或主机名 | 是 |
targetIQN |
托管 SR 的 iSCSI 文件管理器的 IQN 目标地址 | 是 |
SCSIid |
设备 SCSI ID | 是 |
可以使用 xe sr-probe-ext
命令查找要用于这些参数的值。
xe sr-probe-ext type=<type> host-uuid=<host_uuid> device-config:=<config> sm-config:=<sm_config>
-
首先请运行以下命令:
xe sr-probe-ext type=gfs2 device-config:provider=iscsi
命令的输出会提示您提供其他参数,并在每个步骤中给出可能的值列表。
-
重复运行该命令,每次添加新参数。
-
当命令输出以
The following SRs were found:
开头时,可以使用指定的device-config
参数在运行xe sr-create
命令时查找 SR。
要在 iSCSI 目标的特定 LUN 上创建共享 GFS2 SR,请在群集池中的服务器上运行以下命令:
xe sr-create type=gfs2 name-label="Example GFS2 SR" --shared \
device-config:provider=iscsi device-config:targetIQN=target_iqns \
device-config:target=portal_address device-config:SCSIid=scsci_id
如果装载 GFS2 文件系统时无法访问 iSCSI 目标,群集池中的某些主机可能会提供保护。
有关使用 iSCSI SR 的详细信息,请参阅软件 iSCSI 支持。
创建基于 HBA 的共享 GFS2 SR
可以使用 XenCenter 通过 HBA SR 创建 GFS2。有关详细信息,请参阅 XenCenter 产品文档中的硬件 HBA 存储。
或者,可以使用 xe CLI 通过 HBA SR 创建 GFS2。
GFS2 SR 的 Device-config 参数:
参数名称 | 说明 | 必需? |
---|---|---|
provider |
块提供程序实现。在这种情况下为 hba 。 |
是 |
SCSIid |
设备 SCSI ID | 是 |
可以使用 xe sr-probe-ext
命令查找要用于 SCSIid 参数的值。
xe sr-probe-ext type=<type> host-uuid=<host_uuid> device-config:=<config> sm-config:=<sm_config>
-
首先请运行以下命令:
xe sr-probe-ext type=gfs2 device-config:provider=hba
命令的输出会提示您提供其他参数,并在每个步骤中给出可能的值列表。
-
重复运行该命令,每次添加新参数。
-
当命令输出以
The following SRs were found:
开头时,可以使用指定的device-config
参数在运行xe sr-create
命令时查找 SR。
要在 HBA 目标的特定 LUN 上创建共享 GFS2 SR,请在群集池中的服务器上运行以下命令:
xe sr-create type=gfs2 name-label="Example GFS2 SR" --shared \
device-config:provider=hba device-config:SCSIid=device_scsi_id
有关使用 HBA SR 的详细信息,请参阅硬件主机总线适配器。
限制
共享 GFS2 存储当前具有以下限制:
-
与任何精简预配的 SR 一样,如果 GFS2 SR 的使用率增长到 100%,从 VM 进一步写入将失败。然后,这些失败的写入可能会导致 VM 内出现故障或者可能会导致数据损坏,或者出现这两种情况。
-
当您的 SR 使用量增长到 80% 时,XenCenter 会显示警报。请务必监视 GFS2 SR 是否有此警报,并采取适当的措施(如果看到)。在 GFS2 SR 上,高使用率会导致性能下降。我们建议您将 SR 使用率保持在 80% 以下。
-
VDI 位于 GFS2 SR 上的 VM 不支持通过存储迁移(实时或脱机)功能迁移 VM。也不能将 VDI 从另一种类型的 SR 迁移到 GFS2 SR。
-
GFS2 SR 不支持 FCoE 传输。
-
GFS2 SR 上不支持裁剪/取消映射。
-
GFS2 SR 上不支持 CHAP。
-
GFS2 SR 不支持 MCS 完整克隆 VM。
-
不支持在同一 MCS 目录中使用多个 GFS2 SR。
-
性能衡量指标不适用于 GFS2 SR 以及这些 SR 上的磁盘。
-
GFS2 SR 上存储的 VDI 不支持更改块跟踪功能。
-
不能将大于 2 TiB 的 VDI 导出为 VHD 或 OVA/OVF。但是,可以以 XVA 格式导出 VDI 大于 2 TiB 的 VM。
-
我们不建议将精简预配的 LUN 与 GFS2 结合使用。但是,如果您确实选择了此配置,则必须确保 LUN 始终有足够的空间以允许 Citrix Hypervisor 对其进行写入。
-
您的池中不能超过 62 个 GFS2 SR。
- 群集池最多仅支持每个池包含 16 个主机。
- 对于群集流量,您必须使用至少两个不同的网络交换机的绑定网络。请勿将此网络用于任何其他目的。
- 通过使用 XenCenter 更改群集网络的 IP 地址要求暂时禁用群集功能和 GFS2。
- 群集处于活动状态并且具有正在运行的 VM 时,请勿更改群集网络的绑定。此操作会导致群集进行防护。
- 如果您的至少涉及一个启用了群集功能的主机的群集网络中的一个 IP 地址(多个具有相同 IP 地址的主机)出现冲突,这些主机将不防护。要修复此问题,请解析 IP 地址冲突。