(NFS服务端配置 客户端配置 测试 及常见问题)
NFS共享存储:让不同的主机之间可以共享文件或目录
用途:(1)静态文件的贡献
(2)虚拟迁移
(3)web负载均衡
1.服务端配置
(1)修改主机名:
[root@server ~]# hostnamectl set-hostname server
(2)关闭防火墙:
[root@server ~]# systemctl stop firewalld
[root@server ~]# iptables -F
[root@server ~]# setenforce 0
(3)下载NFS软件包
(nfs-utils:NFS服务的主程序 rpcbind:NFS可视为一个RPC服务,在启动RPC程序之前,需要作好端口和功能的对应映射工作。映射工作由rpcbind服务完成。)
[root@server ~]# rpm -qa nfs-utils rpcbind #查看软件包是否存在
[root@server ~]# yum install nfs-utils rpcbind -y #下载安装软件包
(4)启动服务
[root@server ~]# systemctl start rpcbind #启动rpcbind
[root@server ~]# systemctl start nfs #启动nfs服务
[root@server ~]# systemctl enable rpcbind #配置rpcbind开机自启动
[root@server ~]# systemctl enable nfs #配置nfs开机自启动
(5)NFS配置文件
[root@server ~]# vim /etc/exports
每次写完配置文件都要重启服务:
[root@server ~]# systemctl reload nfs
若重启报错:
[root@server ~]# systemctl restart nfs-server.service
(6)创建共享目录并授权
[root@server ~]# mkdir /data
[root@server ~]# chown -R nfsnobody:nfsnobody /data #共享目录下的属主属组都为nfsnobody
(7)本地挂载测试
[root@server ~]# mount 192.168.253.132:/data /mnt #挂载
测试:
2.客户端配置
(1)下载安装软件包
[root@localhost ~]#yum install nfs-utils -y
(2)检查远端
(3)客户端挂载
[root@localhost ~]# mount -t nfs 192.168.253.132:/data /mnt #客户端挂载,地址为服务端地址。
(4)测试
(5)永久挂载:配置开机自动挂载
两种方法:(1)/etc/fstab
(2)/etc/rc.local
Centos6
- vim /etc/fstab #服务端启动比客户端启动慢,若服务端未启动,导致客户端启动报错,不建议使用(1)
2.vim /etc/rc.local 可以正常启动,但是服务端异常,将挂载是失败的 此时需要做挂载的监控。
echo "mount -t nfs 192.168.253.131:/data /mnt"
Centos7
(1)vim /etc/fstab #采用并的方式 所以不会出现centos6的问题
192.168.253.131:/data /mnt nfs defaults 0 0
(2) vim /etc/rc.local #要判断
chmod +x /etc/rc.d/rc.local
可以正常启动,但是服务端异常,将挂载是失败的
此时需要做挂载的监控。
缺点:开机后不知道是否挂载:
解决:开机后若没挂载,则自动挂载
[root@localhost ~]# vim /etc/rc.local #要加判断,负责开机不执行
#!/bin/bash
touch /var/lock/subsys/local
if [ -e /mnt ]
echo "mount -t nfs 192.168.253.131:/data /mnt"
fi
[root@localhost ~]# vim MPP #此文档中写需要挂载数据 和挂载点
192.168.253.131:/data /mnt
[root@localhost ~]# cat mount.sh
#!/bin/bash
while read line #使得读取MPP中的内容时,一行一行读
do
array=($line) #定义数组
df -h |grep -w "^${array[0]}" >/dev/null #-w:精确匹配
if [ $? -ne 0 ]
then
mount -t nfs ${array[0]} ${array[1]}
fi
sleep 1
done <MPP