NFS共享存储服务搭建
NFS简介
NFS网络文件系统(做文件存储,共享)
- 依赖于RPC (远端过程调用)客户端访问服务器的过程由RPC服务管理
- 需安装nfs-utils、rpcbind软件包
- 系统服务: nfs、 rpcbind
- 共享配置文件: /etc/exports (唯一 一个配置文件为空的文件)
NFS工作与原理
客户机存在RPC服务,RPC服务会向NFS服务器索要开放的端口号,(NFS服务不是固定的端口对外开放服务,端口具有随机性),所以RPC服务是专门用来管理端口的。NFS服务启动时RPC同时启动,在启动过程中NFS会向RPC服务申请要开放的端口号,客户端的RPC服务也会通过TCP/IP协议连接到服务端的RPC服务询问客户端需要的访问的端口号,这时,服务端RPC服务告知客户端PRC服务开放的端口号。之后客户端通过访问服务器IP和从RPC服务获取的端口号来访问NFS服务,访问同时NFS服务映射了一个本地文件访问的路径去访问本地磁盘里的文件。所以RPC是在此过程中的中间调度的一个程序。
NFS环境部署
一、NFS服务器
-
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
重启网卡,在/opt下面创建两个目录
systemctl restart network mkdir /opt/web1 mkdir /opt/web2
-
进入到 /opt/web1,编辑一个index.html的文件做测试
cd /opt/web1 vi index.html <html><tittle>web1</tittle><body><h1>This is web1<h1><body></html>
-
进入到 /opt/web2,编辑一个index.html的文件做测试
cd /opt/web2 vi index.html <html><tittle>web2</tittle><body><h1>This is web2<h1><body></html>
二、客户机
使用两台客户机做测试用
客户机1
-
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
重启网卡
systemctl restart network
客户机2
-
编辑网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
重启网卡
systemctl restart network
-
关闭防火墙
3.1 临时关闭防火墙systemctl stop firewalld setenforce 0
3.2 永久关闭防火墙
systemctl disable firewalld vi /etc/selinux/config SELINUX=disabled
可以ping一下主机的连通性,确保实验环境
三、NFS服务搭建
服务器
-
yum安装NFS服务
yum -y install nfs-utils
-
编辑
vi /etc/exports /opt/web1 20.0.0.19(ro) /opt/web2 20.0.0.20(ro) 字符 权限 ro 只读,不允许更改 rw 读写 sync 服务器和客户端开启同步 no_root_squash root身份访问服务器
-
启动服务
systemctl start nfs systemctl start rpcbind
-
NFS服务器产看自己共享的目录
showmount -e
-
查看NFS是否开启
systemctl status nfs
四、客户机(测试)
-
安装apache
yum -y install httpd
-
开启http服务
systemctl start httpd
-
查看服务是否开启
systemctl status httpd
-
查询NFS服务器发布的共享目录
showmount -e 20.0.0.18
4.1 常见错误
- clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
- clnt_create: RPC:端口映射器失败-无法接收:errno 113(没有到主机的路由)
4.2 解决方法:
-
在服务器上
iptables -F
-
回到客户机测试一下,如果还是出现相同错误,执行下面命令
systemctl stop firewalld setenforce 0
4.3 clnt_create: RPC: Program not registered
-
在服务器上
rpc.mountd
客户机1
-
将服务器的目录文件挂载到本地
mount 20.0.0.18:/opt/web1 /var/www/html
-
检查挂载情况
df -Th
-
永久挂载
vi /etc/fstab 20.0.0.18:/opt/web1 nfs defaults,_netdev0 0
客户机2
-
将服务器的目录文件挂载到本地
mount 20.0.0.18:/opt/web2 /var/www/html
-
检查挂载情况
df -Th
-
永久挂载
vi /etc/fstab 20.0.0.18:/opt/web2 nfs defaults,_netdev0 0
五、测试
-
打开浏览器输入
http://localhost
- 或者是输入IP地址测试