在XenServer 7.4 上启用NFS共享服务

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xht555/article/details/80464578

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

  

猜你喜欢

转载自blog.csdn.net/xht555/article/details/80464578
7.4