早些时候曾写过一篇博客《将XenServer系统盘上的未分配空间利用起来》,目的是想在XenServer配置一个NFS服务器,把常用ISO镜像共享出来,方便安装虚拟机,同时也把磁盘空间最大化利用起来。
目前安装的XenServer版本是7.4,默认NFS服务都安装了,只是没有启用,其他版本的XenServer暂时未一一测试。查看已安装的XenServer版本信息:
# cat /etc/redhat-release XenServer release 7.4.0 (xenenterprise)
关于NFS的概念性的东西在这里就不在赘述了,百度上一大把,那么就直接进入启用XenServer的NFS服务流程。
一、rpcbind服务配置
查看rpcbind服务状态:
# systemctl status rpcbind.service ● rpcbind.service - RPC bind service Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled) Drop-In: /etc/systemd/system/rpcbind.service.d └―slice.conf Active: inactive (dead)显示rpcbind服务已启用,但服务未启动,那么先启动rpcbind服务:
# systemctl status rpcbind.service再次查看rpcbind服务状态:
# systemctl status rpcbind.service ● rpcbind.service - RPC bind service Loaded: loaded (/usr/lib/systemd/system/rpcbind.service; indirect; vendor preset: enabled) Drop-In: /etc/systemd/system/rpcbind.service.d └―slice.conf Active: active (running) since Sat 2018-05-26 20:26:01 CST; 3s ago Process: 26334 ExecStart=/sbin/rpcbind -w ${RPCBIND_ARGS} (code=exited, status=0/SUCCESS) Main PID: 26336 (rpcbind) CGroup: /control.slice/rpcbind.service └―26336 /sbin/rpcbind -w查看rpcbind服务侦听的端口:
# netstat -lntup|grep rpcbind tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 26336/rpcbind tcp6 0 0 :::111 :::* LISTEN 26336/rpcbind udp 0 0 0.0.0.0:111 0.0.0.0:* 26336/rpcbind udp 0 0 0.0.0.0:646 0.0.0.0:* 26336/rpcbind udp6 0 0 :::111 :::* 26336/rpcbind udp6 0 0 :::646 :::* 26336/rpcbind或:
lsof -i :111 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rpcbind 26336 rpc 6u IPv4 129212 0t0 UDP *:sunrpc rpcbind 26336 rpc 8u IPv4 129214 0t0 TCP *:sunrpc (LISTEN) rpcbind 26336 rpc 9u IPv6 129215 0t0 UDP *:sunrpc rpcbind 26336 rpc 11u IPv6 129217 0t0 TCP *:sunrpc (LISTEN)或:
# rpcinfo -p localhost program vers proto port service 100000 4 tcp 111 portmapper 100000 3 tcp 111 portmapper 100000 2 tcp 111 portmapper 100000 4 udp 111 portmapper 100000 3 udp 111 portmapper 100000 2 udp 111 portmapper
二、nfs-server服务配置
查看nfs-server服务状态
# systemctl status nfs-server.service ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled) Active: inactive (dead)显示nfs-server服务在开机时未启动,即禁用状态。那么首先设置nfs服务开机启动:
# systemctl enable nfs-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.查看nfs-server服务是否开机启动:
# systemctl list-unit-files nfs-server.service UNIT FILE STATE nfs-server.service enabled 1 unit files listed.启动和查看nfs-server服务
# systemctl start nfs-server.service # systemctl status nfs-server.service ● nfs-server.service - NFS server and services Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled) Active: active (exited) since Sat 2018-05-26 20:52:45 CST; 24s ago Process: 540 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS) Process: 537 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS) Main PID: 540 (code=exited, status=0/SUCCESS) CGroup: /system.slice/nfs-server.service
三、NFS共享设置
创建共享目录和设置共享权限:
# mkdir -p /nfs/iso # chown -R nfsnobody.nfsnobody /nfs/iso/NFS exports文件的配置格式如下:
NFS共享的目录 NFS客户端地址1(参数1,参数2,...) 客户端地址2(参数1,参数2,...)关于NFS客户端地址的设置类型如下:
指定IP: 192.168.0.1 指定子网所有主机: 192.168.0.0/24 指定域名的主机: test.com 指定域名所有主机: *.test.com 所有主机: *参数说明如下:
ro:目录只读 rw:目录读写 sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性 async:将数据先保存在内存缓冲区中,必要时才写入磁盘 all_squash:将远程访问的所有普通用户及所属组都映射为匿名用户或用户组(nfsnobody) no_all_squash:与all_squash取反(默认设置) root_squash:将root用户及所属组都映射为匿名用户或用户组(默认设置) no_root_squash:与rootsquash取反 anonuid=xxx:将远程访问的所有用户都映射为匿名用户,并指定该用户为本地用户(UID=xxx) anongid=xxx:将远程访问的所有用户组都映射为匿名用户组账户设置共享:
# vi /etc/exports 然后追加: /nfs/iso 192.168.100.0/24(rw,sync,all_squash)重新加载NFS配置:
# exportfs -rv exporting 192.168.100.0/24:/nfs/iso查看NFS服务器挂载情况:
# showmount -e 192.168.100.10 Export list for 192.168.100.10: /nfs/iso 192.168.100.0/24
最后要注意防火墙端口设置。
四、上传ISO文件到XenServer共享目录
首先在XenServer上安装“lrzsz”文件上传下载组件,然后使用rz命令上传ISO镜像,注意ISO镜像文件名中不能包含中文字符,否则XenCenter中无法扫描到该ISO镜像。
# yum -y --enablerepo=base install lrzsz # rz
五、XenCenter中使用NFS共享ISO库
1. 新建SR
2. 选择新建的存储类型,这里选NFS ISO:
3. 设置存储名称:
4. 设置存储路径,即NFS共享路径。注意这里的路径中的服务器地址使用的是域名,需要事先在本机host配置中添加一条域名解析记录:
5. 刚创建的ISO库中已经可以看到刚上传的镜像文件了:
文章来源: 在XenServer上启用NFS共享服务