NFS就是Network File System的缩写,它最大的功能就是能够经过网络,让不一样的机器、不一样的操做系统能够共享彼此的文件。node
NFS服务器可让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是本身的一个磁盘分区同样,在使用上至关便利;shell
NFS通常用来存储共享视频,图片等静态数据;NFS 协议默认是不加密的,它不像 Samba,它不提供用户身份鉴别。服务端经过限定客户端的 IP 地址和端口来限制访问。vim
NFS在文件传送或信息传送的过过程当中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端可以执行其余系统中程序的一种机制。NFS自己是没有提供信息传输的协议和功能的,但NFS却能让咱们经过网络进行资料的分享,就是由于NFS使用了RPC提供的传输协议,能够说NFS就是使用PRC的一个程序服务器
注意: 在启动NFS SERVER以前,首先要启动RPC服务(即portmap服务,下同)不然NFS SERVER就没法向RPC服务区注册,另外,若是RPC服务从新启动,原来已经注册好的NFS端口数据就会所有丢失。所以此时RPC服务管理的NFS程序也要从新启动以从新向RPC注册。网络
特别注意:通常修改NFS配置文档后,是不须要重启NFS的,直接在命令执行systemctl reload nfs或exportfs –rv便可使修改的/etc/exports生效async
NFS 最好是部署在局域网 ,不要在公网上 ;分布式
适合在中小型企业使用;大型网站不会用 NFS 的, 用的都是 分布式存储网站
安装nfs-kernel-server:
$ sudo apt install nfs-kernel-server
加密
安装 nfs-common:
$ sudo apt install nfs-common
操作系统
建立共享目录
sudo mkdir -p /var/nfs/sharedir
配置 /etc/exports (NFS挂载目录及权限由/etc/exports文件定义)
格式: 共享目录的路径 容许访问的NFS客户端(共享权限参数) 参数: - ro 只读 - rw 读写 - root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的匿名用户 - no_root_squash 当NFS客户端以root管理员访问时,映射为NFS服务器的root管理员 - all_squash 不管NFS客户端使用什么帐户访问,均映射为NFS服务器的匿名用户 - sync 同时将数据写入到内存与硬盘中,保证不丢失数据 - async 优先将数据保存到内存,而后再写入硬盘;这样效率更高,但可能会丢失数据 请注意,NFS客户端地址与权限之间没有空格
好比要将/var/nfs/sharedir
目录共享, 则在该文件末尾添加下列语句:
/home/lin/NFSshare 192.168.66.*(rw,sync,no_root_squash)
/var/nfs/sharedir *(rw,sync,no_root_squash,no_subtree_check)
要限制客户端IP, 添加下列语句:
/var/nfs/sharedir 122.111.222.111(rw,sync,no_subtree_check)
共享目录为/public , 容许访问的客户端为192.168.245.0/24网络用户,权限为只读
/public 192.168.245.0/24(ro)
从新加载 nfs-kernel-server 配置:
$ sudo systemctl reload nfs-kernel-server
使用showmount
命令查看nfs服务器共享信息。
输出格式为“共享的目录名称 容许使用客户端地址”。
showmount命令参数:
user@k8s-node-01:~$ showmount -e 192.168.249.5 Export list for 192.168.249.5: /var/nfs/sharedir *
在客户端建立目录,并挂载共享目录
$ sudo mkdir -p /mnt/nfs_sharedir
挂载远程共享目录:
$ sudo mount your_nfs_server_ip:/var/nfs/sharedir /mnt/nfs_sharedir
e.g. sudo mount 192.168.249.5:/var/nfs/sharedir /mnt/nfs_sharedir
编辑fstab文件, 使系统每次启动时都能自动挂载
$ sudo vim /etc/fstab
添加以下:
your_nfs_server_Ip:/var/nfs/sharedir /mnt/nfs_sharedir nfs defaults 0 0
检查客户端挂载状态
卸载远程挂载
$ sudo umount /mnt/nfs_sharedir