管理存储库
本节介绍创建存储库类型并使其可用于Citrix Hypervisor服务器。它还涵盖了持续管理存储库(SRs)所需的各种操作,包括Live VDI迁移。
创建存储库
本节介绍如何创建不同类型的存储库(SRs),并使它们可供Citrix Hypervisor服务器使用。提供的示例包括使用xe CLI创建sr。的详细使用方法新存储库向导使用xcenter添加sr,请参见XenCenter文档.
注意:
类型的本地sr
lvm
和ext
只能通过xe命令行创建。创建完成后,您可以通过xcenter或xe命令行管理所有SR类型。
通过CLI在主机上创建存储库有两个基本步骤:
探测SR类型以确定任何所需参数的值。
创建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从主机上拔下。
拔掉PBD,将SR从对应的Citrix Hypervisor服务器上分离:
pbd_uuid =pbd_uuid
使用
sr-destroy
命令,删除SR,从Citrix Hypervisor服务器数据库中删除SR和相应的PBD,并从物理磁盘中删除SR内容。命令sr-destroy uuid=sr_uuid
使用
sr-forget
该命令将SR和相应的PBD从Citrix Hypervisor服务器数据库中删除,但实际SR内容保留在物理介质上。Xe sr-forget uuid=sr_uuid
注意:
与SR对应的软件对象可能需要一些时间来进行垃圾收集。
引入SR
重新介绍以前被遗忘的SR,创建PBD。手动将PBD插入相应的Citrix Hypervisor服务器以激活SR。
下面的示例介绍了类型为lvmoiscsi
.
探测现有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
方法返回的现有SR UUID
sr-probe
命令。返回新SR的UUID:\ Shared =true uuid=valid_sr_uuid type=lvmoiscsi
创建一个伴随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
插入PBD连接SR:
pbd-plug uuid=pbd_uuid
检查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移动虚拟磁盘
在资源面板中,选择虚拟磁盘所在的SR,然后单击存储选项卡。
在虚拟磁盘列表中,选择要移动的虚拟磁盘,然后单击移动.
在移动虚拟磁盘对话框中,选择要将VDI移动到的目标SR。
注意:
请确保该SR有足够的空间用于另一个虚拟磁盘:可用SR列表中显示可用空间。
点击移动移动虚拟磁盘。
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,而不是创建副本,请在“复制虚拟机”对话框中选择“移除原始虚拟机”选项。
- 关闭虚拟机
- 在XenCenter中,选择虚拟机,然后选择虚拟机>复制虚拟机选择。
- 选择所需的目标SR。
将单个vdi复制到不同的SR
xe CLI和XenCenter的组合可以用于在sr之间复制单个vdi。
关闭虚拟机
使用xe命令行识别需要移动的vdi的uuid。如果虚拟机有光驱,则虚拟机为虚拟机
vdi-uuid
被列为不在数据库中
并且可以被忽略。Xe vbd-list vm-uuid=valid_vm_uuid
注意:
的
vbd-list
命令显示VBD和VDI的uuid。确保记录的是VDI uuid,而不是VBD uuid。在xcenter中,选择虚拟机存储选项卡。对于每个要移动的VDI,选择该VDI并单击分离按钮。此步骤也可以使用
vbd-destroy
命令。注意:
如果你使用
vbd-destroy
命令来卸载VDI uuid,首先检查VBD是否有该参数其他配置:老板
设置为真正的
.将此参数设置为假
.发出vbd-destroy
命令其他配置:所有者= true
也会破坏相关的VDI。使用
vdi-copy
命令,将每个要移动的虚拟机vdi复制到所需的SR。Xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid
在xcenter中,选择虚拟机存储选项卡。单击附加按钮,并从新的sr中选择vdi。此步骤也可以使用
vbd-create
命令。如果要删除原有的vdi,请选择存储选项卡中的原始SR。原始的vdi在“VM”字段中显示为空值。使用删除按钮,删除VDI。
将fc本地sr转换为共享sr
使用xe命令行和XenCenter维修储存库将本地FC SR转换为共享FC SR:
将资源池中的所有主机升级到Citrix Hypervisor 8.2版本。
请确保池中的所有主机都已对SR的LUN进行了适当的分区。看到探测SR的详细使用方法
sr-probe
命令,确认该LUN在每台主机上都存在。将SR转换为共享:
Xe sr-param-set shared=true uuid=local_fc_sr
SR在XenCenter中从主机级别移动到池级别,表明它现在是共享的。SR用红色感叹号标记,表示当前没有插入池中的所有主机。
选择SR,然后选择存储>维修储存库选择。
点击修复为池中的每个主机创建并插入一个PBD。
使用discard在后备阵列上回收基于块的存储空间
通过空间回收,可以释放精简LUN上未使用的块。空间释放后,阵列可以重新使用回收的空间。
注意:
只有部分类型的存储阵列支持空间回收。要确定您的阵列是否支持此功能以及是否需要特定配置,请参阅硬件兼容性列表以及存储供应商特定的文档。
使用XenCenter回收空间:
选择基础设施视图,然后选择连接到SR的服务器或池。
单击存储选项卡。
从列表中选择SR,单击回收空闲空间.
点击是的确认操作。
点击通知然后事件查询操作的执行状态。
更多信息请按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。如果没有使用资源池,请选择虚拟机所属的主机。
在主机上打开控制台,执行如下命令:
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
该命令会暂停虚拟机(除非虚拟机已经下电),启动空间回收进程,然后恢复虚拟机。
注:
我们建议在执行离线合并工具之前手动关闭或暂停虚拟机。该任务指导管理员通过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 = rt
或sched =实时
设置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