在这个第四条的XenServer系列 ,存储解决方案将被讨论。 很像网络,XenServer中的存储解决方案通常很难掌握。 在开始任何配置之前,应讨论XenServer存储中涉及的新术语和概念。
更新: 在2016年5月,思杰发布了7的XenServer平台的新版本。 对于安装如下: XenServer的7全新安装 。
添加Xenserver存储库 - 第4部分
XenServer的引入了几个新的术语来传统的存储术语表。 虽然理解这些概念在使用任何IT系统时始终很重要,但存储并不像以前的文章所讨论的网络概念那么重要。 但是,本文仍将花时间解释并尝试阐明这些存储概念。
使用XenServer存储的第一件事是,我们为实际的XenServer主机提供存储,然后我们还为将在XenServer主机上运行的来宾或虚拟机提供存储。 从概念上来说,这很容易掌握,但是如果管理员不熟悉每个存储方面的目的,管理它可能是一项艰巨的任务。
第一项被称为“SR”或存储库 。 这可能是XenServer存储中最重要的术语,因为它表示将存储和检索虚拟机磁盘的物理介质。 存储库可以是任意几种不同类型的存储系统,包括,物理连接到XenServer主机,ISCSI /光纤通道LUN,本地存储NFS网络文件共享或存储在Dell / NetApp的存储设备。
存储库可以是共享的或专用的,并且可以支持许多有用的功能,例如快速克隆,稀疏分配(作为虚拟机需要的存储)和可重新调整大小的虚拟磁盘映像(稍后更多)。
存储库,SR,逻辑连接到XenServer主机与所谓的物理块设备 ,为“PBD”更普遍引用。 所述PBD是简单地一个存储位置的参考。 这些PBD对象可以“插入”到XenServer主机中,以允许该主机对该存储库读/写信息。
存储库的目的主要是存储虚拟机虚拟磁盘映像 (VDI)的文件。 VDI文件是已分配用于保存操作系统的SR上的点,以及在XenServer主机上运行的虚拟机的其他文件。 VDI文件可以是几种不同类型中的任何一种。 类型由存储库的类型确定。
XenServer中常见的VDI类型是逻辑卷管理器管理逻辑卷(LV),虚拟硬盘(VHD),也可以是戴尔或NetApp存储设备上的逻辑单元号(LUN) 注 :本文将使用的LUN在Dell存储设备上。
这些VDI文件在逻辑上通过一个称为虚拟块设备 ,为“VBD”经常引用的一个对象连接到虚拟机。 这些VBD对象可以附加到虚拟客户机,然后允许客机访问存储在相应SR上的特定VDI中的数据。
与XenServer中的网络非常相似,阅读存储是一回事,但是能够看到每个项目之间的关系往往会巩固这些概念。 用于表示XenServer存储概念的公共图常常使新用户感到困惑,因为图通常以线性方式读取。 以下是从Citrix借来的一个这样的图像。
Citrix XenServer存储概念
许多人从左到右读这个线性,认为每个部分是一个单独的物理设备。 这不是这种情况,并且常常导致对XenServer存储如何工作的很多困惑。 下图试图以较不线性但更务实的方式解释这些概念。
XenServer存储工程
希望上面的图形不会进一步混淆个人关于XenServer存储。 第二图像是要表明,用于通过一个实际的网络连接的XenServer客人连接至远程存储设备的逻辑连接(PBD和VBD)企图。
用概念化的方式; 可以开始配置。 回顾本系列的第一篇文章,本指南使用Dell PS5500E iSCSI存储设备存储虚拟机(guest虚拟机)磁盘。 本指南不会介绍Dell iSCSI设备的配置。
系统配置:
- XenServer的6.5安装补丁 (系列第1部分)
- Dell PS5500E iSCSI设备(如果需要,可以使用其他iSCSI设备,只是替换环境信息)。
- 配置XenServer的网络接口 (第3部分)。
- iSCSI设备和XenServer可以在逻辑上相互查看(通过ping实用程序)。
- CIFS(SAMBA)服务器运行和托管的CD ISO文件共享(不是必需的,但非常有用)。
Citrix XenServer存储库创建
这第一个过程中会经过的步骤来创建软件iSCSI启动器从XenServer主机戴尔PS5500E。
这种特殊的LUN使用质询握手身份验证协议 (CHAP),以限制访问iSCSI卷到一定的授权方。
要创建存储库,将出现传统的'XE'命令。 在创建存储库之前,需要获取正确的iSCSI信息。
传递'SR-探头“参数设置为”XE“实用工具将指示的XenServer查询为iSCSI IQN(iSCSI限定名称)的存储设备。
第一个命令首先会看起来很激烈,但它没有看起来那么糟。
# xe sr-probe type=lvmoiscsi device-config:target=X.X.X.X device-config:chapuser="youcl" device-config:chappassword="youcl_chap"
需要此第一个命令以收集SCSI IQN为存储库配置。 在继续之前,让我们来看看这个命令的所有部分。
- SR-探头 -用于查询iSCSI设备有关此XenServer主机创建的卷信息。
- 类型=用来告诉的XenServer存储库类型。 这将根据使用的系统而有所不同。 由于Dell PS5500的使用,在此命令中使用lvm over iSCSI。 请务必进行修改以适应存储设备类型。
- 设备配置:目标=用来告诉哪些XenServer的iSCSI设备通过IP地址查询。
- 设备配置:chapuser =这是用来验证到iSCSI设备。 在这个例子中的iSCSI卷已为用户“youcl”以前创建的。 通过在此命令中发送用户名和密码,iSCSI设备将回复必要的信息,以完成存储库的创建。
- 设备配置: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="youcl" device-config:chappassword="youcl_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="youcl 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="youcl" device-config:chappassword="youcl_chap" device-config:SCSIid=36090a028b04a9a0def60353420006046
如果一切顺利的话,系统将连接到iSCSI设备,然后返回新添加的存储库的UUID。
bea6caa4-ecab-8509-33a4-2cda2599fb75
该UUID输出是一个伟大的标志! 与所有系统管理任务一样,确认命令成功是一个好主意。 这可以用另一种'XE'命令来实现。
# xe sr-list name-label="youcl iSCSI Storage"
示例输出
uuid ( RO) : bea6caa4-ecab-8509-33a4-2cda2599fb75 name-label ( RW) : youcl 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服务器指南):
第一步是收集了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库 ,为虚拟机(guest)店安装介质。
接下来的步骤将是创建虚拟机,并从早期的网络文章将这些系统连接到正确的网络。