文章目录

  • 1 NFS 简介
  • 2 NFS 部署
  • 2.1 服务端部署
  • 2.1.1 安装 NFS和RPC
  • 2.1.2 创建共享目录 /data/nfs ,并且属主和属组都为:nfsnobody,其中nfsnobody是安装nfs服务时默认的用户
  • 2.1.3 配置NTS配置文件
  • 2.1.4 启动RPC和NFS服务
  • 2.1.5 查看NFS服务是否向rpc注册端口信息,主端口号是:111
  • 2.1.6 在NFS设定妥当之后,可以先在服务端自我测试一下是否可以联机,利用 showmount 这个指令来查看
  • 2.2 客户端配置
  • 2.2.1 安装 RPC和NFS 服务,并启动
  • 2.2.2 查看客户端是否可以收到服务端的共享信息
  • 2.2.3 进行nfs共享目录的挂载
  • 2.2.4 验证
  • 2.2.5 设置系统启动自动挂载


1 NFS 简介

NFS就是Network File System的缩写,它最大的功能就是可以通过网络,让不同的机器、不同的操作系统可以共享彼此的文件。

NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中,而在本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区一样,在使用上相当便利;

NFS一般用来存储共享视频,图片等静态数据;NFS 协议默认是不加密的,它不像 Samba,它不提供用户身份鉴别。服务端通过限定客户端的 IP 地址和端口来限制访问。

原理

NFS在文件传送或信息传送的过过程中,依赖于RPC协议。RPC,远程过程调用(Remote Procedure Call),是使客户端能够执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但NFS却能让我们通过网络进行资料的分享,就是因为NFS使用了RPC提供的传输协议,可以说NFS就是使用PRC的一个程序。

2 NFS 部署

在局域网(192.168.149.0/24)中搭建一个NFS服务(服务端IP:192.168.149.150),然后共享给其他客户端

2.1 服务端部署

服务端IP :192.168.149.150

2.1.1 安装 NFS和RPC
# 检查系统中是否安装了NFS和RPC
rpm -qa nfs-utils rpcbind

# 使用 yum 安装nfs 和 rpc
yum -y install nfs-utils rpcbind
2.1.2 创建共享目录 /data/nfs ,并且属主和属组都为:nfsnobody,其中nfsnobody是安装nfs服务时默认的用户
mkdir -p /data/nfs/
chown -R nfsnobody.nfsnobody /data/nfs/
chmod 666 /data/nfs/
2.1.3 配置NTS配置文件

vim /etc/exports:

/data/nfs 122.168.149.0/24(rw,sync,no_root_squash)

让配置文件生效,执行以下命令:

exportfs -r

注意:一般修改NFS配置文档后,是不需要重启NFS的,直接在命令执行 systemctl reload nfs 或 exportfs –rv 即可使修改的 /etc/exports 生效

说明

  • /data/nfs 是服务器端共享的目录
  • 192.168.149.0/24 共享目录的客户端ip地址(段)
  • (rw,sync,no_root_squash) ,其中rw代表拥有读写的权限,sync代表数据同步写入NFS服务器端的硬盘中。 也可以用async,async是大数据时使用,是先写到缓存区,再写到磁盘里。no_root_squash表示支持客户端root用户具有完全的权限

其他权限说明

权限

用途

ro

只读

rw

读写访问

sync

客户端写入数据同步到服务器后才会返回

no_root_squash

客户端root用户具有完全的权限

root_squash

root用户权限被映射成服务端上的普通用户nobody

anonuid

指定匿名用户的UID

anongid

指定匿名用户的GID

2.1.4 启动RPC和NFS服务
# 启动rpc
systemctl status rpcbind
 
# 启动nfs
systemctl start nfs 

# 设置开机启动
systemctl enable nfs

查看rpc和nfs运行状态

centos nfs多目录 centos7部署nfs_服务器

2.1.5 查看NFS服务是否向rpc注册端口信息,主端口号是:111

centos nfs多目录 centos7部署nfs_服务端_02


选项与参数

参数

说明

-p

针对某 IP (未写则预设为本机) 显示出所有的 port 与 porgram 的信息

-t

针对某主机的某支程序检查其 TCP 封包所在的软件版本

-u

针对某主机的某支程序检查其 UDP 封包所在的软件版本

2.1.6 在NFS设定妥当之后,可以先在服务端自我测试一下是否可以联机,利用 showmount 这个指令来查看

centos nfs多目录 centos7部署nfs_linux_03


选项与参数

参数

说明

-a

显示目前主机与客户端的 NFS 联机分享的状态

-e

显示某部主机的 /etc/exports 所分享的目录数据

2.2 客户端配置

如在服务器 192.168.149.153上配置nfs客户端

2.2.1 安装 RPC和NFS 服务,并启动

步骤同 2.1.1 和 2.1.4

2.2.2 查看客户端是否可以收到服务端的共享信息

centos nfs多目录 centos7部署nfs_centos nfs多目录_04

2.2.3 进行nfs共享目录的挂载

将192.168.149.150上的/data/nfs共享目录,挂载到本机的/mnt目录上

mount -t nfs 192.168.149.150:/data/nfs /mnt

centos nfs多目录 centos7部署nfs_centos nfs多目录_05

2.2.4 验证

在服务端 /data/nfs 目录下创建一个 a.log的文件,在客户端可以查看到,并操作

2.2.5 设置系统启动自动挂载
echo "192.168.149.150:/data/nfs /mnt nfs defaults 0 0" >> /etc/fstab