NFS文件服务器及客户端挂载


1、NFS介绍

NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过TCP/IP网络共享资源。将NFS主机分享的目录,挂载到本地客户端当中,本地NFS的客户端应用可以读写位于远端NFS服务器上的文件。在客户端看起来,就像访问本地文件一样。

2、NFS原理

2.1、NFS服务原理

NFS支持的功能相当多,而不同的功能都会使用不同的程序来启动,每启动一个功能就会启用一些端口来传输数据,因此NFS的功能对应的端口并不固定,客户端要知道NFS服务器端的相关端口才能建立连接进行数据传输,而RPC就是用来统一管理NFS端口的服务,并且统一对外的端口是111,RPC会记录NFS端口的信息,如此我们就能够通过RPC实现服务端和客户端沟通端口信息。PRC最主要的功能就是指定每个NFS功能所对应的port number,并且通知客户端,记客户端可以连接到正常端口上去。

在启动NFS SERVER之前,首先要启动RPC服务(即portmap或rpcbind服务)否则NFS SERVER就无法向RPC服务区注册,另外,如果RPC服务重新启动,原来已经注册好的NFS端口数据就会全部丢失。因此此时RPC服务管理的NFS程序也要重新启动以重新向RPC注册。一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行/etc/init.d/nfs reload或exportfs –rv即可使修改的/etc/exports生效。

2.2、NFS服务的优缺点

优点 :
a.节省本地存储空间,将常用的数据存放在一台服务器可以通过网络访问该数据
缺点 :
a.局限性容易发生单点故障,服务器机宕机的话所有客户端都不能访问
b.在高并发情况下NFS效率/性能有限
c.客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)
d.NFS的数据是明文的,对数据完整性不做验证
e.多台机器挂载NFS服务器时,连接管理维护麻烦

3、NFS安装

# 1、检查rcpbind 和 nfs是否安装
rpm -qa nfs-utils rpcbind
# 2、安装nfs 和 rpcbind
yum install nfs-utils rpcbind -y
# 3、通过systemctl设置自启动
systemctl enable nfs-server
systemctl enable rpcbind
# 4、验证是否自启动
systemctl is-active nfs-server
systemctl is-active rpcbind

4、NFS共享及客户端挂载

4.1、NFS共享
# 1、通过/etc/exports文件定义共享目录,vi编辑exports文件
vi /etc/exports
# 2、加入共享目录和共享规则
#以读写的方式共享目录 /public 能被IP为 10.84.196.* 网段的服务器访问
/opt/resources 10.84.196.*(rw,sync,no_root_squash)
#共享格式为:
共享目录绝对路径    授权访问的IP或网段(权限1,权限2)
​
权限说明
ro                      只读访问  
rw                      读写访问  
sync                    所有数据在请求时写入共享  
async                   NFS在写入数据前可以相应请求  
secure                  NFS通过1024以下的安全TCP/IP端口发送  
insecure                NFS通过1024以上的端口发送  
wdelay                  如果多个用户要写入NFS目录,则归组写入(默认)  
no_wdelay               如果多个用户要写入NFS目录,则立即写入,当使用async时,无需此设置。  
hide                    在NFS共享目录中不共享其子目录  
no_hide                 共享NFS目录的子目录  
subtree_check           如果共享/usr/bin之类的子目录时,强制NFS检查父目录的权限(默认)  
no_subtree_check        和上面相对,不检查父目录权限  
all_squash              共享文件的UID和GID映射匿名用户anonymous,适合公用目录。  
no_all_squash           保留共享文件的UID和GID(默认)  
root_squash             root用户的所有请求映射成如anonymous用户一样的权限(默认)  
no_root_squash          root用户具有根目录的完全管理访问权限  
anonuid=xxx          指定NFS服务器/etc/passwd文件中匿名用户的UID  
anongid=xxx          指定NFS服务器/etc/passwd文件中匿名用户的GID

# 3、保存退出后,通过exportfs命令重新加载共享文件列表/etc/exports,生效设置
exportfs -r
# 4、查看共享目录
exports -v

# exportfs - 管理NFS共享文件系统列表
exportfs命令:
  -a     打开或取消所有目录共享。
   -o     options,... 指定一列共享选项,与 exports(5) 中讲到的类似。
   -i     忽略 /etc/exports 文件,从而只使用默认的和命令行指定的选项。
   -r     重新共享所有目录。它使 /var/lib/nfs/xtab 和 /etc/exports 同步。它将 /etc/exports 中已删除的条目从 /var/lib/nfs/xtab 中删除,将内核共享表中任何不再有效的条目移除。
   -u     取消一个或多个目录的共享。
   -f     在“新”模式下,刷新内核共享表之外的任何东西。任何活动的客户程序将在它们的下次请求中得到mountd 添加的新的共享条目。
   -v     输出详细信息。当共享或者取消共享时,显示在做什么。显示当前共享列表的时候,同时显示共享的选项。

# 卸载所有共享
exportfs -au
# 重挂所有
exportfs -ar
4.2、客户端挂载
# 1、使用showmount命令查看远程NFS服务器共享目录
showmount ip -e
# 2、新建挂载点
mkdir -p /opt/resources
# 3、挂载
mount -t nfs ip:/opt/resources/ /opt/resources/
# 4、设置开机挂载
vi /etc/rc.local
# 将挂载命令加入文件即可
mount -t nfs ip:/opt/resources/ /opt/resources/
# 5、验证挂载
mount |grep "/opt/resources/"


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM