NFS 服务搭建
介绍NFS(Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样
NFS 服务安装要设定好 NFS 服务器我们必须要有两个软件才行,分别是:
RPC 主程序:rpcbind就如同刚刚提的到,我们的 NFS 其实可以被视为一个 RPC 服务,而要启动任何一个 RPC 服务之前,我们都需要做好 port 的对应 (mapping) 的工作才行,这个工作其实就是 rpcbind 这个服务所负责的!也就是说, 在启动任何一个 RPC 服务之前,我们都需要启动 rpcbind 才行!
NFS 主程序:nfs-utils就是提供 rpc.nfsd 及 rpc.mountd 这两个 NFS Daemons 与其他相关 Documents 与说明文件、执行文件等的软件!这个就是 NFS 服务所需要的主要软件啦!
查看系统是否已安装 NFS
[15:48:53 root@192.168.81.183 ~]#rpm -qa|grep nfs[15:58:06 root@192.168.81.183 ~]#rpm -qa|grep rpcbind[15:58:14 root@192.168.81.183 ~]#
安装 NFS 服务
[15:58:14 root@192.168.81.183 ~]#yum -y install nfs-utils rpcbind[15:59:05 root@192.168.81.183 ~]#rpm -qa|grep nfsnfs-utils-1.3.0-0.68.el7.x86_64libnfsidmap-0.25-19.el7.x86_64[15:59:48 root@192.168.81.183 ~]#rpm -qa|grep rpcbindrpcbind-0.2.0-49.el7.x86_64NFS 服务端配置
主要配置文件:/etc/exportsNFS 文件系统维护指令:/usr/sbin/exportfs分享资源的登录档:/var/lib/nfs/*tab客户端查询服务器分享资源的指令:/usr/sbin/showmount
编辑配置文件 /etc/exports
[16:12:59 root@192.168.81.183 /data/k8s_nfs]#pwd/data/k8s_nfs[16:13:00 root@192.168.81.183 /data/k8s_nfs]#vim /etc/exports/data/k8s_nfs 192.168.82.0/24(rw,no_root_squash,no_all_squash,sync)
配置介绍
参数 | 内容说明 |
rw/ro | 该目录分享的权限是可擦写 (read-write) 或只读 (read-only),但最终能不能读写,还是与文件系统的 rwx 及身份有关 |
sync/async | sync 代表数据会同步写入到内存与硬盘中,async 则代表数据会先暂存于内存当中,而非直接写入硬盘! |
no_root_squash/ root_squash | 客户端使用 NFS 文件系统的账号若为 root 时,系统该如何判断这个账号的身份?预设的情况下,客户端 root 的身份会由 root_squash 的设定压缩成 nfsnobody, 如此对服务器的系统会较有保障。但如果你想要开放客户端使用 root 身份来操作服务器的文件系统,那么这里就得要开 no_root_squash 才行! |
all_squash | 不论登入 NFS 的使用者身份为何, 他的身份都会被压缩成为匿名用户,通常也就是 nobody(nfsnobody) 啦! |
使配置生效
[16:14:57 root@192.168.81.183 /data/k8s_nfs]#exportfs -r启动 rpcbind、nfs 服务
[16:24:05 root@192.168.81.183 /data/k8s_nfs]#systemctl start rpcbind[16:24:12 root@192.168.81.183 /data/k8s_nfs]#systemctl start nfs[16:24:19 root@192.168.81.183 /data/k8s_nfs]#systemctl enable rpcbind[16:24:29 root@192.168.81.183 /data/k8s_nfs]#systemctl enable nfsCreated symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.查看 NFS 所共享的目录
[16:25:12 root@192.168.81.183 /data/k8s_nfs]#showmount -e localhostExport list for localhost:/data/k8s_nfs 192.168.82.0/24去客户端服务器上挂载
[16:08:43 root@mq1 ~]#mkdir /sharenfs[16:08:54 root@mq1 ~]#mount -t nfs 192.168.81.183:/data/k8s_nfs /sharenfs/mount: 文件系统类型错误、选项错误、192.168.81.183:/data/k8s_nfs 上有坏超级块、 缺少代码页或助手程序,或其他错误 (对某些文件系统(如 nfs、cifs) 您可能需要 一款 /sbin/mount.<类型> 助手程序) 有些情况下在 syslog 中可以找到一些有用信息- 请尝试 dmesg | tail 这样的命令看看。
遇到这个问题说明客户端服务器上没有安装 nfs-utils
[16:08:13 root@mq1 ~]#rpm -qa|grep nfs[16:09:23 root@mq1 ~]#yum -y install nfs-utils[16:13:38 root@mq1 ~]#mount -t nfs 192.168.81.183:/data/k8s_nfs /sharenfs/[16:13:41 root@mq1 ~]#df -h 文件系统 容量 已用 可用 已用% 挂载点/dev/mapper/cl-root 46G 26G 20G 58% //dev/sda3 50G 15G 32G 32% /data192.168.81.183:/data/k8s_nfs 443G 8.8G 412G 3% /sharenfs