@TOC
背景
英文Network File System(NFS),是由SUN公司研制的UNIX表示层协议(presentation layer
protocol),能使使用者访问网络上别处的文件就像在使用自己的计算机一样。NFS在实际场景中有着不少的应用场景,比如分布式代码部署下,代码一致性的同步方案,K8S多容器内外挂载等情况,今天就来具体讲解一下怎么实现。
操作实现
卷的初始化及挂载
如果是一个新卷需要进行卷的初始化,操作如下。如果是已经激活挂载的设备,忽略本部分内容。
1. 查看磁盘挂载状态 df -h
2. 查看可用的卷信息 lsblk
3. 初始化新卷 sudo mkfs -t xfs /dev/nvme2n1
4. 挂载卷 sudo mount /dev/nvme2n1 /ceph
5. 如果需要卸载卷,卸载卷命令 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
2. 安装环境
如果没有安装NFS服务,则进行安装,NFS服务依赖于rpcbind。
yum -y install nfs-utils rpcbind
3. 然后配置ceph可被远程访问
其中*
表示允许所有机器链接,也可以指定IP;rw
表示操作的权限;sync
表示数据同步的方式。如果需要细致配置,请参考nfs配置详情,这里不做主要描述。
[root@ip-192-157-3-92 /]# vi /etc/exports
/ceph *(rw,sync,no_root_squash)
4. 启动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 ]
5. 高可用配置
很多时候需要保持NFS的高可用,如果需要开机自动启动NFS服务,进行如下设置。
[root@ip-192-157-3-92 /]# chkconfig rpcbind on
[root@ip-192-157-3-92 /]# chkconfig nfs on
6. 放行一下NFS端口
经过上面的操作,就将新的一个卷挂载到了服务器上面,并针对于这个卷开启了一个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
7. 验证配置结果
通过下面的案例来演示NFS的搭建使用效果,就可以看到NFS卷被成功挂载。
# 然后去机器A上面 创建文件夹 test
cd /ceph
mkdir test
# 再去机器B上面可以看到文件夹同步被显示。
cd /ceph
ls
总结
今天的内容就分享到这里,喜欢的话,给个关注,更多精彩,即将呈现。