精简共享GFS2块存储

精简配置通过在数据写入虚拟磁盘时为VDI分配磁盘存储空间,而不是预先分配VDI的整个虚拟空间,从而更好地利用可用的存储空间。精简配置使您能够显著减少共享存储阵列所需的空间量,从而降低总体拥有成本(TCO)。

共享块存储的精简配置在以下情况下特别有趣:

  • 你想提高空间效率。图像是稀疏的,而不是厚分配的。
  • 您希望减少存储阵列上每秒的I/O操作数。GFS2 SR是第一个支持共享块存储读缓存的SR类型。
  • 您可以为多个虚拟机使用一个通用的基本映像。单个vm的映像通常会使用更少的空间。
  • 你使用快照。每个快照都是一个图像,现在每个图像都是稀疏的。
  • 您的存储不支持NFS,只支持块存储。如果您的存储支持NFS,我们建议您使用NFS而不是GFS2。
  • 您需要创建大于2tib大小的vdi。GFS2 SR支持最大16tib的vdi。

共享GFS2类型将磁盘表示为在iSCSI或HBA LUN上创建的文件系统。存储在GFS2 SR上的vdi以QCOW2映像格式存储。

先决条件

在开始之前,请确保满足以下先决条件:

  • 集群池中的所有Citrix Hypervisor服务器必须至少有2gib的控制域内存。

  • 集群中的所有主机必须使用静态IP地址作为集群网络的IP地址。

  • 我们建议仅在包含至少三个主机的池中使用集群,因为两个主机的池对整个池的自隔离很敏感。

  • 如果池中的主机之间有防火墙,请确保主机可以通过以下端口在集群网络上通信:
    • Tcp: 8892,21064
    • Udp: 5404, 5405

    有关更多信息,请参见Citrix技术使用的通信端口

  • 如果对现有池进行集群化,请确保禁用高可用性。启用集群后,可以重新启用高可用性。

  • 资源池中的所有Citrix Hypervisor服务器都可以看到基于块的存储设备。

设置集群池以使用共享的GFS2 SR

使用GFS2共享存储时,Citrix Hypervisor的资源池必须为集群池。在创建GFS2 SR之前,在池上启用集群。

注意:

集群池的行为与非集群池不同。有关群集行为的详细信息,请参见集群池

如果愿意,可以使用XenCenter在池上设置集群。有关更多信息,请参见XenCenter产品文档

使用xe命令创建集群池。

  1. 创建一个绑定网络作为集群网络。在待设置为池主的Citrix Hypervisor服务器上,完成以下步骤。

    1. 在Citrix Hypervisor服务器上打开控制台。

    2. 使用以下命令命名资源池:

      xe Pool -param-set name-label="新池" uuid=
    3. 使用如下命令创建绑定网卡使用的网络:

      Xe network-create name-label=bond0

      返回新网络的UUID。

    4. 使用以下命令查找要在绑定中使用的pif的uuid:

      xe pif-list
    5. 创建bond网络时,可以选择双活模式、主备模式或LACP模式。根据您想要使用的绑定模式,完成以下操作之一:

      • 配置为双活模式(缺省)时,使用bond-create命令创建绑定。使用“,”分隔参数,指定新创建的网络UUID和待绑定的pif的UUID。

        Xe bond-create network-uuid= / pif-uuid =

        绑定两个网卡时输入两个uuid,绑定四个网卡时输入四个uuid。执行该命令后,将返回绑定的UUID。

      • 配置主备绑定模式和LACP绑定模式时,使用相同的语法,添加可选模式参数,并指定lacp主动式备用系统

        Xe bond-create network-uuid= pif- uids=, /  / mode=balance-slb | active-backup | lacp .创建bond-create network-uuid= pif-uuid =

    在池主服务器上创建绑定网络之后,当您将其他Citrix Hypervisor服务器加入到池中时,网络和绑定信息会自动复制到加入服务器。

    有关更多信息,请参见网络

  2. 创建至少包含3台Citrix Hypervisor服务器的资源池。

    在每个Citrix Hypervisor(非主)池成员服务器上重复以下步骤。

    1. 在Citrix Hypervisor服务器上打开控制台。
    2. 使用以下命令将Citrix Hypervisor服务器加入到master池的池中。

      Xe pool-join master-address=master_address master-username=administrators_username master-password=password

      的值主地址参数必须设置为作为池主节点的Citrix Hypervisor服务器的全限定域名。的密码必须是安装池管理器时设置的管理员密码。

    有关更多信息,请参见主机和资源池

  3. 对于属于该网络的每个PIF,设置disallow-unplug = true

    1. 使用如下命令查找属于网络的pif的uuid:

      xe pif-list
    2. 在资源池中的Citrix Hypervisor服务器上运行如下命令:

      Xe pif-param-set disallow-unplug=true uuid=
  4. 在池上启用集群。在资源池中的Citrix Hypervisor服务器上运行如下命令:

    Xe cluster-pool-create network-uuid=

    提供您在前面的步骤中创建的绑定网络的UUID。

确保在集群池和GFS2 sr之间设置了存储多路径。有关更多信息,请参见存储多路径

创建共享的GFS2 SR

您可以在iSCSI或HBA LUN上创建共享GFS2 SR。

使用iSCSI SR创建共享GFS2

通过XenCenter可以在iSCSI sr上创建GFS2。有关更多信息,请参见软件iSCSI存储请参见XenCenter产品文档。

您也可以使用xe命令行通过iSCSI SR创建GFS2。

GFS2 sr的设备配置参数:

参数名称 描述 需要吗?
提供者 块提供程序实现。在这种情况下,iscsi 是的
目标 所承载的iSCSI文件的IP地址或主机名 是的
targetIQN SR所在iSCSI文件的IQN目标器 是的
SCSIid 设备SCSI ID 是的

方法可以找到要用于这些参数的值xe sr-probe-ext命令。

Xe sr-probe-ext type= host-uuid= device-config:= sm-config:=
  1. 运行如下命令:

    Xe sr-probe-ext type=gfs2 device-config:provider=iscsi

    该命令的输出提示您提供额外的参数,并在每个步骤中给出可能值的列表。

  2. 重复该命令,每次添加新的参数。

  3. 当命令输出以。开头时发现了以下sr:,你可以使用device-config运行时指定的用于定位SR的参数xe sr-create命令。

在集群池中的一台服务器上,为iSCSI目标器的指定LUN创建共享的GFS2 SR。

——share \ device-config:provider=iscsi device-config:targetIQN=target_iqns \ device-config:target=portal_address device-config:SCSIid=scsci_id . exe SR -create type=gfs2 name-label="Example gfs2 SR"——shared \ device-config:provider=iscsi device-config:targetIQN=target_iqns

如果在挂载GFS2文件系统时无法访问iSCSI目标,则集群池中的某些主机可能会隔离。

有关使用iSCSI sr的更多信息,请参见软件支持iSCSI

通过HBA SR创建共享GFS2

通过xcenter可以创建基于HBA卡sr的GFS2。有关更多信息,请参见硬件HBA存储请参见XenCenter产品文档。

您也可以使用xe命令行通过HBA SR创建GFS2。

GFS2 sr的设备配置参数:

参数名称 描述 需要吗?
提供者 块提供程序实现。在这种情况下,hba 是的
SCSIid 设备SCSI ID 是的

可以找到用于SCSIid参数的值xe sr-probe-ext命令。

Xe sr-probe-ext type= host-uuid= device-config:= sm-config:=
  1. 运行如下命令:

    Xe sr-probe-ext type=gfs2 device-config:provider=hba

    该命令的输出提示您提供额外的参数,并在每个步骤中给出可能值的列表。

  2. 重复该命令,每次添加新的参数。

  3. 当命令输出以。开头时发现了以下sr:,你可以使用device-config运行时指定的用于定位SR的参数xe sr-create命令。

在集群池中的一台服务器上,在HBA卡目标的指定LUN上创建共享的GFS2 SR。

——shared \ device-config:provider=hba device-config:SCSIid=device_scsi_id . exe SR -create type=gfs2 name-label="Example gfs2 SR"

有关使用HBA sr的更多信息,请参见硬件主机总线适配器

约束

共享GFS2存储目前有以下限制:

  • 与任何瘦配置SR一样,如果GFS2 SR的使用率增长到100%,vm的进一步写操作将失败。这些失败的写操作可能会导致VM内的故障或可能的数据损坏,或者两者兼而有之。

  • 当SR使用率增长到80%时,XenCenter会显示一个警报。确保监控GFS2 SR是否有此警报,并在看到时采取适当的措施。在GFS2 SR上,高使用率会导致性能下降。我们建议您将SR使用率保持在80%以下。

  • 不支持在GFS2 SR上的虚拟机进行存储热迁移。不支持将其他类型SR上的虚拟机迁移到GFS2 SR上。

  • GFS2 sr不支持FCoE协议。

  • 在GFS2 sr上不支持Trim/unmap。

  • GFS2 sr不支持CHAP。

  • GFS2服务器不支持MCS完整克隆虚拟机。

  • 不支持在同一个MCS目录中使用多个GFS2 sr。

  • 性能指标不可用于GFS2 SRs和这些SRs上的磁盘。

  • 存储在GFS2 sr上的vdi不支持更改块跟踪。

  • 不能导出大于2tib的vdi为VHD或OVA/OVF。vdi大于2tib的虚拟机,支持以XVA格式导出。

  • 我们不建议将精简LUN与GFS2一起使用。但是,如果选择这种配置,则必须确保LUN始终有足够的空间允许Citrix Hypervisor对其进行写操作。

  • 集群池每个池最多只支持16台主机。
  • 对于集群流量,必须使用至少使用两个不同网络交换机的绑定网络。请勿将本网络用于任何其他目的。
  • 通过XenCenter修改集群网络的IP地址需要暂时关闭集群和GFS2。
  • 当集群处于活动状态并且有正在运行的虚拟机时,不要更改集群网络的绑定。此操作可能导致集群隔离。
  • 如果集群网络中存在IP地址冲突(多个主机具有相同的IP地址),并且至少有一个主机启用了集群,那么这些主机不会隔离。解决方法:解决IP地址冲突。
精简共享GFS2块存储