一句话介绍nfs:网络文件系统,实现linux之间共享存储
准备环境
- 关闭防火墙:
systemctl stop firewalld.service 临时关闭防火墙(临时关闭);
systemctl disable firewalld.service 开机关闭;————》》软件层面的防火墙
- 关闭SElinux:
setenforce 0 临时关闭;
getenforce 查看selinux的状态;
vim /etc/sysconfig/selinux --SELINUX=disabled 永久修改。
- 配置网络,确保linux主机之间网络通畅
安装软件
- nfs服务端:yum -y install rpcbind nfs-utils # nfc是基于rpc服务的,所以rpcbind也要安装
- nfs客户端:yum -y install rpcbind (或者切到 CentOS系统盘的Packages目录,rpm -ivh rpcbind
修改配置(仅nfs服务端)
-
vim /etc/exports 该文件不一定存在,可以自己创建
- /share 192.168.22.0/(rw,async) # 共享目录路径 客户端ip(选项)
- 共享目录:nfs服务器需要共享给客户端的目录
- 客户端:网络中可以访问nfs共享目录的客户端ip,有这么几种表示方式:
- 指定ip地址的主机:192.168.22.11
- 通过ip地址段指定子网中的主机:192.168.22.0/24
- *:所有主机
- 选项(选项之间以逗号','分割):
- ro # 只读权限
- rw # 读写权限
- sync # 同步,数据更安全,速度慢
- async #异步,速度快,效率高,安全性低
- ro # 只读权限
- nfs层面开启读写权限,系统也要对others开启读写权限:chmod o+w /共享目录
重启服务
- 为nfs和rpc设置开机启动:
- systemctl enable nfs-server
- systemctl enable rpcbind # 服务端和客户端都要开启
- nfs服务端
- system restart nfs-server # 重启nfs服务
- exportfs # 查看已开启的共享服务
- system restart nfs-server # 重启nfs服务
- 客户端
- showmount -e nfs服务端ip # 查看nfs服务端的可用共享目录
- mount /服务端共享目录 /客户端目录 # 将服务端的共享目录挂载到客户端本机
nginx负载均衡的web服务共享nfs存储
- 负载机和web机配置好nginx服务
- 设置一台机器为nfs服务端,方法如上文所述
- 所有web机将nfs服务端的共享目录挂载到web机本机目录
- 修改所有机器的网站根目录为挂载好的目录
- 重启所有机器的nginx服务:systemctl restart nginx
- 这样就实现了所有web机都使用nfs共享存储来提供统一的web服务