Linux使用NFS作为文件共享目录服务

最近需要多台服务器共享同一个目录,做一个共享盘管理文件,so使用nfs

一 、NFS介绍(转自网络)

NFS(Network File System)即网络文件系统,它的主要功能是通过网络让不同的机器系统之间可以彼此共享文件和目录。NFS服务器可以允许NFS客户端将远端NFS服务器端的共享目录挂载到本地的NFS客户端中。在本地的NFS客户端的机器看来,NFS服务器端共享的目录就好像自己的磁盘分区和目录一样。一般客户端挂载到本地目录的名字可以随便,但为方便管理,我们要和服务器端一样比较好。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
NFS最早是由Sun公司发展出来的,
简单的来说:它就是是可以透过网络,让不同的主机、不同的操作系统可以共享存储。
以下是NFS最显而易见的好处:

    1. 节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
    1. 用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
    1. 一些存储设备CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。

二、环境安装

环境准备:
CentOS7*2 ip:192.168.2.62(NFS服务端) 192.168.2.61(NFS客户端)
两台机器均需要提前安装nfs服务:yum install nfs-utils -y

三、服务端配置

创建需要共享的nfs目录(默认关闭防火墙,nfs的端口为2049)

mkdir /data/nfs                   #创建需要共享的nfs目录
echo "test" > /data/nfs/test      #先创建一个文件,等配完全部方便验证
vim /etc/exports                  #修改nfs服务端配置文件
/data/javaApp/  192.168.2.* (rw,sync,root_squash)       #配置要连接的服务端的nfs信息,*表示所有

参数说明

ro:共享目录只读;
rw:共享目录可读可写;
all_squash:所有访问用户都映射为匿名用户或用户组;
no_all_squash(默认):访问用户先与本机用户匹配,匹配失败后再映射为匿名用户或用户组;
root_squash(默认):将来访的root用户映射为匿名用户或用户组;
no_root_squash:来访的root用户保持root帐号权限;
anonuid=<UID>:指定匿名访问用户的本地用户UID,默认为nfsnobody(65534);
anongid=<GID>:指定匿名访问用户的本地用户组GID,默认为nfsnobody(65534);
secure(默认):限制客户端只能从小于1024的tcp/ip端口连接服务器;
insecure:允许客户端从大于1024的tcp/ip端口连接服务器;
sync:将数据同步写入内存缓冲区与磁盘中,效率低,但可以保证数据的一致性;
async:将数据先保存在内存缓冲区中,必要时才写入磁盘;
wdelay(默认):检查是否有相关的写操作,如果有则将这些写操作一起执行,这样可以提高效率;
no_wdelay:若有写操作则立即执行,应与sync配合使用;
subtree_check(默认) :若输出目录是一个子目录,则nfs服务器将检查其父目录的权限;
no_subtree_check :即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率;

启动NFS服务端
NFS服务是依赖于RPC服务的,我们查看下状态

systemctl status rpcbind    查看下RPC状态

systemctl start nfs-server    启动nfs-server程序

systemctl enable nfs-server  设置NFS服务端为开机启动

四、客户端配置

验证下是否能连接服务端

showmount -e 192.168.2.62

出现以上及成功

进行客户端挂载,创建同服务端的目录

mkdir /data/nfs
mount -t nfs 192.168.2.62:/data/nfs    /data/nfs   #挂载
cat /data/nfs/test

这种方式为临时挂载,下面把挂载加入开机启动

vim /etc/fstab
192.168.2.61:/data/nfs /data/nfs nfs defaults 0 0

完事~

原文地址:https://www.cnblogs.com/shook/p/13667794.html