NFS基础服务搭建

NFS服务

一. NFS简介
NFS服务及Network File System,用于在网络上共享存储,分为2,3,4三个版本,最新为4.1版本。NFS基于RPC协议,RPC为Remote Procedure Call的简写。

应用场景:用于A,B,C三台机器上需要保证被访问到的文件是一样的,A共享数据出来,B和C分别去挂载A共享的数据目录,从而B和C访问到的数据和A上的一致

二. NFS架构及原理

在这里插入图片描述

1)首先服务器端启动RPC服务,并开启111端口

2)启动NFS服务,并向RPC注册端口信息

3)客户端启动RPC(portmap服务),向服务端的RPC(portmap)服务请求服务端的NFS端口

4)服务端的RPC(portmap)服务反馈NFS端口信息给客户端。

5)客户端通过获取的NFS端口来建立和服务端的NFS连接并进行数据的传输

三.NFS服务配置
1.服务端配置NFS
安装rpcbind及nfs-utils

[root@localhost ~]# yum install -y nfs-utils rpcbind

编辑配置文件

[root@localhost ~]# mkdir /mnt/share    //创建分享的目录

[root@localhost ~]# vi /etc/exports

/mnt/share 192.168.100.1/24(rw,sync,all_squash,anonuid=1000,anongid=1000)

配置选项
l /mnt/share:为共享目录(若没有这个目录,请新建一个)。

l 192.168.100.0/24:可以为一个网段,一个IP,也可以是域名。域名支持通配符,例如,*.qq.com。

l rw 读写

l ro 只读

l sync 同步模式,内存数据实时写入磁盘

l async 非同步模式

l no_root_squash 客户端挂载NFS共享目录后,root用户不受约

束,权限很大

l root_squash 与上面选项相对,客户端上的root用户受到约束,

被限定成某个普通用户

l all_squash 客户端上所有用户在使用NFS共享目录时都被限定为

一个普通用户

l anonuid/anongid 和上面几个选项搭配使用,定义被限定用户

注:/mnt/share文件为要分享的目录,信任的主机为192.168.100.0/24这个网段,权限为读写,同步模式,限定所有者,限制uid及gid为1000

启动NFS服务并设置开机自启

[root@localhost ~]# systemctl start rpcbind

[root@localhost ~]# systemctl start nfs

[root@localhost ~]# systemctl enable rpcbind

[root@localhost ~]# systemctl enable nfs

注:启动NFS服务前需要先启动rpcbind

  1. 客户端挂载NFS
    安装NFS服务
[root@localhost ~]# yum install -y nfs-utils

使用showmount命令查看

[root@localhost ~]# showmount -e 192.168.100.11

在这里插入图片描述
在客户端上挂载NFS

[root@localhost ~]# mount -t nfs 192.168.100.11:/mnt/share /mnt/

使用df-h查看是否成功

[root@localhost ~]# df -h

在这里插入图片描述
在mnt目录中创建测试文件

[root@localhost ~]# touch /mnt/wslinux.txt

提示权限不够
在这里插入图片描述
在服务器中修改权限

[root@localhost ~]# chmod 777 /mnt/share

再次创建

[root@localhost ~]# touch /mnt/wslinux.txt

ls-l查看是否成功
在这里插入图片描述
3. 命令exportfs
常用选项

l -a 全部挂载或者全部卸载

l -r 重新挂载

l -u 卸载某一个目录

l -v 显示共享目录

注:当改变/etc/exports配置文件后使用此命令挂载不需要重启NFS服务。

测试:

修改服务端配置文件

[root@localhost ~]# vi /etc/exports

/tmp/ 192.168.100.0/24(rw,sync,no_root_squash)    //增加此行

在服务端执行

[root@localhost ~]# exportfs -arv

在这里插入图片描述
在客户端执行

[root@localhost mnt]# mkdir /alg

[root@localhost mnt]# mount -t nfs -o nolock 192.168.100.11:/tmp/ /alg/

注:-o nolock选项为不加锁 -t指定挂在类型为nfs

除此方式还可以将需要挂载的目录写入客户端的/etc/fstab文件中,挂载时只需要执行mount -a即可

[root@localhost mnt]# vi /etc/fstab

192.168.100.11:/tmp/ /alg nfs defaults,nolock 0 0   //增加此行

先卸载刚挂载的NFS

[root@localhost mnt]# umount /alg/

挂载

[root@localhost mnt]# mount -a

注:此方法是开机自动挂载NFS

因刚挂载的目录在服务端中设置为no_root_squash所以不会限制root用户即使用root用户创建文件时,跟在客户端本机创建一样
在这里插入图片描述
注:

l 客户端文件属主属组nobody

l NFS 4版本会有该问题

l 客户端挂载共享目录后,不管是root用户还是普通用户,创建新

l 文件时属主、属组为nobody

l 客户端挂载时加上 -o nfsvers=3

l 客户端和服务端都需要

l vim /etc/idmapd.conf //

l 把“#Domain = local.domain.edu” 改为 “Domain = xxx.com” (这里的xxx.com,随意定义吧),然后再重启 rpcidmapd服务

四.实战案例
1.案例目标
(1)了解NFS服务的安装。

(2)了解NFS的配置与使用。

2.案例实施
2.1基础配置
修改两台主机名,nfs服务器为nfs-server,nfs客户端为nfs-client:

服务器

[root@localhost ~]# hostnamectl set-hostname nfs-server

[root@localhost ~]# bash

[root@nfs-server ~]#

客户端

[root@localhost ~]# hostnamectl set-hostname nfs-client

[root@localhost ~]# bash

[root@nfs-client ~]#

2.2安装NFS服务
1)双节点配置yum源

# mkdir /opt/centos/

# mount /dev/cdrom /opt/centos/

# mv /etc/yum.repos.d/* /media/

# vi /etc/yum.repos.d/local.repo

[centos]

name=centos

baseurl=file:///opt/centos

gpgcheck=0

enabled=1

2)双节点安装nfs-utils,rpcbind

[root@nfs-server ~]# yum install -y rpcbind nfs-utils

[root@nfs-client ~]# yum install -y rpcbind nfs-utils

2.3 NFS服务使用
1)在服务器上创建一个用于共享的目录

[root@nfs-server ~]# mkdir /mnt/share

2)编辑NFS服务的配置文件

[root@nfs-server ~]# vi /etc/exports

/mnt/share 192.168.100.0/24(rw,no_root_squash,no_all_squash,sync,anonuid=501,anongid=501)

3)生效配置

[root@nfs-server ~]# exportfs -r

4)服务器启动NFS服务

[root@nfs-server ~]# systemctl start rpcbind

[root@nfs-server ~]# systemctl start nfs

5)服务器查看可挂载目录

[root@nfs-server ~]# showmount -e 192.168.100.11

在这里插入图片描述
6)双端关闭防火墙及SElinux

# systemctl stop firewalld

# setenforce 0

7)在客户端进行共享目录的挂载

[root@nfs-client ~]# mount -t nfs 192.168.100.11:/mnt/share /mnt/

8)查看挂载情况

[root@nfs-client ~]# df -h

在这里插入图片描述
2.4验证NFS共享存储
1)在客户端节点/mnt目录下创建一个文件并计算MD5值

[root@nfs-client ~]# cd /mnt/

[root@nfs-client mnt]# ll

total 0

[root@nfs-client mnt]# touch ws.txt

[root@nfs-client mnt]# md5sum ws.txt

d41d8cd98f00b204e9800998ecf8427e  ws.txt

在这里插入图片描述
回到服务器中进行验证

[root@nfs-server ~]# cd /mnt/share/

[root@nfs-server share]# ll

total 0

-rw-r--r--. 1 root root 0 Nov 30 10:16 ws.txt

[root@nfs-server share]# md5sum ws.txt

d41d8cd98f00b204e9800998ecf8427e  ws.txt

在这里插入图片描述
观察可以看出服务器与客户端文件一致

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值