NFS架构搭建及配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFS架构搭建及配置相关的知识,希望对你有一定的参考价值。

第14章 NFS服务搭建与配置

14.1 NFS介绍

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。NFS的数据传输基于RPC(remote procedure call)协议。

应用场景

A,B,C三台机器上需要被访问到的文件是一样的,A共享数据出来,B和C分别取挂载A共享的数据目录,从而B和C访问到的数据和A上的一致。

14.2 NFS服务端安装配置

准备两台虚拟机,一台作为服务端,一台作为客户端。

服务端

IP:192.168.8.130

安装NFS工具:

[[email protected] ~]# yum install -y nfs-utils rpcbind
配置

[[email protected] ~]# vim /etc/exports
/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#指定要进行分享的目录;指定要共享该目录的机器

创建分享目录并制定权限:
[[email protected] ~]# mkdir /home/nfstestdir
[[email protected] ~]# chmod 777 /home/nfstestdir
启动NFS服务

在yum安装完成后,系统会自动启动rpcbind服务(在服务端进程名称为systemd),默认监听的端口时111端口。

[[email protected] ~]# systemctl start nfs

将NFS服务加入开机启动项:
[[email protected] ~]# systemctl enable nfs
客户端

IP:192.168.8.132

安装NFS工具:

[[email protected] ~]# yum install -y nfs-utils
客户端挂载

检查客户端是否有权限访问服务端文件:
[[email protected] ~]# showmount -e 192.168.8.130
clnt_create: RPC: Port mapper failure - Unable to receive: errno 113 (No route to host)
报错: 无法连接到服务端机器(网络不通)!
解决办法:

检查服务端NFS服务是否开启(监听111端口)
如果确认服务端NFS服务已经开启,那么检查防火墙状态,关闭服务端和客户端firewalld和SELinux防火墙
解决完上述错误后再次执行命令:

[[email protected] ~]# showmount -e 192.168.8.130
Export list for 192.168.8.130:
/home/nfstestdir 192.168.8.0/24
即,客户端可以正常访问服务端机器。

开始挂载
[[email protected] ~]# mount -t nfs 192.168.8.130:/home/nfstestdir /mnt/

[[email protected] ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
192.168.8.130:/home/nfstestdir 18G 7.5G 11G 42% /mnt
测试

在客户机挂载目录创建文件:

[[email protected] ~]# cd /mnt/
[[email protected]entos-01linux mnt]# ll
总用量 0
-rw-r--r-- 1 mysql mysql 0 8月 23 19:50 test123
查看服务端共享目录:

[[email protected] ~]# ll /home/nfstestdir/
总用量 0
-rw-r--r--. 1 mysql mysql 0 8月 23 19:50 test123
即,实现了同步共享!

14.3 NFS配置选项

[root@localhost ~]# vim /etc/exports
/home/nfstestdir 192.168.8.0/24(rw,sync,all_squash,anonuid=1000,anongid=1000)
#指定要进行分享的目录;指定要共享该目录的机器
#rw 读写;ro 只读
#sync 同步模式,内存数据实时写入磁盘
#async 非同步模式
#no_root_squash 客户端挂载NFS服务后,root用户不受约束,权限很大
#root_squash 与上面选项相对,客户端上的root用户受到约束,被限定成某个普通用户
#all_squash 客户端上所有用户在使用NFS共享目录时都被限定为一个普通用户
#anonuid/anongid 和上面几个选项搭配使用,定义被限定用户的uid和gid
14.4 exportfs命令

exportfs命令用来管理当前NFS共享的文件系统列表。

Options:
-a:全部卸载或全部挂载
-r:重新挂载
-u:卸载某个目录
-v:显示共享目录

常用组合: exportfs -arv
服务端更改配置文件后,不重启服务,直接执行该命令就可以使更改后的配置文件生效。

注意: 在重启nfs服务之前需要先将所有挂载点卸载,否则将发生程序错误,严重者会拖垮系统。

以上操作均在服务端进行!!!

14.5 NFS客户端问题

针对NFS4版本在centos6中应用存在如下问题:
客户端挂载共享目录后,不管是root用户还是普通用户,创建新文件时属主、数组为nobody。

解决方法:

方法1:在客户端进行挂载时加上选项-o nfsvers=3
[[email protected] ~]# monunt -t nfs -o nfsvers=3 192.168.8.130:/tmp/ /mnt/
如果目录已经挂载,而又不想卸载,执行如下命令:

[[email protected] ~]# monunt -t nfs -o remount,nfsvers=3 192.168.8.130:/tmp/ /mnt/
方法2:客户端和服务端都需要
[[email protected] ~]# vim /etc/idmapd.conf
把该配置文件中的“Domain = local.domain.com”改为“Domain = xxx.com”(此处xxx.com自定义),然后重启rpcidmapd服务(在centos7中直接重启rpcbind服务)。

以上是关于NFS架构搭建及配置的主要内容,如果未能解决你的问题,请参考以下文章

NFS应用场景及环境搭建

NFS——网站架构后台仓库的搭建

50台集群架构配置介绍-3(NFS)

HTTP负载均衡WEB集群架构搭建-wordpress

Centos 6搭建NFS服务器及相关问题解决

网络综合架构-NFS存储服务及部署