一、NFS(network file system)
存储作为一个网络存储系统,目前已经发展演变成UNIX系统中最强大最广泛使用的网络文件系统,目前已成为是一个非常稳定的(可移植)的网络文件系统。NFS允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需要的存储空间。
NFS的客户端-服务端架构如图1:
图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在其他机器上执行同样的操作即可。