在CentOS 7上设置NFS服务器并配置客户端自动挂载

时间:2020-03-21 11:47:08  来源:igfitidea点击:

NFS服务器用于使其数据通常可供客户端使用。
自动安装程序用于管理autofs的安装点。

NFS服务器安装

软件包rpcbind和tcp_wrappers作为依赖项安装。

# yum install nfs-utils
# systemctl enable rpcbind && systemctl start rpcbind
# systemctl enable nfs-server && systemctl start nfs-server

NFS服务器配置

我们的NFS服务器的FQDN为spacewalk.igi.local,位于10.8.8.0/24 LAN上。

为NFS共享创建逻辑卷

检查卷组:

# vgs
  VG         #PV #LV #SN Attr   VSize   VFree 
  vg_centos7   1   4   0 wz--n- 127.21g 75.22g

在vg_centos7组中创建一个名为lv_nfs的5GB逻辑卷,格式为ext4并安装在'/mnt/nfs'上。

# lvcreate --name lv_nfs --size 5G vg_centos7
# mkfs.ext4 -m 0 /dev/mapper/vg_centos7-lv_nfs
# mkdir -p /mnt/nfs
# mount /dev/mapper/vg_centos7-lv_nfs /mnt/nfs
# mkdir -p /mnt/nfs/public
# chown -R nfsnobody:nfsnobody /mnt/nfs

不要忘记添加到fstab中以在重新引导后进行永久挂载。

配置NFS导出:

# cat /etc/exports
/mnt/nfs  10.8.8.0/24(rw,sync,no_subtree_check,root_squash,all_squash)

在本例中使用的参数:

  • rw:允许在NFS卷上进行读写请求,
  • 同步:仅在将更改提交到稳定存储后才回复请求,
  • no_subtree_check:禁用子树检查,
  • root_squash:将(root)uid/gid 0的请求映射到nfsnobody uid/gid,
  • all_squash:将所有uid和gid映射到nfsnobody uid/gid。

导出份额:

# exportfs -rav
exporting 10.8.8.0/24:/mnt/nfs

查看:

# showmount -e
Export list for spacewalk.igi.local:
/mnt/nfs 10.8.8.0/24

NFS服务器防火墙

允许从10.8.8.0/24 LAN进行NFS,rpcbind(portmapper)和mountd访问:

# iptables -A INPUT -s 10.8.8.0/24 -p tcp -m multiport --dport 111,2049,20048 -j ACCEPT
# iptables -A INPUT -s 10.8.8.0/24 -p udp -m multiport --dport 111,2049,20048 -j ACCEPT

客户端NFS和自动挂载配置

在CentOS 7客户端计算机上,安装autofs:

# yum install autofs nfs-utils

将以下行添加到文件“ /etc/auto.master”中:

/nfs  /etc/auto.nfs

创建具有以下内容的文件“ /etc/auto.nfs”:

public  -rw  spacewalk.igi.local:/mnt/nfs/public

启用并重新启动autofs服务:

# systemctl enable autofs && systemctl restart autofs

我们应该注意到自动挂载创建的“/nfs”目录。
以普通用户身份进入“/nfs”目录,该文件夹应为空:

$cd /nfs
$ls -a
.  ..

现在转到NFS挂载的'/nfs/public'目录:

$cd ./public
$ls -la
total 4
drwxr-xr-x. 2 nfsnobody nfsnobody 4096 Mar 19 17:56 .
drwxr-xr-x. 3 root      root         0 Mar 19 18:11 ..