网络文件系统NFS的作用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络文件系统NFS的作用?相关的知识,希望对你有一定的参考价值。

对Windows 有何做作用?

  NFS是Net File System的简写,即网络文件系统.
  网络文件系统是FreeBSD支持的文件系统中的一种,也被称为NFS. NFS允许一个系统在网络上与它人共享目录和文件。通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
  以下是NFS最显而易见的好处:
  1.本地工作站使用更少的磁盘空间,因为通常的数据可以存放在一台机器上而且可以通过网络访问到。
  2.用户不必在每个网络上机器里头都有一个home目录。Home目录 可以被放在NFS服务器上并且在网络上处处可用。
  3.诸如软驱,CDROM,和 Zip® 之类的存储设备可以在网络上面被别的机器使用。这可以减少整个网络上的可移动介质设备的数量。
  NFS至少有两个主要部分:一台服务器和一台(或者更多)客户机。客户机远程访问存放在服务器上的数据。为了正常工作,一些进程需要被配置并运行。
  NFS 有很多实际应用。下面是比较常见的一些:
  1.多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
  2.在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
  3.几台机器可以有通用的/usr/ports/distfiles 目录。这样的话,当您需要在几台机器上安装port时,您可以无需在每台设备上下载而快速访问源码。
  注:NFS 由Sun microsystems 公司开发。是一种网络操作系统
  是使用底层传输层协议TCP/IP的应用层协议
参考技术A NFS server可以看作是一个FILE SERVER,它可以让你的PC通过网络将远端得NFS SERVER共享出来的档案MOUNT到自己的系统中,在CLIENT看来使用NFS的远端文件就象是在使用本地文件一样。
NFS协议从诞生到现在为止,已经有多个版本,如NFS V2(rfc1094),NFS V3(rfc1813)(最新的版本是V4(rfc3010)。
二、各NFS协议版本的主要区别
V3相对V2的主要区别:
1、文件尺寸
V2最大只支持32BIT的文件大小(4G),而NFS V3新增加了支持64BIT文件大小的技术。
2、文件传输尺寸
V3没有限定传输尺寸,V2最多只能设定为8k,可以使用-rsize and -wsize 来进行设定。
3、完整的信息返回
V3增加和完善了许多错误和成功信息的返回,对于服务器的设置和管理能带来很大好处。
4、增加了对TCP传输协议的支持
V2只提供了对UDP协议的支持,在一些高要求的网络环境中有很大限制,V3增加了对TCP协议的支持
*5、异步写入特性
6、改进了SERVER的mount性能
7、有更好的I/O WRITES 性能。
9、更强网络运行效能,使得网络运作更为有效。
10、更强的灾难恢复功能

nfs

(1)nfs简介

作用:通过网络的不同的主机之间共享资源,支持多节点挂载并发写入
特点:单台,适合小型网络集群架构,非常稳定;大型公司使用(mfs,glusterfs,fastdfs)
nfs优点:部署和维护简单;数据是在文件系统之上,是能看见真实的数据,大型分布式文件系统都是看不到数据的;可靠稳定
nfs缺点:存在单点故障;高并发NFS效率和性能有限;客户端认证基于ip和主机名; nfs数据是明文的,nfs本身对数据完整性不作验证
注意:生产环境中不要出现ip地址,使用主机名代替

(2)环境准备

服务器系统               角色      ip          主机名
Centos7.3 x86_64    nfs服务器  192.168.1.31    nfs-server
Centos7.3 x86_64    nfs客户端  192.168.1.32    httpd01
Centos7.3 x86_64    nfs客户端  192.168.1.33    httpd02

(3)服务器端配置

0)关闭防火墙和selinux

systemctl stop firewalld.service 
systemctl disable firewalld.service
sed -ri ‘/^SELINUX=/cSELINUX=disabled‘ /etc/sysconfig/selinux
setenforce 0

1)安装和启动服务

yum install nfs-utils rpcbind  -y 
systemctl restart rpcbind           //必须要启动rpcbind服务,nfs服务需要向rpcbind服务注册端口
systemctl enable rpcbind
systemctl start nfs-server 
systemctl enable nfs-server 

2)创建共享数据目录和准备首页内容

mkdir /webdata
echo "nfs test....." >/webdata/index.html 

3)修改配置文件

格式
共享目录 客户端ip或网段(属性1,属性2)

#vim /etc/exports 
/webdata        192.168.1.0/24(rw,sync,no_root_squash)              //如果nfs客户端是root的话,访问nfs服务器的共享目录也是有root的权限
exportfs -v                                                         //使其配置生效
exportfs -rv                                                        //如果修改了/etc/exports文件,使用该命令重新加载

4)在nfs服务器上验证资源

rpcinfo -p localhost                                // 检查nfs服务是否向rpcbind注册端口
showmount -e 192.168.1.31                           //查看nfs server的共享资源
mount -t nfs 192.168.1.31:/webdata /mnt             //本机测试挂载

(4)客户端配置

1)安装和启动httpd

yum install httpd -y 
systemctl start httpd 
systemctl enable httpd 

2)安装工具和验证nfs server的共享资源

#yum install nfs-utils -y                                       //也要安装,不然没有showmount命令
#showmount -e 192.168.1.31
Export list for 192.168.1.31:
/webdata 192.168.1.0/24

3)手工挂载测试和卸载

mount -t nfs 192.168.1.31:/webdata /var/www/html 
umount /var/www/html 

4)永久挂载

#vim /etc/fstab 
192.168.1.31:/webdata   /var/www/html   nfs     defaults    0 0             //nfs共享资源       本地目录    文件系统类型  默认挂载选项  不备份不检查
#mount -a                                                                   //加载/etc/fstab文件

5)验证挂载

df -hT
echo "Hello World" >/var/www/html/index.html            //修改文件测试

(4)nfs server端权限参数详解

rw:可读可写
ro:只读
sync:写入数据时,数据同步写入到nfs server的硬盘才返回;数据安全不丢失,缺点:性能比不启用该参数要差
async:写入数据时候,写入到内存缓冲区中,过一段时间在写入到磁盘中;缺点:短时间会导致数据不一致
no_root_squash :如果nfs客户端是root的话,访问nfs服务器的共享目录也是有root的权限
root_squash:如果nfs客户端是root的话,访问nfs服务器的时候会被压缩成匿名用户
all_squash:不管nfs客户端的身份如何,访问nfs服务器的共享资源都会被压缩成匿名用户,默认的匿名用户是nfsnobody,匿名用户的uid和gid定义:anonuid=65534,anongid=65534,默认是这个uid和gid,都可以自己修改
    如果server端配置这种参数,客户端想对共享目录有写权限,需要对共享目录设置权限或者修改属主 chown -R nfsnobody /webdata
注意:/etc/exports定义了权限; nfs服务器的共享目录权限必须有可写权限

(5)nfs server内核优化:发送和接收缓存区默认大小和最大大小

#cat >>/etc/sysctl.conf<<EOF
et.core.wmem_default = 8388608
net.core.rmem_default = 8388608
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
EOF
#sysctl -p

以上是关于网络文件系统NFS的作用?的主要内容,如果未能解决你的问题,请参考以下文章

NFS网络文件系统原理及案例

NFS存储服务部署(上)

NFS 网络共享文件服务搭建

NFS网络文件系统的搭建

NFS (网络文件系统)

NFS网络文件系统配置