Citrix Hypervisor 8.2

管理存储库

本节介绍创建存储库类型并使其可用于Citrix Hypervisor服务器。它还涵盖了持续管理存储库(SRs)所需的各种操作,包括Live VDI迁移。

创建存储库

本节介绍如何创建不同类型的存储库(SRs),并使它们可供Citrix Hypervisor服务器使用。提供的示例包括使用xe CLI创建sr。的详细使用方法新存储库向导使用xcenter添加sr,请参见XenCenter文档

注意:

类型的本地srlvmext只能通过xe命令行创建。创建完成后,您可以通过xcenter或xe命令行管理所有SR类型。

通过CLI在主机上创建存储库有两个基本步骤:

  1. 探测SR类型以确定任何所需参数的值。

  2. 创建SR,初始化SR对象和关联的PBD对象,插入PBD,并激活SR。

这些步骤的细节取决于所创建的SR的类型。在所有的例子中sr-create命令如果成功,则返回创建的SR的UUID。

sr可以是摧毁了当不再使用时释放物理设备。sr也可以被遗忘的将SR从一个Citrix Hypervisor服务器上分离,并将其附加到另一个Citrix Hypervisor服务器上。有关更多信息,请参见删除SRs在下面的部分中。

探测SR

sr-probe命令有以下几种使用方式:

  • 识别用于创建SR的未知参数
  • 返回现有sr的列表

这两种情况sr-probe通过指定SR类型和一个或多个来工作device-config该SR类型的参数。如果提供的参数集不完整,则sr-probe命令返回一条错误消息,指出缺少参数以及缺少参数的可能选项。当提供完整的参数集时,将返回现有sr的列表。所有sr-probe输出作为XML返回。

例如,可以通过指定名称或IP地址来探测已知的iSCSI目标器。返回目标上可用的iqn集:

错误码:SR_BACKEND_FAILURE_96错误参数:,请求丢失或目标IQN参数不正确,\    0   192.168.1.10   iqn.192.168.1.10:filer1    

再次探测相同的目标并指定名称/IP地址和所需的IQN,将返回一组SCSIids(lun)在目标器/IQN上可用。

\ device-config:targetIQN=iqn.192.168.1.10:filer1错误码:SR_BACKEND_FAILURE_107错误参数:,SCSIid参数缺失或不正确,\    IET   0   42949672960   149455400000000000000000002000000b70200000f000000    

探测相同的目标并提供所有三个参数将返回LUN上存在的sr列表(如果有的话)。

xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \ device-config:targetIQN=192.168.1.10:filer1 \ device-config:SCSIid=149455400000000000000000002000000b70200000f000000   3f6e1ebd-8687-0315-f9d3-b02ab3adc4a6   /dev/disk/by-id/scsi-149455400000000000000000002000000b70200000f000000    

每种SR类型可以探测以下参数:

SR型 device-config参数,按依赖顺序排列 能被探测到吗? 所需sr-create
lvmoiscsi 目标 没有 是的
chapuser 没有 没有
chappassword 没有 没有
targetIQN 是的 是的
SCSIid 是的 是的
lvmohba SCSIid 是的 是的
NetApp 目标 没有 是的
用户名 没有 是的
密码 没有 是的
chapuser 没有 没有
chappassword 没有 没有
否(见注1) 是的
FlexVols 没有 没有
分配 没有 没有
网络多媒体 没有 没有
nfs 服务器 没有 是的
serverpath 是的 是的
lvm 设备 没有 是的
ext 设备 没有 是的
EqualLogic收购 目标 没有 是的
用户名 没有 是的
密码 没有 是的
chapuser 没有 没有
chappassword 没有 没有
storagepool 否(见注2) 是的

注:

  • 聚合探测只能在sr-create时间。
  • 存储池探测只能在sr-create时间。

删除SRs

存储库(SR)可以临时或永久删除。

分离:断开存储设备与存储池或主机的关联(PBD拔插)。SR(及其vdi)变得不可访问。保留vdi的内容和虚拟机访问vdi时使用的元信息。当您暂时使SR脱机(例如为了维护)时,可以使用Detach。分离的SR稍后可以重新连接。

忘记:保留物理磁盘上SR的内容,但虚拟机与vdi的连接信息将被永久删除。例如,允许您将SR重新连接到另一个Citrix Hypervisor服务器,而无需删除任何SR内容。

破坏:从物理磁盘中删除SR的内容。

对于“销毁或遗忘”,必须将SR上的PBD从主机上拔下。

  1. 拔掉PBD,将SR从对应的Citrix Hypervisor服务器上分离:

    pbd_uuid =pbd_uuid 
  2. 使用sr-destroy命令,删除SR,从Citrix Hypervisor服务器数据库中删除SR和相应的PBD,并从物理磁盘中删除SR内容。

    命令sr-destroy uuid=sr_uuid 
  3. 使用sr-forget该命令将SR和相应的PBD从Citrix Hypervisor服务器数据库中删除,但实际SR内容保留在物理介质上。

    Xe sr-forget uuid=sr_uuid 

注意:

与SR对应的软件对象可能需要一些时间来进行垃圾收集。

引入SR

重新介绍以前被遗忘的SR,创建PBD。手动将PBD插入相应的Citrix Hypervisor服务器以激活SR。

下面的示例介绍了类型为lvmoiscsi

  1. 探测现有SR以确定其UUID:

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \ device-config:targetIQN=192.168.1.10:filer1 \ device-config:SCSIid=149455400000000000000000002000000b70200000f000000 
  2. 方法返回的现有SR UUIDsr-probe命令。返回新SR的UUID:

    \ Shared =true uuid=valid_sr_uuid type=lvmoiscsi 
  3. 创建一个伴随sr的PBD。返回新PBD的UUID:

    xe pbd-create type=lvmoiscsi host-uuid=valid_uuid sr-uuid=valid_sr_uuid \ device-config:target=192.168.0.1 \ device-config:targetIQN=192.168.1.10:filer1 \ device-config:SCSIid=149455400000000000000000002000000b70200000f000000 
  4. 插入PBD连接SR:

    pbd-plug uuid=pbd_uuid 
  5. 检查PBD插头状态。如果成功,currently-attached属性为true:

    Xe pbd-list sr-uuid=sr_uuid 

注意:

对资源池中的每个服务器执行步骤3到步骤5。这些步骤也可以使用XenCenter中的Repair Storage Repository功能执行。

热LUN扩容

为了满足容量需求,可能需要增加存储阵列的容量,以增加发放给Citrix Hypervisor服务器的LUN的大小。热扩容可以在不停机的情况下增加LUN的容量。

向存储阵列添加更多容量后,输入,

Xe sr-scan sr-uuid=sr_uuid 

该命令重新扫描SR,并添加任何额外的容量并使其可用。

该操作在XenCenter中也可执行。选择要调整大小的SR,然后单击重新扫描

警告:

  • 不能缩小或截断lun。在阵列上减小LUN的大小可能会导致数据丢失。

实时VDI迁移

在线迁移VDI,管理员可以在不关闭虚拟机的情况下,将虚拟机的VDI (Virtual Disk Image)迁移到本地。此功能支持以下管理操作:

  • 将虚拟机从廉价的本地存储迁移到快速、有弹性、阵列支持的存储。
  • 将虚拟机从开发环境移动到生产环境。
  • 当虚拟机受存储容量限制时,可以在不同存储层之间迁移。
  • 执行阵列升级。

限制和注意事项

实时VDI迁移受以下限制和注意事项的约束

  • 目标存储库上必须有足够的可用磁盘空间。

通过XenCenter移动虚拟磁盘

  1. 资源面板中,选择虚拟磁盘所在的SR,然后单击存储选项卡。

  2. 虚拟磁盘列表中,选择要移动的虚拟磁盘,然后单击移动

  3. 移动虚拟磁盘对话框中,选择要将VDI移动到的目标SR。

    注意:

    请确保该SR有足够的空间用于另一个虚拟磁盘:可用SR列表中显示可用空间。

  4. 点击移动移动虚拟磁盘。

xe命令行参考请参见vdi-pool-migrate

SRs间VDI冷迁移(离线迁移)

可以将与虚拟机关联的vdi从一个SR复制到另一个SR,以满足维护需求或分级存储配置。XenCenter允许您将VM及其所有vdi复制到相同或不同的sr。XenCenter和xe CLI的组合可以用于复制单个vdi。

xe命令行参考请参见vm-migrate

将VM的所有vdi复制到不同的SR

XenCenter复制虚拟机功能为指定虚拟机在同一或不同sr上创建所有vdi的副本。默认情况下,源虚拟机和vdi不受影响。若要将虚拟机移动到所选SR,而不是创建副本,请在“复制虚拟机”对话框中选择“移除原始虚拟机”选项。

  1. 关闭虚拟机
  2. 在XenCenter中,选择虚拟机,然后选择虚拟机>复制虚拟机选择。
  3. 选择所需的目标SR。

将单个vdi复制到不同的SR

xe CLI和XenCenter的组合可以用于在sr之间复制单个vdi。

  1. 关闭虚拟机

  2. 使用xe命令行识别需要移动的vdi的uuid。如果虚拟机有光驱,则虚拟机为虚拟机vdi-uuid被列为不在数据库中并且可以被忽略。

    Xe vbd-list vm-uuid=valid_vm_uuid 

    注意:

    vbd-list命令显示VBD和VDI的uuid。确保记录的是VDI uuid,而不是VBD uuid。

  3. 在xcenter中,选择虚拟机存储选项卡。对于每个要移动的VDI,选择该VDI并单击分离按钮。此步骤也可以使用vbd-destroy命令。

    注意:

    如果你使用vbd-destroy命令来卸载VDI uuid,首先检查VBD是否有该参数其他配置:老板设置为真正的.将此参数设置为.发出vbd-destroy命令其他配置:所有者= true也会破坏相关的VDI。

  4. 使用vdi-copy命令,将每个要移动的虚拟机vdi复制到所需的SR。

    Xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid 
  5. 在xcenter中,选择虚拟机存储选项卡。单击附加按钮,并从新的sr中选择vdi。此步骤也可以使用vbd-create命令。

  6. 如果要删除原有的vdi,请选择存储选项卡中的原始SR。原始的vdi在“VM”字段中显示为空值。使用删除按钮,删除VDI。

将fc本地sr转换为共享sr

使用xe命令行和XenCenter维修储存库将本地FC SR转换为共享FC SR:

  1. 将资源池中的所有主机升级到Citrix Hypervisor 8.2版本。

  2. 请确保池中的所有主机都已对SR的LUN进行了适当的分区。看到探测SR的详细使用方法sr-probe命令,确认该LUN在每台主机上都存在。

  3. 将SR转换为共享:

    Xe sr-param-set shared=true uuid=local_fc_sr 
  4. SR在XenCenter中从主机级别移动到池级别,表明它现在是共享的。SR用红色感叹号标记,表示当前没有插入池中的所有主机。

  5. 选择SR,然后选择存储>维修储存库选择。

  6. 点击修复为池中的每个主机创建并插入一个PBD。

使用discard在后备阵列上回收基于块的存储空间

通过空间回收,可以释放精简LUN上未使用的块。空间释放后,阵列可以重新使用回收的空间。

注意:

只有部分类型的存储阵列支持空间回收。要确定您的阵列是否支持此功能以及是否需要特定配置,请参阅硬件兼容性列表以及存储供应商特定的文档。

使用XenCenter回收空间:

  1. 选择基础设施视图,然后选择连接到SR的服务器或池。

  2. 单击存储选项卡。

  3. 从列表中选择SR,单击回收空闲空间

  4. 点击是的确认操作。

  5. 点击通知然后事件查询操作的执行状态。

更多信息请按F1访问联机帮助。

通过xe命令行回收空间,可以使用以下命令:

Xe host-call-plugin host-uuid=host_uuid \ plugin=trim fn=do_trim参数:sr_uuid=sr_uuid

注:

  • 该操作仅适用于基于阵列精简lun的基于lvmr的SRs。本地ssd也可以从空间回收中受益。
  • NFS、EXT3/EXT4等基于文件的sr不需要回收空间。的回收空闲空间按钮在xcenter中不可用于这些SR类型。
  • 如果对基于文件的SR或基于thick配置的lv的SR执行空间回收xe命令,将返回一个错误。
  • 空间回收是一项密集操作,会导致阵列性能下降。因此,该操作仅在需要对阵列进行空间回收时执行。我们建议您将此工作安排在峰值阵列需求时间之外。

删除快照时自动回收空间

使用Citrix Hypervisor删除快照时,会自动回收基于lv的sr上分配的空间,不需要重启虚拟机。这个操作被称为“在线合并”。

在线合并仅适用于基于lvvm的sr (LVM、LVMoISCSI和LVMoHBA)。不适用于EXT3/EXT4或NFS sr,它们的行为保持不变。在某些情况下,自动空间回收可能无法进行。我们建议您在以下场景中使用离线合并工具:

  • 在虚拟机I/O吞吐量相当大的情况下
  • 在一段时间后不回收空间的情况下

注:

  • 由于执行挂起/恢复操作,运行离线Coalesce工具会导致虚拟机停机。
  • 在运行该工具之前,请删除不再需要的快照和克隆。该工具在给定剩余快照/克隆的情况下回收尽可能多的空间。如果需要回收整个空间,请删除所有快照和克隆。
  • 虚拟机磁盘必须位于单个主机的共享存储或本地存储。两种存储类型的虚拟机不支持合并。

使用离线合并工具回收空间

注意:

在线合并仅适用于基于lvm_srs (LVM、LVMoISCSI和LVMoHBA)的SRs,不适用于EXT3/EXT4和NFS类型的SRs,其行为保持不变。

使用XenCenter启用隐藏对象。点击视图>隐藏的对象。2 .在“资源”区域框中,选择需要获取UUID的虚拟机。UUID显示在一般选项卡。

在“资源”窗格中,选择资源池主(列表中的第一个主机)。的一般选项卡显示UUID。如果没有使用资源池,请选择虚拟机所属的主机。

  1. 在主机上打开控制台,执行如下命令:

    xe host-call-plugin host-uuid= host-uuid \ plugin=coalesce-leaf fn=leaf-coalesce参数:vm_uuid=VM-UUID 

    例如,虚拟机UUID为9 bad4022-2c2d-dee6-abf5-1b6195b1dad5主机UUID为b8722062-de95-4d95-9baa-a5fe343898ea,执行如下命令:

    Xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea \ plugin=coalesce-leaf fn=leaf-coalesce参数:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5 
  2. 该命令会暂停虚拟机(除非虚拟机已经下电),启动空间回收进程,然后恢复虚拟机。

注:

我们建议在执行离线合并工具之前手动关闭或暂停虚拟机。该任务指导管理员通过xcenter或Citrix Hypervisor的命令行关闭或暂停虚拟机。当虚拟机处于运行状态时,执行coalesce工具会自动将虚拟机挂起,并执行相应的VDI合并操作,然后恢复虚拟机。敏捷虚拟机可能会在不同的主机上重启。

如果待合并的vdi位于共享存储上,则必须在pool master上执行离线合并工具。

如果待合并的vdi位于本地存储,则需要在挂载本地存储的服务器上执行离线合并工具。

调整磁盘I/O调度器

对于一般性能,默认的磁盘调度器无操作适用于所有新的SR类型。的无操作调度器为访问同一设备的竞争虚拟机提供最公平的性能。要应用磁盘QoS,必须覆盖默认设置并分配cfq要使调度器参数生效,必须拔插相应的PBD。磁盘调度程序可以使用以下命令进行调整:

命令sr-param-set other-config:scheduler=noop|cfq| expected |deadline \ uuid=valid_sr_uuid 

注意:

该命令不影响EqualLogic、NetApp和NFS存储。

虚拟磁盘QoS设置

虚拟磁盘具有可选的I/O优先级QoS设置。该设置可以通过本节介绍的xe命令行应用于已有的虚拟磁盘。

对于共享SR,当多个主机访问同一个LUN时,QoS设置适用于从同一主机访问LUN的vbs。池内主机间未应用QoS。

在为VBD配置任何QoS参数之前,请确保为SR设置了适当的磁盘调度器。看到调整磁盘I/O调度器在前一节中详细了解如何调整调度器。调度程序参数必须设置为cfq在需要QoS的SR上。

注意:

记得将调度器设置为cfq并确保PBD已被重新插入,以使调度器更改生效。

第一个参数是qos_algorithm_type.该参数必须设置为ionice,这是该版本中唯一支持虚拟磁盘的QoS算法。

的键/值对来设置QoS参数本身qos_algorithm_param参数。对于虚拟磁盘,qos_algorithm_param需要一个固定播送时间键,根据值,也需要一个关键。

的可能值qos_algorithm_param:固定播送时间是:

-sched = rtsched =实时设置QoS调度参数为实时优先级,需要通过类参数设置

-sched =闲置设置QoS调度参数为空闲优先级,不需要类参数设置任何值

-sched =什么将QoS调度参数设置为“最佳努力优先级”,这需要一个类参数设置一个值

的可能值是:

  • 以下关键字之一:最高,高,正常,低,最低

  • 取值范围为0 ~ 7之间的整数,其中7优先级最高,0优先级最低。例如,优先级为5的I/O请求的优先级高于优先级为2的I/O请求。

要开启磁盘的QoS设置,还必须设置磁盘的QoS设置其他配置:调度器cfq并为有问题的存储重新插入pbd。

例如,以下CLI命令将虚拟磁盘的VBD设置为实时优先级5

Xe vbd-param-set uuid=vbd_uuid qos_algorithm_type=ionice Xe vbd-param-set uuid=vbd_uuid qos_algorithm_params:sched=rt Xe vbd-param-set uuid=vbd_uuid qos_algorithm_params:class=5 Xe sr-param-set uuid=sr_uuid other-config:scheduler=cfq Xe pbd-plug uuid=pbd_uuid