网络文件系统(英语:Network File System,缩写作 NFS)是一种分布式文件系统协议,最初由Sun Microsystems公司开发,并于1984年发布。其功能旨在允许客户端主机可以像访问本地存储一样通过网络访问服务器端文件。
NFS和其他许多协议一样,是基于开放网络运算远程过程调用(ONC RPC)协议之上的。它是一个开放、标准的RFC协议,任何人或组织都可以依据标准实现它。
参见维基百科
与之类似的还有很多CIFS、HDFS等,它们实现不同,但是解决的问题都差不多:提供一个共用的存储系统。大部分很多情况下,我们的分布式系统都是无状态的,但是也有很多有状态的应用(需要存储数据),例如dcos中的有状态应用gitlab、jenkins、数据库等,它们每次创建都会有一个新的沙盒来存储数据,之前的数据就会消失,这时候就需要一个统一的存储系统,就需要NFS等网络存储来解决。
安装服务端
- 安装应用
$ sudo yum install nfs-utils
- 配置目录
$ sudo mkdir /var/lib/nfs
$ sudo chmod 777 /var/lib/nfs
- 编辑/etc/exports:配置能够访问共享资源的ip和目录
$ cat /etc/exports
/data 10.0.1.0/24(rw,async,no_subtree_check,no_root_squash,fsid=0)
# /data :共享的NFS目录
# 192.168.0.0/24:ip地址是192.168.0.250/24的nfs客户端可以访问共享目录;也可以指定多个客户端ip,如 1.1.1.1,*.topspeedsnail.com
# rw:指定nfs客户端可以读写共享目录
详细配置查看
修改了/etc/exports需要配置,使用$ sudo exportfs -a
使其生效。
- 启动服务并设置开机启动
$ sudo systemctl start rpcbind
$ sudo systemctl start nfs-server
# 设置开机启动
$ sudo systemctl enable rpcbind
$ sudo systemctl enable nfs-server
安装客户端
$ sudo yum install nfs-utils
- 创建一个共享的映射目录
$ mkdir /mnt/data
- 挂载目录
$ sudo mount -t nfs 192.168.0.250:/data /mnt/data
现在在目录/mnt/data
下新建一个文件:touch test.txt
,回到192.168.0.250
的/data
目录看看是否已经同步创建了test.txt。
不登高山,不知天之高也;不临深溪,不知地之厚也
感谢指点、交流、喜欢