网站搜索

如何创建和添加 Citrix XenServer 存储库 - 第 4 部分


在本 XenServer 系列的第四篇文章中,将讨论存储解决方案。与网络非常相似,XenServer 中的存储解决方案一开始通常很难掌握。在开始任何配置之前,应先讨论 XenServer 存储中涉及的新术语和概念。

更新: 2016年5月,Citrix发布了新版本的XenServer 7平台。安装请遵循: XenServer 7 的全新安装。

XenServer 在传统存储术语列表中引入了几个新术语。虽然在使用任何 IT 系统时理解这些概念始终很重要,但存储并不像之前介绍网络概念的文章那么重要。然而,本文仍然会花时间解释并尝试阐明这些存储概念。

对于 XenServer 存储,首先要记住的是,我们拥有用于实际 XenServer 主机的存储,然后我们还拥有用于将在 XenServer 主机上运行的来宾或虚拟机的存储。从概念上讲,这很容易理解,但如果管理员不熟悉每个存储方面的用途,那么管理它可能是一项艰巨的任务。

第一个术语称为“SR”存储库。这可以说是 XenServer 存储中最重要的术语,因为它代表存储和检索虚拟机磁盘的物理介质。存储库可以是多种不同类型的存储系统中的任何一种,包括物理连接到 XenServer 主机的本地存储、iSCSI/光纤通道 LUN、NFS 网络文件共享或 Dell/NetApp 存储设备上的存储。

存储库可以是共享的,也可以是专用的,并且可以支持许多有用的功能,例如快速克隆、稀疏分配(根据虚拟机需要配置存储)以及可调整大小的虚拟磁盘映像(稍后会详细介绍)。

存储库 (SR) 通过所谓的物理块设备(通常称为“PBD”)在逻辑上连接到 XenServer 主机。 PBD 只是对存储位置的引用。这些 PBD 对象可以“插入”XenServer 主机,以允许该主机向该存储库读取/写入信息。

存储库的用途主要是存储虚拟机虚拟磁盘映像 (VDI) 文件。 VDI 文件是 SR 上的点,已分配用于保存 XenServer 主机上运行的虚拟机的操作系统和其他文件。 VDI 文件可以是多种不同类型中的任何一种。类型由存储库的类型决定。

XenServer 中常见的 VDI 类型是由逻辑卷管理器管理的逻辑卷 (LV)、虚拟硬盘 (VHD),也可以是 Dell 或 NetApp 存储设备上的逻辑单元号 (LUN)。 注意:本文将使用戴尔存储设备上的 LUN。

这些 VDI 文件通过称为虚拟块设备(通常称为“VBD”)的对象在逻辑上连接到虚拟机。这些 VBD 对象可以附加到虚拟来宾,然后允许来宾计算机访问存储在相应 SR 上的特定 VDI 中的数据。

就像 XenServer 中的网络一样,阅读有关存储的内容是一回事,但能够看到每个项目之间的关系通常会巩固这些概念。用于表示 XenServer 存储概念的常用图表常常会让新手感到困惑,因为这些图表通常以线性方式阅读。下面是从 Citrix 借来的一张这样的图片。

许多人从左到右线性地阅读本文,认为每个部分都是一个单独的物理设备。事实并非如此,并且常常会导致人们对 XenServer 存储的工作原理产生很多困惑。下图尝试以不太线性但更务实的方式解释这些概念。

希望上图不会进一步让人们对 XenServer 存储感到困惑。第二张图试图显示用于通过一个实际网络连接将 XenServer 和来宾连接到远程存储的逻辑连接(PBDVBD)。

随着概念化的出现;就可以开始配置了。回顾本系列的第一篇文章,本指南使用 Dell PS5500E iSCSI 存储设备来存储虚拟机(来宾)磁盘。本指南不会逐步介绍 Dell iSCSI 设备的配置。

系统配置:

  1. XenServer 6.5 安装和修补(系列第 1 部分)
  2. Dell PS5500E iSCSI 设备(可以使用其他 iSCSI 设备,只需在需要时替换环境信息)。
  3. 配置的 XenServer 网络接口(系列的第 3 部分)。
  4. iSCSI 设备和 XenServer 可以在逻辑上相互查看(通过 ping 实用程序)。
  5. CIFS (SAMBA) 服务器运行并托管 CD ISO 文件共享(不是必需的,但非常有用)。

Citrix XenServer 存储库创建

第一个过程将完成创建从 XenServer 主机到 Dell PS5500E 的软件 iSCSI 启动器的步骤。

此特定LUN 使用质询握手身份验证协议 (CHAP) 来限制某些授权方对 iSCSI 卷的访问。

要创建存储库,将使用传统的‘xe’命令。创建存储库之前需要获取正确的 iSCSI 信息。

'sr-probe'参数传递给'xe'实用程序将指示XenServer查询存储设备的iSCSI IQN(iSCSI限定名称)。

第一个命令一开始看起来很激烈,但并不像看起来那么糟糕。


xe sr-probe type=lvmoiscsi device-config:target=X.X.X.X device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap"

需要第一个命令来收集存储库配置的 SCSI IQN。在继续之前,让我们看一下该命令的所有部分。

  1. sr-probe – 用于查询 iSCSI 设备以获取有关为此 XenServer 主机创建的卷的信息。
  2. type= 用于告知 XenServer 存储库类型。这将根据所使用的系统而有所不同。由于使用的是Dell PS5500,因此在此命令中使用lvm over iSCSI。请务必进行修改以适合存储设备类型。
  3. device-config:target= 用于告诉 XenServer 通过 IP 地址查询哪个 iSCSI 设备。
  4. device-config:chapuser= 这用于对 iSCSI 设备进行身份验证。在此示例中,之前已为用户“howtoing”创建了 iSCSI 卷。通过在此命令中发送用户名和密码,iSCSI 设备将响应必要的信息以完成存储库的创建。
  5. device-config:chappassword= 这是上述 CHAP 用户名的密码。

输入并提交命令后,XenServer 将尝试登录 iSCSI 设备,并返回一些实际将此 iSCSI 设备添加为存储库所需的信息。

以下是测试系统从此命令返回的内容。


Error code: SR_BACKEND_FAILURE_96
Error parameters: , The SCSIid parameter is missing or incorrect , <?xml version"1.0" ?>
<iscsi-target-iqns>
        <TGT>
                 <Index>
                              0
                 </Index>
                 <IPAddress>
                 </IPAddress>
                 <TargetIQN>
                              iqn.2001-05.com.equallogic:0-8a096-0d9a4ab02-46600020343560ef-xenct-xen2
                 </TargetIQN>
        </TGT>
        <TGT>
                 <Index>
                 
                 </Index>
                 <IPAddress>

                 </IPAddress>
                 <TargetIQN>

                 </TargetIQN>
        </TGT>
</iscsi-target-iqns>

这里突出显示的部分称为iSCSI IQN。这非常重要,需要确定存储库的 SCSIid。有了这个新信息,可以修改之前的命令来获取SCSIid


xe sr-probe type=lvmoiscsi device-config:target=X.X.X.X device-config:targetIQN=iqn.2001-05.com.equallogic:0-8a0906-0d9a4ab02-46600020343560ef-xenct-xen2 device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap"

添加到命令中的唯一内容是 targetIQN 节。通过发出这个新命令,系统将响应创建 iSCSI 存储库所需的最后一条信息。最后一条信息是 SCSI id。


Error code: SR_BACKEND_FAILURE_107
Error parameters: , The SCSIid parameter is missing or incorrect , <?xml version"1.0" ?>
<iscsi-target>
        <LUN>
                 <vendor>
                        EQLOGIC
                 </vendor>
                 <serial>
                 </serial>
                 <LUNid>
                         0
                 </LUNid>
                 <size>
                         107379425280
                 </size>
                 <SCSIid>
                         36090a028b04a9a0def60353420006046
                 </SCSIid>
        </LUN>
</iscsi-target>

从此时起,创建 iSCSI 存储库的所有必需部分均已可用,并且是时候发出命令将此 SR 添加到此特定 XenServer 了。根据组合信息创建存储库的步骤如下:


xe sr-create name-label="Tecmint iSCSI Storage" type=lvmoiscsi content-type=user device-config:target=X.X.X.X device-config:port=3260 device-config:targetIQN=iqn.2001-05.com.equallogic:0-8a0906-0d9a4ab02-46600020343560ef-xenct-xen2 device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap" device-config:SCSIid=36090a028b04a9a0def60353420006046

如果一切顺利,系统将连接到 iSCSI 设备,然后返回新添加的存储库的 UUID


bea6caa4-ecab-8509-33a4-2cda2599fb75

UUID 输出是一个好兆头!与所有系统管理任务一样,确认命令是否成功始终是一个好主意。这可以通过另一个'xe'命令来完成。


xe sr-list name-label="Tecmint iSCSI Storage"
样本输出

uuid ( RO)                 : bea6caa4-ecab-8509-33a4-2cda2599fb75
          name-label ( RW) : Tecmint iSCSI Storage
    name-description ( RW) :
                host ( RO) : xenct-xen2
                type ( RO) : lvmoiscsi
        content-type ( RO) : user

CLI 输出来看,此 XenServer 已成功连接到 Dell iSCSI 设备,并准备好存储来宾 VDI 文件。

ISO 存储库创建

接下来的一系列步骤将逐步完成创建 ISO 库的过程。 ISO 文件通常是光盘 (CD) 安装介质的映像。

通过为这些 ISO 文件创建一个特殊的存储库,可以非常快速地完成新来宾的安装。当管理员希望创建新来宾时,他们只需选择此 ISO 库中存在的 ISO 文件之一,而不必将 CD 物理地放入池中的 XenServer 中。

本指南的这一部分将假设用户有一个正在运行的 SAMBA 服务器。如果未设置 SAMBA 服务器,请随时阅读这篇文章,了解如何在 Red Hat/Fedora 中完成此任务(我将来会有 Debian SAMBA 服务器指南):

  1. 设置 Samba 服务器进行文件共享

第一步是收集 SAMBA ISO 库所需的凭据和配置信息。一旦用户名、密码和连接信息可用,就可以使用简单的‘xe’命令变体将 SAMBA 库连接到 XenServer。


xe-mount-iso-sr //<servername>/ISO -o username=<user>,password=<password>

除非失败,否则该命令不会向屏幕输出任何内容。要确认它确实挂载了 SAMBA ISO 共享,请发出另一个 ‘xe’ 命令:


xe sr-list
样本输出

uuid ( RO)                 : 1fd75a51-10ee-41b9-9614-263edb3f40d6
          name-label ( RW) : Remote ISO Library on: //                  /ISO
    name-description ( RW) :
                host ( RO) : xenct-xen2
                type ( RO) : iso
        content-type ( RO) : iso

此 XenServer 主机现已配置了iSCSI 存储库以及CIFS ISO 库来存储虚拟机(来宾)的安装介质。

接下来的步骤将是创建虚拟机并将这些系统连接到之前网络文章中的正确网络。