一、NFS(network file system)

存储作为一个网络存储系统,目前已经发展演变成UNIX系统中最强大最广泛使用的网络文件系统,目前已成为是一个非常稳定的(可移植)的网络文件系统。NFS允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需要的存储空间。

NFS的客户端-服务端架构如图1:

nfs存储配额 存储 nfs_服务器

图1. NFS系统架构

客户端通过网络将文件直接存储在NFS server端,通过RPC(remote procedure call)协议进行数据传输,实现文件的网络存储。NFS可以通过挂载mount的方式将NFS服务器共享的数据目录挂载到NFS客户端本地系统中(就是某一个挂载点下)。从客户端看、NFS服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,但实际上确实是远端的NFS服务器的目录。

NFS可以视为一个RPC程序

二、NFS的部署及使用

NFS首先分为server端和client端server端需要安装nfs-utils 以及rpcbind服务

通过yum安装的方式如下:

yum install -y nfs-utils               

yum install -y rpcbind

client端只需rpcbind就可以保证能通过网络传输数据

(1)在server端建立nfs共享文件夹并且在client端挂载使用

通过  vim /etc/exports  添加和修改nfs共享分区的配置

添加共享文件夹: /data/nfs/nfs-server 192.168.3.0/24(rw,all_squash)  这里允许该网段的 192.168.3.* 所有服务器可用 

参数

作用

ro

只读

rw

读写

root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户

no_root_squash

当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员

all_squash

无论NFS客户端使用什么账户访问,均映射为NFS服务器的匿名用户

sync

同时将数据写入到内存与硬盘中,保证不丢失数据

async

优先将数据保存到内存中,然后再写入到硬盘中,这样效率更高,但是可能会丢失数据;实际上Linux都是异步写磁盘的,是现将数据存入内存中然后定期将内存中的数据刷入磁盘!

 

 

 

 

然后重载nfs服务使配置生效  systemctl reload nfs

(2)然后再client端新建一个文件夹   /data/nfsclient1

在客户端查询nfs共享的分区

 showmount -e 192.168.3.24

展示如下:

/data/nfs/nfs-server192.168.3.0/24 

在客户端新建文件夹:/data/nfsclient1,并将其,挂载到nfs共享出来的分区

mount -t nfs 192.168.3.24:/data/nfs//nfs-server   /trash/23nfsdir

(3)这样,在客户端 /data/nfsclient1增删改文件都会直接同步到server端的 /data/nfsclient1

这里只演示了一个client端,多个client在其他机器上执行同样的操作即可。