CentOS-7上搭建NFS体系结构

系统:CentOS-7

一. 准备3台干净的虚拟机(nfs-server nfs-client1 nfs-client2),以root的身份进行登录后作如下配置:

  1. 配置3个节点的时区 需要保证三个节点的时区相同
timedatectl set-timezone Asia/Shanghai
  1. 配置3台机器的主机名(可以在安装的时候进行配置 也可以通过命令的方式进行配置)
nfs-server:hostnamectl set-hostname nfs-server

nfs-client1:hostnamectl set-hostname nfs-client1

nfs-client2:hostnamectl set-hostname nfs-client2
  1. 确认所有节点是否能够进行顺利的网络连接

  2. 对所有节点的yum进行更新(yum upgrade)

  3. 对所有节点安装vim工具(yum install vim)

  4. 对所有节点安装net-tools工具(yum install net-tools)

  5. 配置所有节点之间的网络互通(使用vim 命令打开文件 /etc/hosts 添加下面的参数)

192.168.60.132 nfs-server

192.168.60.133 nfs-client1

192.168.60.134 nfs-client2
  1. 配置所有节点的ssh远程连接(link:https://blog.csdn.net/tuntun1120/article/details/65443757)

  2. 关闭所有节点的防火墙

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

systemctl disable firewalld

systemctl stop firewalld
  1. 查看当前节点防火墙状态

设置iptables service:yum -y install iptables-services

查看防火墙状态:service iptables status

二. Service节点配置

  1. 一般在Service节点,NFS服务的安装非常简单,只需要两个软件包即可(nfs-utils-*以及rpcbind),注意:在CentOS6.x里面,rpcbind服务命名为portmap服务

安装nfs-utils(yum -y install nfs-utils)

安装rpcbind(yum -y install rpcbind)

查看是否安装成功:

yum list installed | grep nfs-utils

yum list installed | grep rpcbind
  • 启动rpcbind服务:service rpcbind start
  • 启动nfs服务:service nfs start
  • 查看rpcbind状态:service rpcbind status
  • 查看nfs状态:service nfs status
  • 停止rpcbind服务:service rpcbind stop
  • 停止nfs服务:service nfs stop
  • 重启rpcbind服务:service rpcbind restart
  • 重启nfs服务:service nfs restart
  • 重新平滑加载rpcbind服务:service rpcbind reload
  • 重新平滑加载nfs服务:service nfs reload
  1. 设置nfs rpcbind服务开机启动
chkconfig rpcbind on

chkconfig nfs on
  1. 在Service节点建立共享目录/data 配置共享目录之前需要查看nfs rpcbind服务状态是否正常

1)使用查看状态命令查看两个服务运行是否正常

2)创建目录data(mkdir /data) 并修改data目录权限

chmod 777 /data

3)修改Service端配置文件(/etc/exports

添加如下几行,遵循格式(服务端共享目录 客户机IP(rw,sync,no_root_squash,no_subtree_check))

/data 192.168.60.133(rw,sync,no_subtree_check,no_root_squash)    
#                   ^
#这里的IP和后面的括号之间,千万不能有空格,否则会造成 Read-only file system 错误,导致客户端只能是只读模式
/data 192.168.60.134(rw,all_squash)

4)配置文件exports修改完成后,保存退出,重新启动nfs rpcbind服务,并查看系统加载的配置(cat /var/lib/nfs/etab)

5)确认系统加载的配置正确后,则共享目录设置成功

备注:NFS共享目录配置参数:

  • ro 只读访问
  • rw 读写访问
  • sync 所有数据在请求时写入共享
  • async nfs在写入数据前可以响应请求
  • secure nfs通过1024以下的安全TCP/IP端口发送
  • insecure nfs通过1024以上的端口发送
  • wdelay 如果多个用户要写入nfs目录,则归组写入(默认)
  • no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时, 无需此设置
  • hide 在nfs共享目录中不共享其子目录
  • no_hide 共享nfs目录的子目录
  • subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)
  • no_subtree_check 和上面相对 不检查父目录的全向
  • all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。
  • no_all_squash 保留共享文件的UID和GID(默认)
  • root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)
  • no_root_squas root用户具有根目录的完全管理访问权限
  • anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID
  • anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID

三.client节点配置

  1. client端需要安装nfs-utils rpcbind服务,同时启动nfs-utils rpcbind服务

  2. 安装成功后,建立想要挂载的目录,确认服务端防火墙是否完全关闭(showmount -e 服务端IP)

  3. 若上一步骤不能正确显示服务器端共享目录状态,则需要将服务器端防火墙完全关闭

iptables -F

iptables -X
  1. 将客户端建立的目录挂载到服务端
mount -t nfs -o nolock <服务端IP>:<服务端共享目录> <客户端共享目录>
  1. 将客户端卸载
    umount <客户端共享目录>

对于多个客户端挂载到同一个服务端节点,对服务端节点的文件共享目录中的文件进行同时修改的时候,会不会破坏共享文件的问题?

经过个人实验得知,当多个客户端节点挂载到NFS共享目录的时候,不同的客户端之间就像是拥有了一个共有的目录一样,举例子来说,当一个客户端打开共享文件,

若另一个客户端想要打开相同的文件,会出现和使用vim重复打开本机文件多次出现的效果相同。在客户端同时对文件进行修改后,若其中一个客户端先一步进行保存,

后执行保存操作的客户端也会得到提示文件已经进行修改,是否还要保存内容。

对于在服务端执行showmount -e命令出现RPC: Program not registered错误的时候解决办法?

在服务器端先停止rpcbind(service rpcbind stop) 再停止nfs(service nfs stop)

然后在重启rpcbind和nfs,一定要按照顺序启动和停止:

service rpcbind start

service nfs start

使用阿里云作为nfs服务器配置

使用阿里云作为nfs服务端并使用本地客户端主机进行连接和使用本地客户端主机连接本地nfs服务器略微有一定区别

原因是因为阿里云的服务器并不能完全关闭防火墙,只能通过开通端口的形式绕过防火墙进行连接,所以,相对于本地nfs服务器配置来说,阿里云服务器的配置需要对端口进行设置

阿里云服务器的相关组件安装和配置大多数均和本地服务端配置相同,以下是几点不同之处:

  1. 当配置/etc/exports文件内容的时候,在其中添加允许客户端连接的IP地址需要添加本地外网的地址,有些时候并不是客户机本身的地址

此种情况下可以在百度搜索栏里面搜索"IP"关键字查看本机IP地址

  1. 由于阿里云服务器不能直接通过关闭所有端口防火墙的形式进行连接 所以需要查看nfs服务需要使用的端口 并对开放这些端口即可

查看nfs服务端口的命令:rpcinfo -p

    program vers proto  port  service

    100000    4  tcp    111  portmapper

    100000    3  tcp    111  portmapper

    100000    2  tcp    111  portmapper

    100000    4  udp    111  portmapper

    100000    3  udp    111  portmapper

    100000    2  udp    111  portmapper

    100005    1  udp  20048  mountd

    100005    1  tcp  20048  mountd

    100005    2  udp  20048  mountd

    100005    2  tcp  20048  mountd

    100005    3  udp  20048  mountd

    100005    3  tcp  20048  mountd

    100003    3  tcp  2049  nfs

    100003    4  tcp  2049  nfs

    100227    3  tcp  2049  nfs_acl

    100003    3  udp  2049  nfs

    100003    4  udp  2049  nfs

    100227    3  udp  2049  nfs_acl

    100021    1  udp  49964  nlockmgr

    100021    3  udp  49964  nlockmgr

    100021    4  udp  49964  nlockmgr

    100021    1  tcp  46502  nlockmgr

    100021    3  tcp  46502  nlockmgr

    100021    4  tcp  46502  nlockmgr

会出现以上的这些提示信息 由以上的信息可知 nfs体系所需要的端口号为111 20048 2049这三个端口号,只要在当前阿里云服务器将这3个端口号开放即可

但看见很多博客上说 mountd的端口号会一直变化 需要设置mountd的端口号为指定端口号(没有设置过 重启过nfs系统 发现mountd端口号并没有发生变化),若出现上述

情况可以查看博客:http://network.51cto.com/art/201007/215274.htm

开放以上三个端口号的时候,重启nfs rpcbind服务, 客户端即可正常挂载到阿里云服务器

最后在说明一下在配置nfs体系结构的时候经常会用到的一些命令:

1.查看nfs体系结构使用到的端口号:rpcinfo -p

2.若客户端挂载服务器端出现问题的时候,可以通过cat /var/log/messages | grep mount命令查看服务器端的日志 分析是什么原因

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351