XenServer

创建存储库

可以在 XenCenter 中使用新建存储库向导来创建存储库 (SR)。此向导将引导您完成配置步骤。或者,请使用 CLI 和 sr-create 命令。sr-create 命令将在存储基底中创建一个 SR(可能会销毁任何现有数据)。还会创建 SR API 对象以及相应的 PBD 记录,从而使 VM 能够使用存储。成功创建 SR 后,自动插入 PBD。如果已设置 SR shared=true 标志,则将创建 PBD 记录并为资源池中的每个XenServer 插入该记录。

如果要为基于 IP 的存储(iSCSI 或 NFS)创建 SR,可以将下列 NIC 之一配置为存储网络:处理管理流量的 NIC 或面向存储流量的新 NIC。要为 NIC 分配 IP 地址,请参阅配置专用存储 NIC

所有 XenServer SR 类型都支持调整 VDI 的大小、快速克隆和快照。基于 LVM SR 类型(本地、iSCSI 或 HBA)的 SR 提供用于快照和隐藏父节点的精简预配。其他 SR 类型(EXT3/EXT4、NFS、GFS2)支持完整的精简预配,包括活动虚拟磁盘的精简预配。

警告:

  • 当 VHD VDI 未连接到 VM 时,例如针对 VDI 快照,默认情况下将以精简预配方式进行存储。尝试重新连接 VDI 时,请确保有足够的磁盘空间用于对 VDI 进行密集预配。VDI 克隆是密集预配的。

  • XenServer 不支持在任何 SR 类型的 LUN 的外部 SAN 级别创建快照。

  • 请勿尝试创建目标 LUN 的 LUN ID 大于 255 的 SR。在使用此 LUN 创建 SR 之前,请确保您的目标公开的 LUN ID 小于或等于 255。

  • 如果在基于文件的 SR 上使用精简预配,请务必监视 SR 上的可用空间。如果 SR 使用率增长到 100%,则从 VM 进一步写入将失败。这些写入失败可能会导致 VM 冻结或崩溃。

支持的最大 VDI 大小为:

存储库格式 最大 VDI 大小
EXT3/EXT4 2 TiB
GFS2(使用 iSCSI 或 HBA) 16 TiB
XFS 16 TiB
LVM 2 TiB
LVMoFCOE(已弃用) 2 TiB
LVMoHBA 2 TiB
LVMoiSCSI 2 TiB
NFS 2 TiB
SMB 2 TiB

本地 LVM

本地 LVM 类型表示本地连接的卷组中的磁盘。

默认情况下,XenServer 使用安装它的物理主机的本地磁盘。Linux 逻辑卷管理器 (LVM) 用于管理 VM 存储。在指定大小的 LVM 逻辑卷中,VDI 采用 VHD 格式实施。

注意:

LVM LUN 的块大小必须为 512 字节。要使用包含 4 KB 物理块的存储,存储还必须支持 512 字节分配块的模拟(逻辑块大小必须为 512 字节)。

LVM 性能注意事项

快照和快速克隆功能(用于基于 LVM 的 SR)具有固有的性能开销。需要最佳性能时,XenServer 支持创建原始格式以及默认 VHD 格式的 VDI。原始 VDI 不支持 XenServer 快照功能。

警告:

请勿尝试为连接了 type=raw 磁盘的 VM 生成快照。此操作可能会导致创建部分快照。这种情况下,可以通过检查 snapshot-of 字段确定孤立快照 VDI,然后删除这些快照。

创建本地 LVM SR

默认情况下,在主机安装期间创建 LVM SR。

lVM SR 的 Device-config 参数为:

参数名称 说明 必需?
device 用于 SR 的本地主机上的设备名称。也可以提供以逗号分隔的名称列表。

要在 /dev/sdb 上创建本地 lVM SR,请使用以下命令。

    xe sr-create host-uuid=valid_uuid content-type=user \
    name-label="Example Local LVM SR" shared=false \
    device-config:device=/dev/sdb type=lvm
<!--NeedCopy-->

本地 EXT3/EXT4

使用 EXT3/EXT4 在本地存储上启用精简预配。但是,默认存储库类型为 LVM,因为它可以提供一致的写入性能,防止存储过度使用。如果使用 EXT3/EXT4,您可能会在以下情况下看到性能下降:

  • 执行 VM 生命周期操作时,例如创建和挂起/恢复 VM
  • 在 VM 内部创建大型文件时

必须使用 XenServer CLI 配置本地磁盘 EXT3/EXT4 SR。

本地 EXT SR 使用 EXT3 还是 EXT4 取决于创建该 SR 时使用的 XenServer 版本:

  • 如果您在早期版本的 Citrix Hypervisor 或 XenServer 上创建了本地 EXT SR,然后升级到 XenServer 8,则将使用 EXT3。
  • 如果您在 XenServer 8 上创建了本地 EXT SR,则将使用 EXT4。

注意:

EXT3/EXT4 磁盘的块大小必须为 512 字节。要使用包含 4 KB 物理块的存储,存储还必须支持 512 字节分配块的模拟(逻辑块大小必须为 512 字节)。

创建本地 EXT4 SR (ext)

EXT SR 的 Device-config 参数:

参数名称 说明 必需?
device 用于 SR 的本地主机上的设备名称。也可以提供以逗号分隔的名称列表。

要在 /dev/sdb 上创建本地 EXT4 SR,请使用以下命令:

    xe sr-create host-uuid=valid_uuid content-type=user \
       name-label="Example Local EXT4 SR" shared=false \
       device-config:device=/dev/sdb type=ext
<!--NeedCopy-->

本地 XFS

使用 XFS 在本地存储中启用精简预配。本地 XFS 类型允许您创建具有 4 KB 物理块的本地存储设备,而无需大小为 512 字节的逻辑块。

创建本地 XFS SR

XFS SR 的 Device-config 参数:

参数名称 说明 必需?
device 用于 SR 的本地主机上的设备名称。也可以提供以逗号分隔的名称列表。

要在 /dev/sdb 上创建本地 XFS SR,请使用以下命令:

    xe sr-create host-uuid=valid_uuid content-type=user \
       name-label="Example Local XFS SR" shared=false \
       device-config:device=/dev/sdb type=xfs
<!--NeedCopy-->

udev

udev 类型表示插入的设备使用 udev 设备管理器作为 VDI。

XenServer 具有两个代表可移动存储的 udev 类型的 SR。一个用于 XenServer 主机的物理 CD 或 DVD-ROM 驱动器中的 CD 或 DVD 磁盘。另一个用于插入到 XenServer 主机的 USB 端口的 USB 设备。插入磁盘或 U 盘,代表介质的 VDI 出现;移除磁盘或 U 盘,VDI 消失。

ISO

ISO 类型处理以 ISO 格式文件存储的 CD 映像。此 SR 类型在创建共享 ISO 库时十分有用。

以下 ISO SR 类型可用:

  • nfs_iso:NFS ISO SR 类型处理以 ISO 格式的文件存储且作为 NFS 共享提供的 CD 映像。
  • cifs:Windows 文件共享 (SMB/CIFS) SR 类型处理以 ISO 格式的文件存储且作为 Windows (SMB/CIFS) 共享提供的 CD 映像。

如果您未指定用于 SR 的存储类型,XenServer 将使用 location 设备配置参数来决定类型。

ISO SR 的 Device-config 参数:

参数名称 说明 必需?
location 装载路径。
type 用于 SR 的存储类型:cifsnfs_iso
nfsversion 对于存储类型 NFS,要使用的 NFS 协议版本为 3、4、4.0 或 4.1。
vers 对于存储类型 CIFS/SMB,要使用的 SMB 版本:1.0 或 3.0。默认值为 3.0。
username 对于存储类型 CIFS/SMB,如果 Windows 文件服务器需要用户名。
cifspassword_secret (推荐)对于存储类型 CIFS/SMB,您可以为 Windows 文件服务器传递密钥而非密码。
cifspassword 对于存储类型 CIFS/SMB,如果 Windows 文件服务器需要密码。我们建议您改用 cifspassword_secret 参数。

注意:

运行 sr-create 命令时,我们建议您使用 device-config:cifspassword_secret 参数,而非在命令行中指定密码。有关详细信息,请参阅机密

对于用于存储 ISO 库的存储库,必须将 content-type 参数设置为 iso,例如:

    xe sr-create host-uuid=valid_uuid content-type=iso  type=iso name-label="Example ISO SR" \
      device-config:location=<path_to_mount> device-config:type=nfs_iso
<!--NeedCopy-->

可以使用 NFS 或 SMB 来装载 ISO SR。有关使用这些 SR 类型的详细信息,请参阅 NFS 和 SMB

我们建议您使用 SMB 3 在 Windows 文件服务器上装载 ISO SR。默认选择版本 3,因为与 SMB 1.0 相比,该版本更加安全并且功能更加强大。但是,可以使用以下命令通过 SMB 1 装载 ISO SR:

     xe sr-create content-type=iso type=iso shared=true device-config:location=<path_to_mount>
     device-config:username=<username> device-config:cifspassword=<password> \
     device-config:type=cifs device-config:vers=1.0 name-label="Example ISO SR"
<!--NeedCopy-->

软件 iSCSI 支持

XenServer 支持 iSCSI LUN 上的共享 SR。使用 Open-iSCSI 软件 iSCSI 发起程序或使用受支持的 iSCSI 主机总线适配器 (HBA) 时支持 iSCSI。使用 iSCSI HBA 的步骤与使用光纤通道 HBA 的步骤相同。这两组步骤在创建基于光纤通道/以太网光纤通道/ iSCSI HBA 或 SAS 的共享 LVM SR 中均有说明。

使用软件 iSCSI 发起程序的共享 iSCSI 支持是在 Linux 卷管理器 (LVM) 的基础上实现的。此功能提供的想能优势与本地磁盘中的 LVM VDI 提供的优势相同。使用基于软件的主机发起程序的共享 iSCSI SR 能够支持使用实时迁移的 VM 敏捷性:VM 可以在资源池中的任意 XenServer 主机上启动,并且可以在不会导致明显停机时间的情况下在这些主机之间迁移。

iSCSI SR 使用创建时指定的整个 LUN,不得跨越多个 LUN。此外,还为数据路径初始化阶段和 LUN 检测阶段进行的客户端身份验证提供 CHAP 支持。

注意:

iSCSI LUN 的块大小必须为 512 字节。要使用包含 4 KB 物理块的存储,存储还必须支持 512 字节分配块的模拟(逻辑块大小必须为 512 字节)。

XenServer 主机 iSCSI 配置

所有 iSCSI 启动程序和目标都必须具有唯一的名称,以确保可以在网络上对它们进行唯一标识。启动程序具有 iSCSI 启动程序地址,目标具有 iSCSI 目标地址。这些名称统称为 iSCSI 限定名称 (IQN)。

XenServer 主机支持单个 iSCSI 发起程序,该发起程序在主机安装期间自动创建并配有一个随机 IQN。可以使用该单个启动程序并发连接到多个 iSCSI 目标。

iSCSI 目标通常提供使用 iSCSI IQN 列表的访问控制功能。您的 XenServer 主机访问的所有 iSCSI 目标/LUN 必须配置为允许主机的发起程序 IQN 进行访问。同样,必须将用作共享 iSCSI SR 的目标/LUN 配置为允许资源池中的所有主机 IQN 访问。

注意:

不提供访问控制的 iSCSI 目标通常默认为仅允许单个发起程序访问 LUN 以确保数据完整性。如果将 iSCSI LUN 用作池中多个主机的共享 SR,请务必为指定的 LUN 启用多发起程序访问。

在使用 iSCSI 软件发起程序时,可以通过 XenCenter 或者通过 CLI 使用以下命令来调整 XenServer 主机 IQN 值:

    xe host-param-set uuid=valid_host_id other-config:iscsi_iqn=new_initiator_iqn
<!--NeedCopy-->

警告:

  • 每个 iSCSI 目标和发起程序都必须具有唯一的 IQN。如果使用非唯一的 IQN 标识符,则可能会导致数据损坏或 LUN 访问被拒绝。
  • 请勿更改连接了 iSCSI SR 的 XenServer 主机 IQN。否则可能导致无法连接到新目标或现有 SR。

软件 FCoE 存储(已弃用)

软件 FCoE 提供了一个标准框架,硬件提供商可以在此框架中插入具备 FCoE 功能的 NIC,获得与基于硬件的 FCoE 相同的优势。此功能可避免使用昂贵的 HBA。

注意:

软件 FCoE 已弃用,并且将在将来的版本中删除。

创建软件 FCoE 存储之前,请手动完成将 LUN 显示给主机所需的配置。此配置包括配置 FCoE 架构以及将 LUN 分配给 SAN 的公共全球通用名称 (PWWN)。完成此配置后,可用的 LUN 将作为 SCSI 设备装载到主机的 CNA。然后,可以使用该 SCSI 设备访问 LUN,就像它是本地连接的 SCSI 设备一样。有关配置支持 FCoE 的物理交换机和阵列的信息,请参阅供应商提供的文档。

注意:

可以将软件 FCoE 与 Open vSwitch 和 Linux 桥接一起用作网络后端。

创建软件 FCoE SR

创建软件 FCoE SR 之前,客户必须确保将具有 FCoE 功能的 NIC 连接到主机。

FCoE SR 的 Device-config 参数如下:

参数名称 说明 必需?
SCSIid 目标 LUN 的 SCSI 总线 ID

运行以下命令可创建共享 FCoE SR:

    xe sr-create type=lvmofcoe \
    name-label="FCoE SR" shared=true device-config:SCSIid=SCSI_id
<!--NeedCopy-->

硬件主机总线适配器 (HBA)

本部分内容介绍管理 SAS、光纤通道和 iSCSI HBA 所需的各种操作。

QLogic iSCSI HBA 设置示例

有关配置 QLogic 光纤通道和 iSCSI HBA 的详细信息,请参阅 Cavium Web 站点。

将 HBA 物理安装到 XenServer 主机后,请执行下列步骤配置 HBA:

  1. 设置 HBA 的 IP 网络连接配置。本示例假设 DHCP 和 HBA 端口为 0。如果使用静态 IP 寻址或多端口 HBA,请指定适当的值。

    /opt/QLogic_Corporation/SANsurferiCLI/iscli -ipdhcp 0
    <!--NeedCopy-->
    
  2. 将永久性 iSCSI 目标添加到 HBA 的端口 0。

    /opt/QLogic_Corporation/SANsurferiCLI/iscli -pa 0 iscsi_target_ip_address
    <!--NeedCopy-->
    
  3. 使用 xe sr-probe 命令强制重新扫描 HBA 控制器并显示可用的 LUN。有关详细信息,请参阅探测 SR创建基于光纤通道/以太网光纤通道/iSCSI HBA 或 SAS 的共享 LVM SR

删除基于 HBA 的 SAS、FC 或 iSCSI 设备条目

注意:

此步骤不是必需步骤。我们建议仅在必要时由高级用户执行此步骤。

每个基于 HBA 的 LUN 都在 /dev/disk/by-scsibus 下具有相应的全局设备路径条目(格式为 <SCSIid>-<adapter>:<bus>:<target>:<lun>),并在 /dev 下具有标准设备路径。要删除不再用作 SR 的 LUN 的设备条目,请执行下列步骤:

  1. 根据需要使用 sr-forgetsr-destroy 从 XenServer 主机数据库中删除 SR。有关详细信息,请参阅删除 SR

  2. 删除 SAN 中的将所需 LUN 的区域划分给所需主机的区域划分配置。

  3. 使用 sr-probe 命令确定与要删除的 LUN 对应的 ADAPTER、BUS、TARGET 和 LUN 值。有关详细信息,请参阅探测 SR

  4. 使用以下命令删除设备条目:

    echo "1" > /sys/class/scsi_device/adapter:bus:target:lun/device/delete
    <!--NeedCopy-->
    

警告:

请保证您确定要删除哪个 LUN。意外删除主机操作所需的 LUN(例如引导设备或根设备)将使该主机不可用。

共享 LVM 存储

共享 LVM 类型将磁盘表示为在 iSCSI(FC 或 SAS)LUN 上创建的卷组中的逻辑卷。

注意:

iSCSI LUN 的块大小必须为 512 字节。要使用包含 4 KB 物理块的存储,存储还必须支持 512 字节分配块的模拟(逻辑块大小必须为 512 字节)。

使用软件 iSCSI 发起程序创建基于 iSCSI 的共享 LVM SR

LVMoiSCSI SR 的 Device-config 参数:

参数名称 说明 必需?
target 托管 SR 的 SAN 上的 iSCSI 目标的 IP 地址或主机名。这也可以是以逗号分隔的值列表,用于连接到多个目标。
targetIQN 托管 SR 的 iSCSI SAN 上的目标的 iSCSI 限定名称 (IQN),或者用于连接到所有 IQN 的 *
SCSIid 目标 LUN 的 SCSI 总线 ID
multihomed 启用对此目标的多宿主操作 否(默认为与 host.other_config:multipathing 相同的值)
chapuser 用于 CHAP 身份验证的用户名
chappassword_secret (推荐)用于 CHAP 身份验证的密码的密钥 ID。传递密钥而非密码。
chappassword 用于 CHAP 身份验证的密码。我们建议您改用 chappassword_secret 参数。
port 在其上查询目标的网络端口号
usediscoverynumber 要使用的特定 iSCSI 记录索引
incoming_chapuser iSCSI 过滤器用来针对主机进行身份验证的用户名
incoming_chappassword_secret (推荐)iSCSI 过滤器用于对主机进行身份验证的密码的密钥 ID。
incoming_chappassword iSCSI 过滤器用来对主机进行身份验证的密码。我们建议您改用 incoming_chappassword_secret 参数。

注意:

运行 sr-create 命令时,我们建议您使用 device-config:chappassword_secret 参数,而非在命令行中指定密码。有关详细信息,请参阅机密

要在 iSCSI 目标的特定 LUN 上创建共享 LVMoiSCSI SR,请使用以下命令。

    xe sr-create host-uuid=valid_uuid content-type=user \
    name-label="Example shared LVM over iSCSI SR" shared=true \
    device-config:target=target_ip= device-config:targetIQN=target_iqn= \
    device-config:SCSIid=scsci_id \
    type=lvmoiscsi
<!--NeedCopy-->

创建基于光纤通道/以太网光纤通道/ iSCSI HBA 或 SAS 的共享 LVM SR

LVMoHBA 类型的 SR 只能使用 xe CLI 或 XenCenter 进行创建和管理。

LVMoHBA SR 的 Device-config 参数:

参数名称 说明 必需?
SCSIid 设备 SCSI ID

要创建共享 LVMoHBA SR,请在池中的每个主机上执行下列步骤:

  1. 将一个或多个 LUN 中的区域划分给池中的每个 XenServer 主机。此过程特定于所使用的 SAN 设备。有关详细信息,请参阅 SAN 文档。

  2. 如有必要,请使用 XenServer 主机中包含的 HBA CLI 来配置 HBA:

    • Emulex: /bin/sbin/ocmanager

    • QLogic FC: /opt/QLogic_Corporation/SANsurferCLI

    • QLogic iSCSI: /opt/QLogic_Corporation/SANsurferiCLI

    有关 QLogic iSCSI HBA 配置的示例,请参阅上文中的硬件主机总线适配器 (HBA) 。有关光纤通道和 iSCSI HBA 的详细信息,请参阅 BroadcomCavium Web 站点。

  3. 使用 sr-probe 命令确定 HBA LUN 的全局设备路径。sr-probe 命令强制重新扫描系统中安装的 HBA,以检测其区域已划分给主机的任何新 LUN。此命令返回找到的每个 LUN 的属性列表。指定 host-uuid 参数以确保在所需主机上执行探测。

    作为 <path> 属性返回的全局设备路径是池中的所有主机的公共路径。因此,创建 SR 时,此路径必须用作 device-config:device 参数的值。

    如果提供了多个 LUN,请使用供应商、LUN 大小、LUN 序列号或 <path> 属性中包含的 SCSI ID 确定所需的 LUN。

        xe sr-probe type=lvmohba \
        host-uuid=1212c7b3-f333-4a8d-a6fb-80c5b79b5b31
        Error code: SR_BACKEND_FAILURE_90
        Error parameters: , The request is missing the device parameter, \
        <?xml version="1.0" ?>
        <Devlist>
            <BlockDevice>
                <path>
                    /dev/disk/by-id/scsi-360a9800068666949673446387665336f
                </path>
                <vendor>
                    HITACHI
                </vendor>
                <serial>
                    730157980002
                </serial>
                <size>
                    80530636800
                </size>
                <adapter>
                    4
                </adapter>
                <channel>
                    0
                </channel>
                <id>
                    4
                </id>
                <lun>
                    2
                </lun>
                <hba>
                    qla2xxx
                </hba>
            </BlockDevice>
            <Adapter>
                <host>
                    Host4
                </host>
                <name>
                    qla2xxx
                </name>
                <manufacturer>
                    QLogic HBA Driver
                </manufacturer>
                <id>
                    4
                </id>
            </Adapter>
        </Devlist>
    <!--NeedCopy-->
    
  4. 在池协调器上,创建 SR。指定从 sr-probe 中的 <path> 属性中返回的全局设备路径。将创建 PBD 并将其自动插入池中的每个主机。

        xe sr-create host-uuid=valid_uuid \
        content-type=user \
        name-label="Example shared LVM over HBA SR" shared=true \
        device-config:SCSIid=device_scsi_id type=lvmohba
    <!--NeedCopy-->
    

注意:

可以使用 XenCenter 修复存储库功能重试 sr-create 操作的 PBD 创建和插入部分。创建 SR 后,如果 LUN 区域划分对于池中的一个或多个主机不正确,则此功能非常有用。更正受影响的主机的分区并使用修复存储库功能,而非删除并重新创建 SR。

精简预配的共享 GFS2 块存储

精简预配通过将磁盘存储空间分配给 VDI(因为数据会写入虚拟磁盘)来更好地利用可用存储,而非提前分配 VDI 的完整虚拟大小。通过精简预配,可以大大降低共享存储阵列上所需的空间量以及您的总体拥有成本 (TCO)。

在以下情况下,面向共享块存储进行精简预配尤其适用:

  • 您希望提高空间效率。图像是稀疏的,而不是厚厚地分配。
  • 您希望降低存储阵列上的每秒 I/O 操作数。GFS2 SR 是第一种支持在共享块存储上进行存储读取缓存的 SR 类型。
  • 您对多个虚拟机使用公共基础映像。这样,各个 VM 的映像通常会占用更少的空间。
  • 您使用快照。每个快照都是一个映像,并且每个映像现在都是稀疏的。
  • 您的存储不支持 NFS,仅支持块存储。如果您的存储支持 NFS,我们建议您使用 NFS 而非 GFS2。
  • 您希望创建大小大于 2 TiB 的 VDI。GFS2 SR 最大支持大小为 16 TiB 的 VDI。

注意:

我们建议不要将 GFS2 SR 与 VLAN 一起使用,因为存在已知问题,即如果群集网络位于非管理 VLAN 上,则无法在群集池中添加或删除主机。

共享 GFS2 类型会在 iSCSI 或 HBA LUN 上创建 GFS2 文件系统。VDI 以 QCOW2 映像格式的文件存储在 GFS2 SR 中。

有关使用 GFS2 存储的详细信息,请参阅精简预配的共享 GFS2 块存储

NFS 和 SMB

可以立即将 NFS 服务器上的共享(支持 NFSv4 或 NFSv3 的任意版本)或 SMB 服务器上的共享(支持 SMB 3)用作虚拟磁盘的 SR。VDI 仅以 Microsoft VHD 格式存储。此外,由于可以共享这些 SR,因此,共享 SR 上存储的 VDI 允许执行以下操作:

  • 在资源池中的任何 XenServer 主机上启动 VM

  • 使用实时迁移功能在资源池中的 XenServer 主机之间迁移 VM(无明显停机)

重要:

  • 对 SMB3 的支持功能限制为能够使用 3 协议连接到共享。透明故障转移等其他功能取决于上游 Linux 内核中的功能可用性,但在 XenServer 8 中不受支持。
  • XenServer 不支持群集 SMB。
  • 对于 NFSv4,只有身份验证类型 AUTH_SYS 受支持。
  • SMB 存储适用于 XenServer Premium Edition 客户。
  • 对于 NFS 和 SMB 存储,强烈建议使用专用存储网络,至少使用两条绑定链路,最好是连接到具有冗余电源的独立网络交换机。
  • 使用 SMB 存储时,在分离 SMB SR 之前,请勿从存储中删除共享。

基于文件的 SR 上存储的 VDI 是精简预配的。当 VM 向磁盘写入数据时分配映像文件。VM 映像文件仅在存储中占用所需的空间,此方式将带来极大的好处。例如,如果为 VM 分配 100 GB 的 VDI 并安装操作系统,VDI 文件将仅反映已写入到磁盘的操作系统数据的大小,而不反映整个 100 GB。

还可以链接 VHD 文件,从而允许两个 VDI 共享通用数据。如果克隆基于文件的 VM,生成的 VM 将共享克隆时的通用磁盘数据。每个 VM 将在 VDI 的单独写入时复制版本中继续进行各自的更改。此功能允许从模板快速克隆基于文件的 VM,便于极快地预配和部署新 VM。

注意:

支持的最长 VHD 链长度为 30。

XenServer 中基于文件的 SR 和 VHD 实现假定其可以完全控制文件服务器上的 SR 目录。管理员不得修改 SR 目录的内容,因为此操作可能会损坏 VDI 的内容。

XenServer 已针对使用稳定 RAM 的企业级存储进行了优化,以快速确认写入请求,同时保留针对故障的高级数据保护。XenServer 已针对使用 Data OnTap 7.3 和 8.1 的 Network Appliance FAS2020 和 FAS3210 存储进行了广泛测试

警告:

由于基于文件的 SR 上的 VDI 创建为精简配置文件,因此,管理员必须确保基于文件的 SR 为所有必需的 VDI 保留足够的磁盘空间。XenServer 主机并不强制在基于文件的 SR 上存在 VDI 所需的空间。

请务必监视 SR 上的可用空间。如果 SR 使用率增长到 100%,则从 VM 进一步写入将失败。这些写入失败可能会导致 VM 冻结或崩溃。

创建共享 NFS SR (NFS)

注意:

如果您尝试连接只读 NFS SR,此操作将失败并显示以下错误消息:“SR_BACKEND_FAILURE_461 - The file system for SR cannot be written to.”(SR_BACKEND_FAILURE_461 - 无法写入 SR 的文件系统。)

要创建 NFS SR,必须提供 NFS 服务器的主机名或 IP 地址。可以在任何有效的目标路径下创建 SR;使用 sr-probe 命令可显示服务器导出的有效目标路径列表。

在 XenServer 与低端存储配合使用的情况下,它会谨慎地等待确认所有写入操作,然后再将确认传递到 VM。此方式会导致性能显著下降,但通过设置存储以将 SR 装载点呈现为异步模式导出,可以解决该问题。异步模式将导出实际不在磁盘上的确认写入内容。请考虑仔细在这些情况下失败的风险。

注意:

NFS 服务器必须配置为将指定路径导出到池中的所有主机。如果此配置未完成,创建 SR 和插入 PBD 记录将失败。

默认情况下,XenServer NFS 实现使用 TCP。如果条件允许,可以将该实现配置为在可能对性能有益的情况下使用 UDP。要完成此配置,请在创建 SR 时指定 device-config 参数 useUDP=true

以下 device-config 参数用于 NFS SR:

参数名称 说明 必需?
server NFS 服务器的 IP 地址或主机名称
serverpath 托管 SR 的 NFS 服务器的路径,包括 NFS 装载点
nfsversion 指定要使用的 NFS 版本。如果您指定 nfsversion="4",SR 将使用 NFS v4.0、v4.1 或 v4.2,具体取决于可用版本。如果要选择更具体的 NFS 版本,可以指定 nfsversion="4.0" 等等。只能为 nfsversion 指定一个值。
useUDP 将 SR 配置为使用 UDP 而非默认 TCP。

例如,要使用文件管理器提供的任何 NFS 版本 4 在 192.168.1.10:/export1 上创建共享 NFS SR,请使用以下命令:

    xe sr-create content-type=user \
    name-label="shared NFS SR" shared=true \
    device-config:server=192.168.1.10 device-config:serverpath=/export1 type=nfs \
    device-config:nfsversion="4"
<!--NeedCopy-->

要特别使用 NFS 版本 4.0 在 192.168.1.10:/export1 上创建非共享 NFS SR,请运行以下命令:

    xe sr-create host-uuid=host_uuid content-type=user \
    name-label="Non-shared NFS SR" \
    device-config:server=192.168.1.10 device-config:serverpath=/export1 type=nfs \
    device-config:nfsversion="4.0"
<!--NeedCopy-->

创建共享 SMB SR (SMB)

要创建 SMB SR,请提供 SMB 服务器的主机名或 IP 地址、导出的共享的完整路径以及相应的凭据。

SMB SR 的 Device-config 参数:

参数名称 说明 必需?
server 服务器上的共享的完整路径
username 对共享具有读写访问权限的用户帐户 可选
password_secret (推荐)用户帐户密码的密钥 ID,可以用来代替密码。 可选
password 用户帐户的密码。我们建议您改用 password_secret 参数。 可选

注意:

运行 sr-create 命令时,我们建议您使用 device-config:password_secret 参数,而非在命令行中指定密码。有关详细信息,请参阅机密

例如,要在 192.168.1.10:/share1 上创建共享 SMB SR,请使用以下命令:

    xe sr-create content-type=user \
    name-label="Example shared SMB SR" shared=true \
    device-config:server=//192.168.1.10/share1 \
    device-config:username=valid_username device-config:password_secret=valid_password_secret type=smb
<!--NeedCopy-->

要创建非共享 SMB SR,请运行以下命令:

    xe sr-create host-uuid=host_uuid content-type=user \
    name-label="Non-shared SMB SR" \
    device-config:server=//192.168.1.10/share1 \
    device-config:username=valid_username device-config:password_secret=valid_password_secret type=smb
<!--NeedCopy-->

基于硬件 HBA 的 LVM

硬件 HBA 上 LVM 类型表示磁盘作为卷组中逻辑卷上的 VHD 在提供的 HBA LUN 上创建,例如,基于硬件的 iSCSI 或 FC 支持。

XenServer 主机通过 Emulex 或 QLogic 主机总线适配器 (HBA) 支持光纤通道 SAN。必须手动完成向主机公开光纤通道 LUN 所需的所有光纤通道配置。此配置包括存储设备、网络设备以及 XenServer 主机中的 HBA。完成所有 FC 配置后,HBA 将向主机公开一个由 FC LUN 支持的 SCSI 设备。然后,可以使用该 SCSI 设备访问 FC LUN,就像它是本地连接的 SCSI 设备一样。

使用 sr-probe 命令可以列出主机上存在的由 LUN 支持的 SCSI 设备。此命令强制扫描由 LUN 支持的新 SCSI 设备。sr-probe 返回的 LUN 支持的 SCSI 设备的路径值在将访问该 LUN 的所有主机之间保持一致。因此,在创建资源池中的所有主机都可访问的共享 SR 时,必须使用此值。

同样的功能也适用于 QLogic iSCSI HBA。

有关创建基于 HBA 的共享 FC 和 iSCSI SR 的详细信息,请参阅创建存储库

注意:

XenServer 支持光纤通道,但不支持将 LUN 直接映射到 VM。必须将基于 HBA 的 LUN 映射到主机并指定将其用于 SR。SR 中的 VDI 作为标准块设备向 VM 公开。

通过 HBA LUN 的 LVM 的块大小必须为 512 字节。要使用包含 4 KB 物理块的存储,存储还必须支持 512 字节分配块的模拟(逻辑块大小必须为 512 字节)。

创建存储库