英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer
protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS在实际场景中有着不少的应用场景,比如分布式代码部署下,代码一致性的同步方案,K8S多容器内外挂载等情况,今天就来具体讲解一下怎么实现。

卷的初始化及挂载

如果是一个新卷需要进行卷的初始化,操作如下。如果是已经激活挂载的设备,忽略本部分内容。

  1. 查看磁盘挂载状态 df -h
  2. nfs怎么查看挂载情况 查看nfs 挂载列表_访问网络


  3. 查看可用的卷信息 lsblk
  4. nfs怎么查看挂载情况 查看nfs 挂载列表_初始化_02


  5. 初始化新卷 sudo mkfs -t xfs /dev/nvme2n1
  6. nfs怎么查看挂载情况 查看nfs 挂载列表_RPC_03


  7. 挂载卷 sudo mount /dev/nvme2n1 /ceph
  8. nfs怎么查看挂载情况 查看nfs 挂载列表_nfs怎么查看挂载情况_04


  9. 如果需要卸载卷,卸载卷命令 umount -f /ceph

搭建NFS服务

  1. 先用rpm -qa命令查看所需安装包(nfs-utils、rpcbind)是否已经安装,如果显示如下信息,则表示环境已经安装,无需进行再次安装。
[root@ip-192-157-3-92 /]# rpm -qa | grep "rpcbind"
rpcbind-0.2.0-11.el6.x86_64
[root@ip-192-157-3-92 /]# rpm -qa | grep "nfs"
nfs-utils-1.2.3-39.el6.x86_64
nfs4-acl-tools-0.3.3-6.el6.x86_64
nfs-utils-lib-1.1.5-6.el6.x86_64
  1. 如果没有安装NFS服务,则进行安装,NFS服务依赖于rpcbind。
yum -y install nfs-utils rpcbind
  1. 然后配置ceph可被远程访问,其中*表示允许所有机器链接,也可以指定IP;rw表示操作的权限;sync表示数据同步的方式。如果需要细致配置,请参考nfs配置详情,这里不做主要描述。
[root@ip-192-157-3-92 /]# vi /etc/exports
/ceph     *(rw,sync,no_root_squash)
  1. 启动NFS服务,依次启动rpcbind,nfs两个服务。
[root@ip-192-157-3-92 /]# service rpcbind start
Starting rpcbind:                                          [  OK  ]
[root@ip-192-157-3-92 /]# service nfs start
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Stopping RPC idmapd:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
  1. 很多时候需要保持NFS的高可用,如果需要开机自动启动NFS服务,进行如下设置。
[root@ip-192-157-3-92 /]# chkconfig rpcbind on
[root@ip-192-157-3-92 /]# chkconfig nfs on
  1. 经过上面的操作,就将新的一个卷挂载到了服务器上面,并针对于这个卷开启了一个NFS的服务。下面通过其他机器来远程挂载这个磁盘。如果云服务器挂载超时,需检查一下安全组放行一下NFS端口。
#先切换到另外一个机器B。在新的机器上面创建一个ceph目录, 然后创建一个ceph的目录,执行下面命令进行挂载
mkdir ceph
#192.157.3.92这个ip是机器A的ip
mount -t nfs 192.157.3.92:/ceph /ceph -o proto=tcp 
df -h
  1. 通过下面的案例来演示NFS的搭建使用效果,就可以看到NFS卷被成功挂载。
# 然后去机器A上面 创建文件夹 test
cd /ceph
mkdir test
# 再去机器B上面可以看到文件夹同步被显示。
cd /ceph
ls