在XenServer上启用NFS共享服务

匿名 (未验证) 提交于 2019-12-03 00:21:02

  早些时候曾写过一篇博客《将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库中已经可以看到刚上传的镜像文件了:

  

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!