一:搭建nfs server
1. 在Ubuntu机器上使用sudospt-get install nfs-kernel-server来安装nfs服务器端;
2. 创建一个nfs目录,比如/home/dff/nfs,并赋予nfs目录777的权限,将需要使用到的iso文件放进去,并同样赋予iso文件777的权限;
3. 修改/etc/exports文件,添加权限,格式如下:
NFS共享目录路径 客户机IP或者名称(参数1,参数2,...,参数n)
----》
NFS共享目录路径:即第二步中创建的nfs目录,如/home/dff/nfs;
客户机IP或者名称:此处填写连接此server的client端主机的ip地址或者是hostname,
如使用IP地址则可以使用通配符*,如192.168.1.*,只填写*则表示
为任何IP地址均可访问,此处也可以使用多个IP或者hostname,
用空格隔开,参数不共用;
参数:各参数含义如下所示,均顺序书写:
参数 |
说明 |
ro |
只读访问 |
rw |
读写访问 |
sync |
所有数据在请求时写入共享 |
async |
nfs在写入数据前可以响应请求 |
secure |
nfs通过1024以下的安全TCP/IP端口发送 |
insecure |
nfs通过1024以上的端口发送 |
wdelay |
如果多个用户要写入nfs目录,则归组写入(默认) |
no_wdelay |
如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置 |
hide |
在nfs共享目录中不共享其子目录 |
no_hide |
共享nfs目录的子目录 |
subtree_check |
如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认) |
no_subtree_check |
不检查父目录权限 |
all_squash |
共享文件的UID和GID映射匿名用户anonymous,适合公用目录 |
no_all_squash |
保留共享文件的UID和GID(默认) |
root_squash |
root用户的所有请求映射成如anonymous用户一样的权限(默认) |
no_root_squash |
root用户具有根目录的完全管理访问权限 |
anonuid=xxx |
指定nfs服务器/etc/passwd文件中匿名用户的UID |
anongid=xxx |
指定nfs服务器/etc/passwd文件中匿名用户的GID |
举例如下:
如允许所有主机访问,则可以写成:
/home/dff/nfs*(rw,sync,no_subtree_check, no_root_squash) (本例中即使用此种模式)
备注:共享目录可以有多个,需要分行书写;由于本例中的XenServer自带nfs客户端
功能,故不叙述客户端的安装,windows系统或者其他linux发行版均可以安装
nfs server,安装方法请自行在网上查找。
4.NFS server为自动开启,exports文件修改完成后使用命令exportfs –ra来重新载入exports配置文件,而后在NFS Server本机上使用如下命令来检查Server的共享功能十分正常:
dff@ubuntu:~$ ls /home/dff/nfs/
CentOS-5.8-x86_64-bin-DVD-1of2.iso CentOS-6.4-x86_64-bin-DVD1.iso
CentOS-5.8-x86_64-bin-DVD-2of2.iso
dff@ubuntu:~$ sudo mount -t nfs127.0.0.1:/home/dff/nfs /mnt
dff@ubuntu:~$ ls /mnt
CentOS-5.8-x86_64-bin-DVD-1of2.iso CentOS-6.4-x86_64-bin-DVD1.iso
CentOS-5.8-x86_64-bin-DVD-2of2.iso
dff@ubuntu:~$ sudo umount /mnt/
(备注:其他机器mount此目录的命令为mount -t nfs 192.168.1.3:/home/ky/nfs /mnt -onolock,不适用于本例)
5.NFSClient端检查此NFS Server十分正常的方法为使用如下命令:
Showmount –e “IP:/directory”(引号内填写NFS server的IP地址和nfs共享目录)
如能显示出NFS共享目录下的内容则表示Server配置正常;
6.检查防火墙和nfs目录的权限,请关闭防火墙并且赋予nfs共享目录内的文件以777的权限,否则会出现无法连接的问题;
二.在XenCenter中添加ISOlibrary
1.在XenCenter中点击New Storage按钮新增磁盘;
2.选择NFS ISO并确定;
3.输入一个词磁盘的名称,依个人爱好而定;
4.在location输入NFS Server的地址和nfs共享目录,规则为IP地址:/nfs共享目录,
在本例中地址为192.168.1.145:/home/dff/nfs;
5.等待添加完成后在Storage页点击scan按钮刷新,如能刷新出该共享目录下的iso文件
则表示此Storage添加成功;
三.创建PV类型虚拟机
1.点击New VM添加虚拟机,并从非snapshot中选择一个(即XenServer自带的),本例中
为创建CentOS5.8(64bit)的虚拟机,故选择CentOS 5(64-bit),并点击Next;
2.VM的name可以任意输入;
3.在Install media中选择刚刚穿件的NFS ISO中扫描出来的CentOS5.8的iso安装光盘:
4. 随后的Home Server选择默认的XenServer,CPU&Memory,Storage,Networking则可以按照需要选择合适的选项;
5. Create完成后则进入此VM的Console界面,进行此VM的初始化工作;
6. 接下来则是正常的CentOS系统的安装流程,其中的一步为安装方式的选择,
如图所示选择NFS image:
7. 而后为NFS server的输入界面,如图所示,分别在NFS server name和CentOS directory处输入前面所设置的NFS server的IP地址和nfs共享目录,而后点击OK即可:
(此处有可能会有错误提示,为“that directory could notbe mounted from the server nfs”,如出现此提示则选中第二步中添加的NFS ISOstorage重新scan一下,并重新创建VM)
8.其他的步骤则为标准的CentOS的创建步骤,需要注意的是需要在类型上选择Text模式而非GUI模式,成功后使用命令uname –r可以看到起内核版本为xen版本,如2.6.18-308.el5xen,则本VM为半虚拟化的VM;
(由于重要的几个参数在本例中均为正确的值,故第9步与第10步无需执行,可以作为了解之用)
9.关闭此VM,进入XenServer的控制台,使用命令xe vm-list name-label=centos params=uuid来获取刚刚创建的VM的uuid,centos需要修改为所创建的VM 的名称,当然也可以在此VM的General页面中看到其uuid;
10.VM参数查看使用xe vm-param-listuuid=
@1.检查半虚拟化启动类型PV-bootloader,此值需要为pygrub,如非此值则用如下命令来修改:
xe vm-param-set uuid=
(在本例中此处默认已经为pygrub,故无需修改);
@2.检查全虚拟化启动参数HVM-boot-policy,此值需为空,如下图所示:
如非此值则使用如下命令修改:
xe vm-param-set uuid=
@3.修改其显示参数,使用如下命令:
xe vm-param-set uuid=
(此处也可以不修改);
@4.检查起磁盘启动是否设置为true,参数名称为bootable,检查方法如下:
首先使用命令 xe vm-disk-list uuid=
而后使用命令xevbd-param-list uuid=
查看bootable是否为true,如为false则用如下命令来设置:
xe vbd-param-set uuid=
(本例亦无需修改)
11.安装xenserver-tools(此工具可提高虚拟机的磁盘和网络性能,必备),
在VM的general界面点击蓝色的XenServer tools not installed链接来从xs-tools.iso启动,并用如下命令来安装
[root@localhost ~]# mount/dev/xvdd /mnt
mount: block device /dev/xvdd iswrite-protected, mounting read-only
You have new mail in/var/spool/mail/root
[root@localhost ~]# cd /mnt
[root@localhost mnt]# ls
AUTORUN.INFcitrixxendriversx86.msi installwizard.msi
citrixguestagentx64.msi copyright.txt Linux
citrixguestagentx86.msi dotNetFx40_Full_x86_x64.exe README.txt
citrixxendriversx64.msi EULA_DRIVERS xenlegacy.exe
[root@localhost mnt]# cd Linux
[root@localhost Linux]#./install.sh
Detected `CentOS release 5.8(Final)' (centos version 5).
The following changes will bemade to this Virtual Machine:
* packages to beinstalled/upgraded:
- xe-guest-utilities-6.1.0-1029.x86_64.rpm
- xe-guest-utilities-xenstore-6.1.0-1029.x86_64.rpm
Continue? [y/n] y
Preparing...
###########################################[100%]
1:xe-guest-utilities-xens########################################### [50%]
2:xe-guest-utilities ########################################### [100%]
You should now reboot thisVirtual Machine.
而后重启VM,再次打开General页面会发现蓝色提示消失则表明安装成功;
12.到此则半虚拟化的VM创建完成,之后则可以用此VM来制作xva类型的模板;
其他:
1. 需要注意的是由于在使用中有可能会在此VM上安装驱动,那么由于VM缺少相应的header文件和devel文件(查看/usr/src/kernels会发现此路径下无文件),会导致驱动安装失败,故需要安装此两个文件,文件获取方法为,找到安装此VM使用的iso文件,将其挂载并在其CentOS目录下可以发现三个分别以kernel-headers,kernel-xen和kernel-xen-devel的文件,这三个文件的版本名称相同,与VM的uname –r显示相同,而后将开头为kernel-headers和开头为kernel-xen-devel的文件导出并安装在创建的VM上,即可保证驱动安装无异常(请勿使用不带xen的devel文件和与本VM内核版本不符的devel文件);
2. 当然也可以升级内核,但是同样的,需要升级带xen的内核版本,可在如下网站下载内核文件http://vault.centos.org/5.8/updates/x86_64/RPMS/(同样的,三个kernel文件的版本需要一致,headers文件不带xen,其他两个文件需为kernel-xen和kernel-xen-devel开头)
3. 同样的也有将现有的全虚拟化VM更改为半虚拟化的方式和其他文档,可参考如下链接:
http://support.citrix.com/article/CTX121875
http://zconkle.blogspot.hk/2012/04/xenserver-converting-centos-from-hvm-to.html