NFS,Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。其实就是有一个NFS服务器A,然后A把自己的某个路径共享出去,有N个客户端A,B,C……,假设有两个客户端B和C,那么B和C可用把本地某个路径挂载到A共享出去的路径下,当A的内容修改时,B、C的内容同时修改,B或C任一内容修改,其他机器同步修改,B和C访问的其实是A共享出去的路径,但是读写和操作本地路径完全一样。
以下过程如无特殊说明或su切换,均为root下执行:
服务端安装
服务器端安装NFS过程如下:
##yum安装rpc及NFS
yum -y install nfs-utils rpcbind
##切换到admin用户,新建个共享文件夹/home/admin/app/fs,文件夹所有者就是admin
su admin
mkdir /home/admin/app/fs
##切换到root,启动NFS服务
su
service rpcbind start #必须先启动rpc,后启动nfs
service nfs start
##添加允许的客户端机器,允许10.1.x.x/16机器共享目录
vi /etc/exports
/home/admin/app/fs10.1.x.x/16(rw,no_root_squash,no_all_squash,sync,fsid=0)
##重新加载nfs配置
exportfs -rv
判断是否启动成功:
rpcinfo -t localhost nfs
说明安装的nfs支持3-4版本,如果没有输出,说明没启动成功:
根据端口判断是否启动成功:
rpcinfo -p
设置开机自启动:
systemctl enablerpcbind.service
systemctl enablenfs-server.service
设置防火墙:假设NFS总共向外暴露111/222/333三个端口,故需要加三条记录:
firewall-cmd --state
firewall-cmd --permanent--add-rich-rule="rule family="ipv4" sourceaddress="10.1.x.x/16" port protocol="tcp"port="111" accept"
firewall-cmd --permanent--add-rich-rule="rule family="ipv4" sourceaddress="10.1.x.x/16" port protocol="tcp"port="222" accept"
firewall-cmd --permanent--add-rich-rule="rule family="ipv4" source address="10.1.x.x/16" portprotocol="tcp" port="333" accept"
firewall-cmd --reload
firewall-cmd --list-all
客户端安装
在需要共享NFS的虚拟机安装(10.1.x.1):
##安装NFS
yum install -y nfs-utils
##启动NFS
service rpcbind start
##切换到admin账户,新建挂载文件夹
su admin
mkdir /home/admin/app/fs
##切换到root,挂载NFS
su
mount -t nfs 10.1.x.1:/home/admin/app/fs//home/admin/app/fs/ -o proto=tcp -o nolock
如果要取消挂载:
umount /home/admin/app/fs/
开机自动挂载:
vi /etc/fstab
##新增以下内容
10.1.x.1:/home/admin/app/fs /home/admin/app/fsnfs nolock 0 0
即可实现开机自动挂载。
至此,NFS服务端和客户端配置完毕,可以实现文件共享了。