共享储存服务——NFS
前言
当我们的主服务器在跑业务的时候,它本身需要去处理各种各样的数据、调用等资源的占用,如果这个时候磁盘资源被消耗的也会比较严重,就会导致服务器的整体性能下降,所以这个时候我们就可以采用NFS的方式来处理,即利用另一台服务器来给主服务器提供存储空间,帮助解决磁盘资源的消耗。那今天就来简单了解一下NFS服务和配置。
一、NFS的定义
网络文件系统,英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议,能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS也是NAS存储设备必然支持的一种协议。
NFS(Network File System)网络文件系统是基于UDP/IP协议的应用,其实现主要是采用RPC(远端过程调用)机制,RPC提供了一组与机器、操作系统以及低层传送协议无关的存取远程文件的操作。RPC采用了XDR的支持。XDR是一种与机器无关的数据描述编码的协议,他以独立与任意机器体系结构的格式对网上传送的数据进行编码和解码,支持在异构系统之间数据的传送。
二、NFS的工作原理
NFS(Network File System,网络文件系统)是当前主流异构平台共享文件系统之一。主要应用在UNIX环境下。最早是由Sun Microsystems开发,现在能够支持在不同类型的系统之间通过网络进行文件共享,广泛应用在FreeBSD、SCO、Solaris等异构操作系统平台,允许一个系统在网络上与他人共享目录和文件。通过使用NFS,用户和程序可以像访问本地文件一样访问远端系统上的文件,使得每个计算机的节点能够像使用本地资源一样方便地使用网上资源。换言之,NFS可用于不同类型计算机、操作系统、网络架构和传输协议运行环境中的网络文件远程访问和共享。
NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。
NFS的端口号:2049
RPC的端口号:111
三、NFS的特点
采用TCP/IP传输网络文件。
提供透明文件访问以及文件传输,安全性低。
容易扩充新的资源或软件,不需要改变现有的工作环境,简单易操作。
高性能,可灵活配置。
四、NFS的安装步骤
1.安装nfs和rpcbind软件
[root@nfs ~]# yum -y install nfs-utils.x86_64 rpcbind.x86_64
2.修改配置文件/etc/exports
[root@nfs ~]# vim /etc/exports ##新文件
常用选项:
rw:表示允许读写
ro:表示为只读
sync:表示同步写入到内存与硬盘中
no_root_squash:表示当客户机以root身份访问时赋予本地root权限(默认是root_squash),如果不加那么客户端无法在里面编辑或写入文件,因为默认以nfsnobody的权限。
root_squash:表示客户机用root用户访问该共享目录时,将root用户映射成匿名用户。
其他常用选项:
all_squash:所有访问用户都映射为匿名用户或用户组。
async:将数据先保存在内存缓冲区中,必要时才写入磁盘,速度快但会丢失数据。
subtree_check(默认):若输出目录是一个子目录,则nfs服务器将检查其父目录的权限。
no_subtrre_check:即使输出目录是一个子目录,nfs服务器也不检查其父目录的权限,这样可以提高效率。
3.创建共享目录
[root@nfs ~]# mkdir /nfs_data
4.开启服务
[root@nfs ~]# systemctl start rpcbind nfs
5.客户端验证共享目录可访问
检查rpc端口:
检查暴露的文件:
验证共享:
切换到server端验证:
挂载nfs服务器:
挂载成功后即可用,但是要注意的是NFS客户端与服务器端的耦合度是非常高的,如果客户端正在挂载使用,服务器端NFS服务突然间停掉了,那么在客户端就会出现执行df-h命令卡死的现象。这个时候使用umount命令是无法直接直接卸载的,需要加上-lf才能卸载。
-l表示解除正在繁忙的文件系统,-f表示强制。
END