NFS实现多服务器文件的共享

一、目标

  1. 在Linux服务器1上创建nas服务器,并指定可读写目录
  2. 在Linux服务器2上挂载上述nas磁盘
  3. 在Linux服务器2上设置开机自动挂载nas磁盘

二、环境信息

两台Linux系统服务器,如下:

服务器1 IP为192.168.31.101

服务器2 IP为192.168.31.102

三、在服务器1上搭建NAS

下载安装软件,以下操作均需使用root权限

3.1、检查服务器上开启nfs服务的必要软件是否存在:

rpm -qa|grep nfs
rpm -qa|grep rpcbind

如果含有这两个软件:nfs-utils-1.3.0-0.33.el7.x86_64、libnfsidmap-0.25-15.el7.x86_64,则不用再安装,如果没有,则进行下一步。

3.2、在服务器1安装nfs服务端软件:

yum -y install nfs-utils rpcbind

3.3、设置开机自动启动服务:

chkconfig nfs on
chkconfig rpcbind on

3.4、启动服务:

service rpcbind start
service nfs start

3.5、创建并配置共享目录:

创建用于共享的目录,sharefile(注意:共享目录不能创建于root用户目录下,否则客户端将因权限问题被拒绝执行挂载)

mkdir /sharefile

如果是root权限才能访问的目录,一定要修改权限,否则普通用户可能无法访问该共享目录:

chown -R was:was /sharefile

3.6、把用于共享的目录配置到文件里面:

vi /etc/exports

文件内容如下:

/sharefile 192.168.31.102(rw,sync,insecure) 
#如果多台客户端需要共享,则配置多台
/sharefile 192.168.31.103(rw,sync,insecure) 
/sharefile 192.168.31.104(rw,sync,insecure) 

3.7、刷新配置立即生效:

exportfs -a

3.8、重启生效(启nfs服务器端):

#重启nfs服务
service nfs restart
#查看状态,确保状态是active
service nfs status

3.9、查看可挂载的共享目录:

showmount -e localhost

显示出了刚才在配置文件里面添加的路径和IP地址,则状态正常。

四、在服务器2上挂载NAS

4.1、使用root用户登录服务器2(客户端)执行挂载:

# 1、显示NFS服务器(IP为192.168.56.10)的输出目录列表:
#  showmount 选项
# -d:仅显示已被NFS客户端加载的目录;
# -e:显示NFS服务器上所有的共享目录。
[root@localhost ~]# showmount -e 192.168.56.10

#执行挂载
mount -t nfs 192.168.31.101:/sharefile /rpafile

df -h 查看是否挂载成功。

4.2、开机自动挂载,给自启动配置加执行权限:

chmod 755 /etc/rc.d/rc.local

4.3、修改配置文件rc.local,在文件最后增加启动配置:

vi /etc/rc.local

4.4、重启服务器:

reboot

4.5、df -h 查看挂载结果。

4.6、客户端卸载挂载盘:

#使用以下命令强行解除挂载
umount -l /rpafile

或者使用
#将会显示使用这个模块的pid
fuser -m /rpafile
#将会直接kill那个pid
fuser -mk /rpafile

五、附录

5.1、/etc/exports参数解释:
/etc/exports是NFS服务器配置文件,它用于定义共享目录和访问权限。它的格式如下:

<目录路径> <允许访问的主机>(<选项>)

其中,目录路径表示要共享的服务端目录路径,允许访问的主机表示可以访问该目录的主机名或IP。


参数解释:

(1) ro 该主机对该共享目录有只读权限
(2) rw 该主机对该共享目录有读写权限
(3) root_squash 客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户
(4) no_root_squash 客户机用root访问该共享文件夹时,不映射root用户
(5) all_squash 客户机上的任何用户访问该共享目录时都映射成匿名用户
(6) anonuid 将客户机上的用户映射成指定的本地用户ID的用
(7) anongid 将客户机上的用户映射成属于指定的本地用户组ID
(8) sync 资料同步写入到内存与硬盘中
(9) async 资料会先暂存于内存中,而非直接写入硬盘
(10) insecure 允许从这台机器过来的非授权访问
(11) subtree_check 如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)
(12) no_subtree_check 和上面相对,不检查父目录权限
(13) wdelay 如果多个用户要写入NFS目录,则归组写入(默认)
(14 )no_wdelay 如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。
(15) hide 在NFS共享目录中不共享其子目录
(16) no_hide 共享NFS目录的子目录
(17) secure NFS通过1024以下的安全TCP/IP端口发送
(18) insecure NFS通过1024以上的端口发送

5.2、exportfs命令

 exportfs命令提供了一系列参数,‌用于控制NFS共享的设置和状态。‌以下是一些常用的参数及其功能:‌

-a:‌用于打开或取消所有目录的共享。‌
-r:‌重新共享所有目录,‌使/var/lib/nfs/xtab和/etc/exports同步,‌删除/etc/exports中已删除的条目,‌并移除内核共享表中任何不再有效的条目。‌
-u:‌取消一个或多个目录的共享。‌
-f:‌在“新”模式下,‌刷新内核共享表之外的任何东西,‌任何活动的客户程序将在它们的下次请求中得到mountd添加的新的共享条目。‌
-v:‌输出详细信息,‌显示在共享或取消共享时正在做什么,‌以及显示当前共享列表时的共享选项。‌
使用exportfs命令时,‌无需重启NFS服务即可使配置文件生效,‌这对于动态调整NFS共享非常有用。‌例如,‌当修改了/etc/exports配置文件后,‌可以通过执行exportfs -arv命令来立即使更改生效,‌而不是重新启动NFS服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值