XenServer部署系列之04添加共享存储
作业环境
XenServer服务器
OS:XenServer 6.2
Hostname:xsr01
Eth0 IP:192.168.0.241/24
Gateway:IP:192.168.0.1/24
NFS服务器
OS:CentOS 6.4
Hostname:nfs01
Eth0 IP:192.168.0.204/24
Gateway:IP:192.168.0.1/24
运行软件:nfs,rpcbind
一、关于XenServer存储
XenServer的安装过程,没有分区的操作,系统安装完成后,查看磁盘情况,会发现,即便是1T的硬盘,也只留了4G的空间,并且XenServer系统文件就已经占用了其中的1.9G,只剩下2G的小得可怜的空间,连一个CentOS6.5的系统镜像都放不下。放不了ISO镜像文件,那怎么能安装虚拟机呢?对于初学者而言,这是个头疼的问题。
那么,XenServer如何实现存储扩充呢?在XenServer中的引入存储仓库的概念,存储仓库(SR - Storage Repositories)是用来存储ISO或者VDI的。Citrix官方推荐使用共享存储,这也是XenServer设计的初衷和目标,与VMWare的产品设计很不相同。目前XenServer支持FC SAN、ISCSI SAN和NFS三种存储类型,根据虚拟化类型不同,划分不同的LUN类型来满足使用。此处涉及到存储服务器,对设备成本是有要求的。
文本主要以NFS为例,讲解如何添加共享存储。具体的实现,操作起来并不难,因为大部分在操作,都是在XenCenter上图形界面进行的。
XenServer的安装相关事宜,在《XenServer部署实录——系统安装及许可》一文中已述,这里不表。
二、搭建NFS服务器
首先简单了解一下什么叫NFS。
NFS 是Network File System的缩写,即网络文件系统。一种使用于分散式文件系统的协定,由Sun公司开发,于1984年向外公布。功能是通过网络让不同的机器、不同的操作系统能够彼此分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在类Unix系统间实现磁盘文件共享的一种方法。
NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件。
下面开始NFS服务器的搭建,对于熟悉Linux的IT来说,这是件很容易的事情。
本案中,NFS所在的服务器系统信息如下:
OS:CentOS release 6.4 (Final)
IP:192.168.0.204/24
分区:/boot(500M),/(50G),/home(955G),swap(4G)
注,本案中该系统是运行在另一台XenServer上的虚拟机,采用XenServer中的CentOS6.4模板进行安装,采用默认的分区方式。这种做法是最小化安装,许多软件包都没装,包括nfs,得手动安装,比较麻烦。
在Red Hat Linux/CentOS 系统中,NFS的安装非常简单,只需要两个软件包即可,而且在通常情况下,是作为系统的默认包安装的。
nfs-utils-*:包括基本的NFS命令与监控程序
rpcbind:支持安全NFS RPC服务的连接(注,这是CentOS6下的软件包,在CentOS 5 中 为portmap)
可以这么理解RPC和NFS的关系:NFS是一个文件系统,而RPC负责信息的传输。
通过以下命令查看系统是否已安装NFS,
# rpm -qa | grep nfs
# rpm –qa | grep rpcbind
如果当前系统中没有安装NFS所需的软件包,需要手工进行安装,并设置启动。
# yum install rpcbind*
# yum install nfs-utils-*
# service rpcbind start
# service nfs start
# chkconfig rpcbind on
# chkconfig nfs on
在/home目录创建iso,data两个文件夹,开通过nfs实现共享,分别用作于XenServer的镜像存储仓库和虚拟机存储仓库。
# mkdir -p /home/iso
# mkdir -p /home/data
# vi /etc/exports (注,下面两行为编辑的内容)
/home/data *(rw,sync,no_root_squash)
/home/iso *(rw,sync,no_root_squash)
# exportfs –a
通过以下命令查看共享情况,如果有列出共享目录,则表示共享成功。
# showmount -e 192.168.0.204
Export list for 192.168.0.204:
/home/data *
/home/iso *
共享设置完成后,要以iptables中开放相关端口(这个有些复杂),或直接关闭iptables(这个最简单),否则对方访问不过来。
三、添加NFS VHD
在客户端使用XenCener连接远端xsr01主机。以下的操作在XenCenter上进行。
右击xsr01主机,在弹出的菜单中选择“New SR”,将弹出“New Storage Repository”对话框,再在里面进行相关的设置。如下图所示。
选择“NFS VHD”类型。
为该SR设置一个名字,这里采用默认命名。
填写nfs共享目录的路径。注意了,中间有个冒号的。
添加成功后,在xsr01下可以看到添加了一个名为“NFS virtual disk storage”的项目,并且自动成为默认的本地存储。
选中“NFS virtual disk storage”,在界面右则 “General、Storage、Logs”选项卡中,可以看到其容量、存储内容、日志等信息。
如果添加不成功,提示“The SR failed to complete the operation.Check your setting and try again.”请检查防火墙。
四、添加NFS ISO
操作过程与添加NFS VHD类似,如下图所示。
在“Storage”选项卡中,可以看到,此时ISO存储仓库里有两个ISO镜像可用。
五、添加CIFS ISO
CIFS,也提一下概念。CIFS(Common Internet File System)是Microsoft推出的一款网络文件系统。在Win OS 中,CIFS集成在OS 内部,无需额外添加软件,所有机器都是对等的,扮演双重角色,可以作Sever,也可以是Client。相比之下,NFS要求Client必须安装专用软件。
NFS是独立于传输的,可使用TCP或UDP;CIFS面向网络连接的共享协议,对网络传输的可靠性要求高,常使用TCP/IP。NFS保留了unix的文件格式特性,如所有人、组等等;CIFS则完全按照Win OS的风格来做。
CIFS在生产环境中使用的不多,但在项目部署的前期及一些临时操作处理上,还是会常用到的。下面演示如何添加CIFS ISO。
首先,当然要有一台装有Win OS的服务器向外进行文件共享。
本案中,CIFS所在的操作系统,是本案XenCenter所在的系统,很普通的一台PC机,信息如下:
OS:Windows XP SP3
IP:192.168.0.102/24
Gateway:IP:192.168.0.1/24
这里将E盘下的ISO文件夹设置为共享。这是IT的基本功,就不多说了。如图所示。(注,本案中,没有域控环境。如果该Windows XP加入了域控,这里还需要设置访问权限。)
以下的操作在XenCenter上进行。操作过程与添加NFS VHD类似,如下图所示。
注意,这个路径的写法与前面nfs的路径不同。如果该Windows XP加入了域控,这里需要填写被允许访问的用户名及其密码,当然,也可以使用Windown XP本地管理员帐号及密码进行验证。
六、其他
以上操作顺利完成后,在新建虚拟机时,便用可以选用“CIFS ISO library”或“NFS ISO library”中的ISO镜像(比如CentOS6.4),作为安装源。
虚拟机的虚拟硬盘,默认存储到“NFS virtual disk storage”存储仓库,当然,也可以选择本地原有的本地存储“Local storage on xsr01”。
就单机而言,存储在哪里都一样,但如果是多台XenServer主机,做了资源池,需要进行XMotion等高可用性操作时,NFS共享存储的强大优势就体现出来了。
在实际生产场所,由于使用到存储设备,更多的是使用ISCSI方式添加存储,优势更大。
关于虚拟机的建立、导入、导出、克隆等操作,这里暂且不作表述,留待下一章节。