XenServer部署系列之03——添加本地存储

XenServer部署系列之03添加本地存储服务器


做业环境网络


服务器#1ide

OS:XenServer 6.2性能

Hostname:xsr01ui

Eth0 IP:192.168.0.241/24spa

Gateway:IP:192.168.0.1/24设计



1、关于XenServer存储3d


XenServer的安装过程,没有分区的操做,系统安装完成后,查看磁盘状况,会发现,即使是1T的硬盘,也只留了4G的空间,而且XenServer系统文件就已经占用了其中的1.9G,只剩下2G的小得可怜的空间,连一个CentOS6.5的系统镜像都放不下。放不了ISO镜像文件,那怎么能安装虚拟机呢?对于初学者而言,这是个头疼的问题。rest


wKiom1Oj8UiAdFD-AAFoyomaBRc929.jpg


wKioL1Oj8Rmh_I0kAAE4o9i1Qbc273.jpg


据资料介绍,XenServer的默认分区通常由三部分组成:第一个4G分区为XenServer根分区;第二个4G分区为升级操做的备份分区;第三个分区通常为磁盘的剩余空间,用于Local Storage使用。后二者都是看不见、不用做于其余存储的。
orm


那么,XenServer如何实现存储扩充呢?在XenServer中的引入存储仓库的概念,存储仓库(SR - Storage Repositories)是用来存储ISO或者VDI的。Citrix官方推荐使用共享存储,这也是XenServer设计的初衷和目标,与VMWare的产品设计很不相同。目前XenServer支持FC SAN、ISCSI SAN和NFS三种存储类型,根据虚拟化类型不一样,划分不一样的LUN类型来知足使用。此处涉及到存储服务器,对设备成本是有要求的。


若是应用环境相对简单,好比说,只有一台Dell R720服务器,那又该如何把XenServer玩起来呢?方法固然是有的,就是经过添加一个硬盘,来达到扩充存储的效果。



2、添加第二块硬盘


本案中,添加一个大小为300G的SAS硬盘,现要将其划分两个分区,分别挂载到/iso和/data两个目录,前者用于存放iso镜像存储,以做为本地ISO存储库;后者用做数据存储,用于存放导出的虚拟机模板。


添加硬盘的操做命令及过程,跟Red Hat Linux是同样的,按划分分区、激活分区、格式化分区、加载分区的步骤操做一遍,属于基本操做,就不详述了。


如下是本案添加硬盘、分区的命令,没用到lvm,操做相对简单。

fdisk -l

fdisk /dev/sdb

partx -a /dev/sdb (在这里将sdb划分为sdb一、sdb2两个分区)

cat /proc/partitions 

mkfs.etx3 /dev/sdb1

mkfs.ext3 /dev/sdb2

mkdir /iso

mkdir /data

vi /etc/fstab (在这里将sdb一、sdb2写入到加载列表)

mount –a


操做完成后,结果显示以下(注:我这里两个分区都已经装有数据了):

 

wKiom1Oj8aKA-SazAADbPYK4I7I678.jpg



3、添加本地ISO储存仓库


下面为该XenServer服务器创建一个本地iso档型式的储存仓库。其实也很简单。


首先,登入console,执行如下指令,建立存储仓库,

xe sr-create name-label=< Name of the SR > type=iso device-config:location=<Storage Directory> device-config:legacy_mode=true content-type=iso


再执行如下命令,重启toolstack,

xe-toolstack-restart

这样XenCenter中才会同步显示iso档。但笔者在实践中,发现不少时候不执行该命令也无所谓。注:执行这个命令,网络会掉线3秒左右,而后本身恢复。


本案中具体的命令下图所示,这里定义项目名称为“boot-iso”,其对应的存储目录为“/iso”。系统返回一个UUID(这个UUID在XenCenter上选择对应的SR而后选择“常规”选项能够看到),表示操做成功。


wKiom1Oj8cbh8hNUAAEY8Tcaa-k803.jpg


新增成功,在XenCenter中,能够看到多了一个名为“boot-iso”的项目,在其右侧内容框,切换到“Storage”选项,此时框内的列表内容为空,点击“Rescan”按钮,能够看到已上传到目录/iso的iso镜像以列表形式显示。此后,新上传iso镜像到/iso目录,在XenCenter中,点击此处的“Rescan”从新扫描,便可看到。


wKioL1Oj8bGwNqrvAAD5ZvGMqvs843.jpg


笔者在实践过程当中,曾出现过如下状况:


Rescan后,列表内容仍然为空,到系统中一查,发现目录/iso对应的/dev/sdb1已经自动被umount了,使用命令mount /dev/sdb1或mount –a(前提是已经在/etc/fstab文件中填写了挂载目录),再在XenCenter中Rescan,可看到镜像列表。


这种状况是在执行命令xe sr-create name-label=boot-iso type=iso device-config:location=/iso device-config:legacy_mode=true content-type=iso后发生的。以后,即便是重启系统,也不会再出现自动umount的状况。固然,若是是在/iso下再建一个iso文件夹,将目录/iso/iso做为boot-iso的话,在执行如下xe sr-create命令时,就不会出现这种状况了。


另外,有些资料说到,在添加本地ISO储存的操做前,要在XenServer本地开启nfs服务,把写/iso目录写入到/etc/exports文件里,以使得该目录成为nfs共享目录。可是笔者在实践中,这个操做不作,并没影响。


本地ISO存储库添加成功后,经过XenCenter新建虚拟机时,在“Installation Media”一步中,即可以选择里面的本地ISO镜像进行系统安装了。以下图所示。

 

wKioL1Oj8dGAKBzhAAD5ZvGMqvs668.jpg



4、删除本地ISO储存仓库


这里先科普一下。

在XenServer中,基本的存储库(SR)、物理块设备、虚拟磁盘映像、虚拟块设备之间的关系以下图:


 wKiom1Oj8h-hc6b4AABL9O1prIk793.jpg


其中,PBD为物理存储设备的抽象,基本没法改变,SR为XenServer对物理存储设备的抽象,起到组织管理的做用,SR的类型对虚机VDI的格式以及性能有必定的影响,可是SR的类型受限制于物理存储的形式,因此,暂停也跳过,VBD与VDI对应,而最终VM拿到的虚拟块设备VBD,则为VDI的虚拟,因此,SR中VDI的格式对存储空间消耗以及性能产生比较重要的影响。


存储仓库经过物理块设备(PBD)与XenServer相链接,PBD包含了存储仓库(SR)的配置信息。当要从XenServer主机上分离或者删除SR以前,颇有必要先将PBD断开。


若是创建错误,或要重复新增,想删除储存仓库时,在CenCenter中,右击对应的SR选择Detach。若是Detach不是一个可选项,那么这个SR正被占用着(对ISO类型的SR来讲有DVD挂载着,或者说有虚拟机正在其上运行着)。若是你已经分离了全部DVD驱动上的ISO而且中止了全部运行在此SR上的全部虚机,按照如下命令进行操做便可删除本地ISO存储库。


首先, 运行下面的命令来肯定SR的UUID:

xe sr-list name-label=<Name of the SR>

其次,肯定对应PBD的UUID:

xe pbd-list sr-uuid=<UUID of SR>

再次,断开PBD:

xe pbd-unplug uuid=<UUID of PBD>

最后,删除记录

xe sr-forget uuid=<UUID of SR>

注,也能够在XenCenter上右击对应的SR,若是Forget是可选项的话,点击Forget便可。 


本案中具体的命令以下图所示。

 

wKiom1Oj8kvBfY14AACpy4MVBWw444.jpg



5、添加本地虚拟机储存仓库


本案中,安装XenServer系统的硬盘大小为1T,自身存放10来个虚拟硬盘为50G的虚拟机不成问题。但在实际应用中,因为经过nfs等方式使用异地存储,本地硬盘用做存放虚拟机的元数据,所以安装XenServer系统的硬盘,即sda,通常都不会用大容量硬盘,以避免浪费。


可是,假如只有一台服务器用来搭建XenServer平台,且做为系统使用盘的sda容量比较小的话(好比说是一个146G的SAS硬盘),就须要经过增长硬盘设备(好比增长一个大小为300G的SAS硬盘,即sdb),以提供足够的存储空间给新增的虚拟机。


本案中已增长了一个硬盘sdb,并划分了两个分区sdb1和sdb2,格式化并挂载了,sdb1被用做ISO存储仓库,下面以sdb2来演示如何增长本地lvm储存仓库(一般把这个操做说成是,增长本地存储Local Storage)。本地Lvm储存仓库,是能够被用来存储新增的虚拟机的。


操做其实也很简单,与增长ISO存储库相似。 


首先,登入console,执行如下指令,查看本机的host uuid,

xe host-list

而后执行建立存储仓库的命令

xe sr-create content-type=user device-config:device=/dev/<sdbx> host-uuid=<host-uuid> name-label="Local Storage 2" shared=false type=lvm


注,另外一种方法,可经过分区的序列号来实现,

xe host-list

ll /dev/disk/by-id  (这一步查看硬盘的信息)

xe sr-create content-type=user device-config:device=/dev/disk/by-id/<scsi-xxxxxxxxxxxxxx> host-uuid=<host-uuid> name-label="Local Storage 2" shared=false type=lvm 


本案中具体的命令下图所示,这里定义项目名称为“Local Storage 2”,其对应的设备分区为sdb2。系统返回一个UUID(这个UUID在XenCenter上选择对应的SR而后选择“常规”选项能够看到),表示操做成功。

注:这里因为sdb2在开始时,做为数据空间被加载了,导至sr-create命令无效。须要先把sdb2 umount,再进行操做。

 

wKiom1Oj8n-gvy7ZAADHaUkx9wk520.jpg


新增成功,在XenCenter中,能够看到多了一个名为“Local Storage 2”的项目。XenServer的默认Storage是“Local Storage”,即sda,在“Local Storage 2”右击工菜单中有一个选项“Set as Default”可将其设置为默认存储。


wKiom1Oj9FSQIPWLAADuTFzz2tU345.jpg


之后,在新建虚拟机时,在为其分配虚拟硬盘时,既能够选择存储在Local Storage上,也能够选择存储在Local Storage 2上。以下图所示。关于如何建立虚拟机,后续篇章再述,此处略过。


wKiom1Oj8xeCxAzeAACE0ta1TLY833.jpg

 


6、删除本地lvm储存仓库


操做过程,与删除本地iso储存仓库相同,使用前文已述的命令:


首先, 运行下面的命令来肯定SR的UUID:

xe sr-list name-label=<Name of the SR>

其次,肯定对应PBD的UUID:

xe pbd-list sr-uuid=<UUID of SR>

再次,断开PBD:

xe pbd-unplug uuid=<UUID of PBD>

最后,删除记录

xe sr-forget uuid=<UUID of SR>


本案中具体的命令以下图所示。


wKiom1Oj8yvRinZAAACmJXylWTY872.jpg



7、其余


本案中,sdb2的定位本是做为单纯的数据存储的,用于存储导出的后缀为.xva的虚拟机文件的。也就是常规Linux系统中的数据空间。所以XenServer默认的可用数据空间实在过小了,只有4G。


在笔者的实验环境中,sdb2是一直做为数据存储空间用的,存放了不少资料,但通过上述第5、六两步的操做,再试图将sdb2 mount到系统做为数据空间里,出错,系统提示说“mount: you must specify the filesystem type”。悲剧啊,这个分区的格式被改了。

xe sr-create content-type=user device-config:device=/dev/disk/by-id/<scsi-xxxxxxxxxxxxxx> host-uuid=<host-uuid> name-label="Local Storage 2" shared=false type=lvm 

这条命令指定sdb2的类型为lvm,但lvm显然不是分区格式,不能被挂载。暂时没找到解决的方法,只好使用命令mkfs.ext3 /dev/sdb2将其从新格式化了。


注,在之后的篇章中,sdb2均是做为数据存储空间,被挂载到目录/data上使用的。

相关文章
相关标签/搜索