概念:
NFS 网络文件系统
rpcbind主要是在NFS共享时候负责通知客户端,用来进行消息通知的服务,类似于一个中介服务
第一大步、服务端:
一、安装nfs-utils,不用装rpcbind
yum -y install nfs-utils
二、启动rpcbind和NFS
ystemctl start rpcbind (先启动rpcbind)
systemctl start nfs (后启动nfs)
systemctl enable rpcbind(rpcbind开机自启动)
ystemctl enable rpcbind 查状态
三、创建共享目录 /opt/share
cd /opt
mkdir share 创建文件夹
chmod -R 777 share (授权最高)
四、修改配置文件 /etc/exports
vim /etc/exports
/opt/share *(rw,all_squash,sync) (*可以用某个固定的IP网段替换)
nfs server端有上面这个配置,第一个参数是共享目录,第二个参数白名单IP,第三个括号里的参数是权限,第二个参数配置成*,rainbond上就能挂载了;
大概列举几个权限
参数 | 作用 |
ro | 只读 |
rw | 读写 |
root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 |
no_root_squash | 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 |
all_squash | 无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户 |
sync | 同时将数据写入到内存与硬盘中,保证不丢失数据 |
async | 优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据 |
还有很多的权限可以网上去查!!!
五、重启nfs服务
exportfs -r (每次修改配置文件都要执行此命令)
systemctl restart rpcbind (重启rpcbind)
systemctl restart nfs (重启nfs)
第二大步、客户端:
一、客户端安装nfs
yum -y install nfs-utils
二、客户端创建目录
mkdir tmp1
chmod -R 777 tmp1 (授权)
三、挂载到nfs服务器
命令:mount -t nfs 服务器ip:/opt/share /tmp1
ps:tmp1是客户端的文件夹 挂载到服务端下(服务器ip:/opt/share)
四、取消挂载
umount -lf 客户端共享目录
五、修改/etc/sysconfig里面的nfs文件,指定mountd端口,防火墙 放行portmapper端口/udp,mountd端口/tcp
启动防火墙:systemctl start firewalld
关闭防火墙:systemctl stop firewalld
检查防火墙状态:systemctl status firewalld
查看防火墙状态:firewall-cmd --state
重新加载配置:firewall-cmd --reload
查看开放的端口:firewall-cmd --list-ports
开启防火墙端口:firewall-cmd --zone=public --add-port=9200/tcp --permanent
查看nfs服务器对外共享目录:showmount -e 服务器IP
查看服务端已挂载的客户端:netstat -an | grep 2049
总结:服务端和客户端装在两个不同的服务器上,进行挂载,设置以上权限后,两边互通,任一边增删改文件后另一边也是同步的;服务器内存不够可以通过nfs挂载扩充空间,可以挂服务器,或者外部的阿里云存储之类;
如果客户端系统崩溃或者文件删除了,服务端也会丢失。应该有另外的权限,服务端设置权限后,客户端即使崩溃也不会丢失数据???再研究研究!!!