参考:《Citrix虚拟化实战:Xenserver共享NFS》
2010-01-27 14:32 | 699次阅读 | 【已有0条评论】发表评论
CSDN 云计算频道 | 作者:刘文君 | 收藏到我的网摘
地址: http://cloud.csdn.net/a/20100127/258587.html
首先确保xenserver1是独立服务器。如果xenserver1在某个XenServer资源池(pool)中,就必须脱离出来。脱离pool之前,确保export所有的虚拟机,fileformat建议选xva。
- [root@xenserver1 ~]# df
- Filesystem 1K-blocks Used Available Use% Mounted on
- /dev/sda1 4127440 1774972 2142804 46% /
- none 388584 0 388584 0% /dev/shm
- /opt/xensource/packages/iso/XenCenter.iso
- 44414 44414 0 100% /var/xen/xc-install
- [root@xenserver1 ~]#
主分区只剩下2G的空间,这就必须删除XenServer6安装时创建的虚拟机存储空间。(折腾了一番后发现,其实还是重装系统简单。)
- [root@xenserver1 ~]# xe sr-list type=lvm
- uuid (RO) :0ff3d613-2a48-2173-328b-4ff6bd746fa1 【复制这个本地存储SR的UUID】
- name-label ( RW): Local storage
- name-description ( RW):
- host ( RO): xenserver1
- type ( RO): lvm
- content-type ( RO): user
- [root@xenserver1 ~]#
- [root@xenserver1 ~]# xe pbd-listsr-uuid=0ff3d613-2a48-2173-328b-4ff6bd746fa1 【本地存储SR的UUID】
- uuid (RO) :d6ff6d4d-6e2b-bc69-fdd0-512d7c5e23ed 【物理存储块pbd的UUID】
- host-uuid ( RO): cacddab0-b05c-42ea-b324-131ca428f914
- sr-uuid ( RO): 0ff3d613-2a48-2173-328b-4ff6bd746fa1
- device-config (MRO): device:/dev/disk/by-id/scsi-SATA_WDC_WD3200AAKS-_WD-WMAV2W528467-part3
- currently-attached ( RO): true
- [root@xenserver1 ~]#
- [root@xenserver1 ~]# xe pbd-unpluguuid=d6ff6d4d-6e2b-bc69-fdd0-512d7c5e23ed 【断开本地存储的SR】
- [root@xenserver1 ~]#
- [root@xenserver1 ~]# xe sr-destroyuuid=0ff3d613-2a48-2173-328b-4ff6bd746fa1 【移除本地存储的SR】
- [root@xenserver1 ~]#
- [root@xenserver1 ~]# xe sr-list type=lvm
- [root@xenserver1 ~]# 【已经没有结果输出了。】
- [root@xenserver1 ~]#
- [root@xenserver1 ~]# fdisk -l
- WARNING: GPT (GUID Partition Table) detected on '/dev/sda'! Theutil fdisk doesn't support GPT. Use GNU Parted.
- Disk /dev/sda: 320.0 GB, 320072933376 bytes
- 256 heads, 63 sectors/track, 38761 cylinders
- Units = cylinders of 16128 * 512 = 8257536 bytes
- DeviceBoot Start End Blocks Id System
- /dev/sda1 * 1 38762 312571223+ ee EFI GPT
- [root@xenserver1 ~]#
这段意思是fdisk无法修改此 系统的分区表,应该用 Parted。系统内没有parted软件包,yum install parted 提示No package parted available. 看来还需要解决yum.repos,以便以后方便安装其他软件包。这样:
- [root@xenserver1-NEW ~]# ls /etc/yum.repos.d
- CentOS-Base.repo CentOS-Media.repo Citrix.repo
- [root@xenserver1-NEW ~]#
- [root@xenserver1-NEW ~]# vi /etc/yum.repos.d/CentOS-Base.repo
- # CentOS-Base.repo
- #
- # The mirror system uses the connecting IP address of the clientand the
- # update status of each mirror to pick mirrors that are updated toand
- # geographically close to the client. You shoulduse this for CentOS updates
- # unless you are manually picking other mirrors.
- #
- # If the mirrorlist= does not work for you, as a fall back you cantry the
- # remarked out baseurl= line instead.
- #
- #
- [base]
- name=CentOS-$releasever - Base
- mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
- #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
- gpgcheck=1
- gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
- exclude=kernel-xen*, *xen*
- enabled=0
- #released updates
- .......
- .......
但是,接着用yum install parted能找到软件包,却无法下载。DNS设置不知道跑哪去了,临时改一下DNS:
- [root@xenserver1 ~]# vi /etc/resolv.conf
- nameserver 202.106.196.115
- [root@xenserver1 ~]# yum install parted
- .........
- Installed:
- parted.i3860:1.8.1-28.el5
- Complete!
parted安装好了,试着改分区。 * * *注意:以下操作不可模仿,结果是灾难性的!! * * *
- [root@xenserver1 ~]# parted
- GNU Parted 1.8.1
- Using /dev/sda
- Welcome to GNU Parted! Type 'help' to view a list ofcommands.
- (parted) print 【查看分区】
- Model: ATA WDC WD3200AAKS-7 (scsi)
- Disk /dev/sda: 320GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Number Start End Size Filesystem Name Flags
- 1 1049kB 4295MB 4294MB ext3
- 2 4296MB 8590MB 4294MB
- 3 8591MB 320GB 311GB lvm
- (parted) mkfs 【制作文件系统】
- Warning: The existing file system will be destroyed and all data onthe
- partition will be lost. Do you want to continue?
- Yes/No? y
- Partition number?3 【输入3】
- File system? [ext2]? 【回车】
- (parted) print 【再次查看分区】
- Model: ATA WDC WD3200AAKS-7 (scsi)
- Disk /dev/sda: 320GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Number Start End Size Filesystem Name Flags
- 1 1049kB 4295MB 4294MB ext3
- 2 4296MB 8590MB 4294MB
- 3 8591MB 320GB 311GB ext2 lvm
- (parted) quit 【退出】
- 【修改 /etc/fstab 】
- [root@xenserver1 ~]# vi /etc/fstab
- /dev/sda3 /nfs ext2 defaults 0 0
* * *注意:以上操作不可模仿,结果是灾难性的!! * * *
现在重新安装XenServer,并且选择不创建VM的存储空间,有进展了。见图,在 Virtual Machine Storage 设置里,敲空格去掉sda前面的*号
(博客注册时间还不够一周,上不了图)
重新安装好了,hostname是 xenserver1-NEW ,再下载Parted,看看分区:
- [root@xenserver1-NEW /]# parted /dev/sda print
- Model: ATA WDC WD3200AAKS-7 (scsi)
- Disk /dev/sda: 320GB
- Sector size (logical/physical): 512B/512B
- Partition Table: gpt
- Number Start End Size Filesystem Name Flags
- 1 1049kB 4295MB 4294MB ext3
- 2 4296MB 8590MB 4294MB
- 3 8591MB 320GB 311GB ext2 lvm
- Information: Don't forget to update /etc/fstab, ifnecessary.
可以看到,分区默认就是ext2了,挂载一下试试。
- [root@xenserver1-NEW /]# mkdir /newvol
- [root@xenserver1-NEW /]# mount -t auto /dev/sda3 /newvol
- [root@xenserver1-NEW /]# ls -l -a /newvol
- total 56
- drwxr-xr-x 3 root root 4096 Dec20 19:25 .
- drwxr-xr-x 23 root root 4096 Dec 20 19:47..
- drwxr-xr-x 2 root root 49152 Dec 20 19:25lost+found
- [root@xenserver1-NEW /]#
挂载成功了!
修改 /etc/fstab,添加这一行:- [root@xenserver1-NEW ~]# vi /etc/fstab
- /dev/sda3 /newvol ext2 defaults 0 0
重启:
- [root@xenserver1-NEW ~]# shutdown -r now
准备NFS要用的目录:
- [root@xenserver1-NEW /]# mkdir/newvol/iso #做ISO SR
- [root@xenserver1-NEW /]# mkdir/newvol/vm #保存虚拟硬盘文件
- [root@xenserver1-NEW ~]# ls -l -a /newvol
- total 64
- drwxr-xr-x 5 root root 4096 Dec20 20:39 .
- drwxr-xr-x 25 root root 4096 Dec 20 20:46..
- drwxr-xr-x 2 root root 4096 Dec20 20:39 iso
- drwxr-xr-x 2 root root 49152 Dec 20 19:25lost+found
- drwxr-xr-x 2 root root 4096 Dec20 20:39 vm
顺便比较一下xenserver2 能不能挂载sda3:
- [root@xenserver2 ~]# mount -t auto /dev/sda3 /mnt
- mount: you must specify the filesystem type
失败!带有Virtual Machine Storage的 XenServer 无法直接挂载 sda3。
XenServer6.0 是基于 Redhat Enterprise Linux / CentOS 定制的XEN虚拟化系统,本身其实就是Linux。那么Linux上可用的服务XenServer6也应该行,那就试试吧,过程如下。
验证服务是否存在:
- [root@xenserver1-NEW ~]# service nfs status
- rpc.mountd is stopped
- nfsd is stopped
- [root@xenserver1-NEW ~]#
- [root@xenserver1-NEW ~]# service portmap status
- portmap (pid 5584) is running...
- [root@xenserver1-NEW ~]#
设置nfs,portmap自动启动:
- [root@xenserver1-NEW ~]# chkconfig --level 3 nfs on
- [root@xenserver1-NEW ~]# chkconfig --level 3 portmap on
- [root@xenserver1-NEW ~]#
将共享的目录写到exports文件中,保存虚拟磁盘的目录使用async (异步方式)是考虑提高性能,会牺牲一些可靠性。
- [root@xenserver1-NEW ~]# vi /etc/exports
- /newvol/iso 192.168.1.0/24(ro,no_root_squash,sync)
- /newvol/vm 192.168.1.232(rw,no_root_squash,async)
- /newvol/vm 192.168.1.233(rw,no_root_squash,async)
输出共享目录:
- [root@xenserver1-NEW ~]# exportfs -rv
- exporting 192.168.1.0/24:/newvol/iso
- exporting 192.168.1.232:/newvol/vm
- exporting 192.168.1.233:/newvol/vm
- [root@xenserver1-NEW ~]#
重启nfs,portmap:
- [root@xenserver1-NEW ~]# service nfs restart
- [root@xenserver1-NEW ~]# service portmap restart
查看端口号:
- [root@xenserver1-NEW ~]# rpcinfo -p
- program vers proto port
- 100000 2 tcp 111 portmapper
- 100000 2 udp 111 portmapper
- 100021 1 udp 38994 nlockmgr
- 100021 3 udp 38994 nlockmgr
- 100021 4 udp 38994 nlockmgr
- 100021 1 tcp 59675 nlockmgr
- 100021 3 tcp 59675 nlockmgr
- 100021 4 tcp 59675 nlockmgr
- 100003 2 udp 2049 nfs
- 100003 3 udp 2049 nfs
- 100003 4 udp 2049 nfs
- 100003 2 tcp 2049 nfs
- 100003 3 tcp 2049 nfs
- 100003 4 tcp 2049 nfs
- 100005 1 udp 688 mountd
- 100005 1 tcp 691 mountd
- 100005 2 udp 688 mountd
- 100005 2 tcp 691 mountd
- 100005 3 udp 688 mountd
- 100005 3 tcp 691 mountd
- [root@xenserver1-NEW ~]#

在/etc/services结尾增加两行:
- [root@xenserver1-NEW ~]# vi /etc/services
- mountd 688/udp # nfs mountd
- mountd 691/tcp # nfs mountd
添加iptables防火墙规则:
- [root@xenserver1-NEW ~]# vi /etc/sysconfig/iptables
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 691 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 2049 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 688 -j ACCEPT
最好重启一下服务器:
- [root@xenserver1-NEW ~]# shutdown -r now
再次验证nfs,portmap服务已经启动,查看服务端口:
- [root@xenserver1-NEW ~]# service nfs status
- rpc.mountd (pid 6334) is running...
- nfsd (pid 6331 6330 6329 6328 6327 6326 6325 6324) is running...
- [root@xenserver1-NEW ~]#
- [root@xenserver1-NEW ~]# service portmap status
- portmap (pid 5580) is running...
- [root@xenserver1-NEW ~]#
- [root@xenserver1-NEW ~]# rpcinfo -p
- program vers proto port
- 100000 2 tcp 111 portmapper
- 100000 2 udp 111 portmapper
- 100024 1 udp 600 status
- 100024 1 tcp 600 status
- 100003 2 udp 2049 nfs
- 100003 3 udp 2049 nfs
- 100003 4 udp 2049 nfs
- 100021 1 udp 35545 nlockmgr
- 100021 3 udp 35545 nlockmgr
- 100021 4 udp 35545 nlockmgr
- 100021 1 tcp 46506 nlockmgr
- 100021 3 tcp 46506 nlockmgr
- 100021 4 tcp 46506 nlockmgr
- 100003 2 tcp 2049 nfs
- 100003 3 tcp 2049 nfs
- 100003 4 tcp 2049 nfs
- 100005 1 udp 688 mountd
- 100005 1 tcp 691 mountd
- 100005 2 udp 688 mountd
- 100005 2 tcp 691 mountd
- 100005 3 udp 688 mountd
- 100005 3 tcp 691 mountd
- [root@xenserver1-NEW ~]#
验证共享目录:
- [root@xenserver1-NEW ~]# showmount -e 127.0.0.1
- Export list for 127.0.0.1:
- /newvol/vm 192.168.1.233,192.168.1.232
- /newvol/iso 192.168.1.0/24
- [root@xenserver1-NEW ~]#
但是。。。
- [root@xenserver1-NEW ~]# showmount -e 192.168.1.233
- mount clntudp_create: RPC: Port mapper failure - RPC: Unable to receive
- [root@xenserver1-NEW ~]#
也就是说,nfs只接受本机连接请求。百度了,没找到合适的答案;谷歌了,哎,有了。
《Citrix虚拟化实战:Xenserver共享NFS》
2010-01-27 14:32 | 699次阅读 | 已有0条评论发表评论
CSDN 云计算频道 | 作者:刘文君 | 收藏到我的网摘
地址:http://cloud.csdn.net/a/20100127/258587.html
其中提到
cat /etc/sysconfig/network
NETWORKING=yes
PMAP_ARGS=-l
这个配置说明:portmap只监听本地回环,注释掉即可
真是及时雨,好吧,看看:
- [root@xenserver1-NEW ~]# cat /etc/sysconfig/network
- NETWORKING=yes
- HOSTNAME=xenserver
- DNSDEV=xenbr0
- GATEWAYDEV=xenbr0
- [root@xenserver1-NEW ~]#
没有文中提到的PMAP_ARGS=-l呀,我们来找一找:
- [root@xenserver1-NEW ~]# grep "PMAP_ARGS=-l" /etc -R
- /etc/sysconfig/portmap:PMAP_ARGS=-l
- [root@xenserver1-NEW ~]#
找到了,在配置文件 /etc/sysconfig/portmap 里,把PMAP_ARGS=-l 注释掉。
- [root@xenserver1-NEW ~]# vi /etc/sysconfig/portmap
- #PMAP_ARGS=-l
重启nfs,portmap:
- [root@xenserver1-NEW ~]# service nfs restart
- Shutting down NFS mountd: [ OK ]
- Shutting down NFS daemon: [ OK ]
- Shutting down NFS services: [ OK ]
- Starting NFS services: [ OK ]
- Starting NFS daemon: [ OK ]
- Starting NFS mountd: [ OK ]
- [root@xenserver1-NEW ~]#
- [root@xenserver1-NEW ~]# service portmap restart
- Stopping portmap: [ OK ]
- Starting portmap: [ OK ]
- [root@xenserver1-NEW ~]#
再验证共享目录:
- [root@xenserver1-NEW ~]# showmount -e 127.0.0.1
- mount clntudp_create: RPC: Program not registered
- [root@xenserver1-NEW ~]# showmount -e 192.168.1.233
- mount clntudp_create: RPC: Program not registered
???
再重启一次 nfs,portmap 服务:
- [root@xenserver1-NEW ~]# service nfs restart
- [root@xenserver1-NEW ~]# service portmap restart
- [root@xenserver1-NEW ~]# showmount -e 192.168.1.233
- Export list for 192.168.1.233:
- /newvol/vm 192.168.1.233,192.168.1.232
- /newvol/iso 192.168.1.0/24
- [root@xenserver1-NEW ~]#
可以了!
现在从 xenserver2测试一下nfs连接。注意,测试的客户机也必须启动pormap服务,否则会收到mount.nfs: Input/output error,默认是启动的。
- [root@xenserver2 ~]# mkdir /mnt/nfsiso
- [root@xenserver2 ~]# mkdir /mnt/nfsvm
- [root@xenserver2 ~]# mount -t nfs 192.168.1.233:/newvol/iso /mnt/nfsiso
- [root@xenserver2 ~]# mount -t nfs 192.168.1.233:/newvol/vm /mnt/nfsvm
测试了一下,/mnt/nfsiso是只读的,/mnt/nfsvm是读写的。
从客户机卸载已挂载的nfs共享:
- [root@xenserver2 ~]# umount /mnt/nfsiso
- [root@xenserver2 ~]# umount /mnt/nfsvm
再重启服务器一次吧,重启后测试一切正常。
至此,XenServer NFS安装完成了。
重新将xenserver1 加入到资源池中,为资源池指定NFS ISO library(192.168.1.233:/newvol/iso), NFS virtual disk storage(192.168.1.233:/newvol/vm /mnt/nfsvm),并且成功把xenserver2上的虚拟机移动到NFS virtual disk storage 中。

========================================================
排错过程中,找到一个办法是用nmap验证端口状态:
- [root@xenserver ]# yum install nmap
- [root@xenserver ]#
用nmap验证端口状态:
- [root@xenserver1-NEW ~]# nmap 192.168.1.233
- Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2011-12-20 15:48 CST
- Interesting ports on 192.168.1.233:
- Not shown: 1673 closed ports
- PORT STATE SERVICE
- 22/tcp open ssh
- 80/tcp open http
- 111/tcp open rpcbind
- 443/tcp open https
- 600/tcp open ipcserver
- 690/tcp open unknown
- 2049/tcp open nfs
- Nmap finished: 1 IP address (1 host up) scanned in 1.284 seconds
- [root@xenserver1-NEW ~]#
========================================================
转载自:
http://blog.csdn.net/panblack/article/details/7100694