前言及介绍
底层的共享存储技术的实现方式,比如ceph,glusterFS,NFS 等,都是通过插件机制完成与共享存储服务的对接。NFS 是通过网络进行数据传输,NFS 传输数据时使用的端口是随机的,唯一的限制就是小于1024,客户端怎么知道服务器使用的是哪个端口,此时就要用到远程过程调用(RPC)。
其实,NFS运行在 SUN 的RPC (remote procedure call,远程过程调用)的基础上,RPC定义了一种与系统无关的方法来实现进程间通信,所以,NFS Server 可以看作是 RPC Server。
NFS 允许系统将其目录和文件共享给网络上的其他系统。通过NFS,用户和应用程序可以访问远程系统上的文件,就像他们是本地文件一样。那么 NFS 最值得注意的有点有:
1):本地工作站可以使用更少的磁盘空间,因为常用数据被保存在NFS服务器上,并让网络上的其他机器可以访问它。
2):不需要为用户在每台网络机器上放一个用户目录,因为用户目录可以在 NFS 服务器上设置并使其在整个网络上可用。
3):存储设备如软盘、光驱及USB设备可以被网络上其他机器使用,这可能可以减少网络上移动设备的数量。
服务端安装
NFS服务相关的文件和命令介绍
1、/etc/exports
对 NFS 服务的访问时由 exports 来批准,它没聚了若干有权访问 NFS 服务器上文件系统的主机名。
2、/sbin/exportfs
维护 NFS 的资源共享,可以通过它重新设定/etc/exprts的共享目录,卸载 NFS Server 共享的目录或者重新共享等。
3、/usr/sbin/showmount
上面的文件主要用在 NFS Server 端,而showmount则主要用在Client端,showmount可以用来查看NFS共享的目录资源。
其它一些细节信息,请直接参看百度文库:https://wenku.baidu.com/view/f6b1299b0342a8956bec0975f46527d3240ca6af.html
安装步骤
我是在vm上安装的,vm的采用nat网络模式,ip地址:192.168.139.134,数据存放路径:/data/nfs
1、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2、安装配置 nfs
yum -y install nfs-utils rpcbind
3、创建共享数据存放路径 /data/nfs
mkdir -p /data/nfs
4、对nfs的默认配置文件(/etc/exports)进行配置,如果没有该文件需要新建该文件,并编辑该文件
vim /etc/exports
#添加以下内容
/data/nfs *(rw,ysnc,no_root_squash)
对于其中配置参数说明
/data/nfs: 是我们自定义好的数据目录
* : 表示任何人都有权限连接,当然也可以是一个网段,一个ip,也可以是域名
rw : 顾明司仪表示可读可写,r 可读 w 可写
sync : 文件同时写入硬盘和内存
no_root_squash :当登录 NFS 主机使用共享目录的使用者是root时,其权限将被转换称为匿名使用者,通常它的 UID 和 GID 都会变成 nobody 身份。
5、阅读前言部分,可以知道NFS本质是RPC,所以欲启动NFS,需要先启动rpcbind
systemctl start rpcbind.service
systemctl enable rpcbind.service
systemctl status rpcbind.service
6、启动 NFS 服务
7、通过命令确认,并查看具体目录挂在权限
nfs进程信息
rpcinfo -p|grep nfs
目录挂载权限
cat /var/lib/nfs/etab
以上NFS服务端安装完成
客户端安装
安装环境介绍:客户端安装在vm上,ip地址: 192.168.139.130, 系统为centos7
1、首先关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2、安装rpc及nfs
yum -y install nfs-utsis rpcbind
3、参考服务端,先启动rpc,再启动nfs
systemctl start rpcbind.service
systemctl enable rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
以上为客户端基础环境安装,下面是重要的关在nfs步骤
4、先检查下 nfs 是否有共享目录
showmount -e 192.168.139.134 (nfs服务的主机地址)
5、在客服端主机上新建对应的挂载路径(/home/k8s/data)
mkdir - p /home/k8s/data
6、将 nfs 共享目录挂载到上面的挂载路径:
mount -t nfs 192.168.139.134:/data/nfs /home/k8s/data
7、测试,在客户端(192.168.139.130)对应的挂载路径下,新建一个test.txt文件,然后去nfs服务端(192.168.139.134)对应的路径 /data/nfs 下去查看是否生成了同样的一个test.txt文件
以上NFS客户端安装测试完成