Linux上搭建NFS共享存储
目录
一、环境准备
二、提供NFS的主节点
1、环境安装与设置
2、创建目录并对外暴露
三、使用NFS的客户端节点
1、环境安装
2、挂载远程NFS至本地
四、验证NFS
一、环境准备
IP | 用途 | 备注 |
---|---|---|
192.168.43.201 CentOS 7.9 64bit | 对外提供NFS的主节点 | 真实磁盘挂在本地目录: /nfs/data/ |
192.168.43.203 CentOS 7.9 64bit | 使用NFS的客户端节点 | 远程NFS网络盘在本地挂载点: /share-nfs/ |
192.168.43.205 CentOS 7.9 64bit | 使用NFS的客户端节点 | 远程NFS网络盘在本地挂载点: /share-nfs/ |
二、提供NFS的主节点
1、环境安装与设置
# 以root用户,检查操作系统是否已经安装nfs-utils
yum list installed nfs-utils
# 以root用户,若没有安装则通过以下命令安装(若已安装则无需重复安装)
yum install -y nfs-utils
# 以root用户,启动相关服务
systemctl start rpcbind
systemctl start nfs-server
# 以root用户,设置相关服务开机自启
systemctl enable rpcbind
systemctl enable nfs-server
# 关闭防火墙。或者在防火墙放开对应端口(默认包括NFS端口:2049、RPC端口:111、NFS的daemon端口:随机)
systemctl stop firewalld
2、创建目录并对外暴露
# 以root用户,在NFS的主节点上创建需要作为NFS的目录
mkdir -p /nfs/data
# 以root用户,在NFS的主节点上设置NFS的共享配置文件
# 格式: [本机暴露目录] 允许访问的客户端IP或网段(共享参数1,共享参数2)
#
# 常用的NFS共享参数:
# rw:表示客户端可以对NFS文件进行读写操作。
# ro:表示客户端可以对NFS文件进行只读操作。
# sync:数据同步写入到内存与磁盘中,保证数据不会在发生断电时丢失,提高了数据的安全性。
# async:数据异步写入磁盘,资料会先暂存于内存中,而非直接写入硬盘。
# no_root_squash:客户机以root用户访问该共享目录时,不映射root用户。它所拥有的权限为该服务器本地的root用户权限,可以对该目录进行读写操作,这会带来一定的安全隐患。
# root_squash:客户机以root用户访问该共享目录时,将root用户映射成匿名用户。它的权限会变成nfsnobody用户(一般没有权限),只能对该目录进行读操作。
# all_squash:客户机上的任何用户访问该共享目录时都映射成匿名用户,他的身份都会变成nfsnobody。
# anonuid/anongid:可以将访问NFS的用户身份映射成指定的用户uid或者组gid。
# insecure:允许从客户端过来的非授权访问
echo "/nfs/data/ 192.168.43.0/24(insecure,rw,sync,no_root_squash)" > /etc/exports
# 以root用户,在NFS的主节点上读取NFS共享配置,使其生效,将NFS暴露出去
exportfs -rv
# 以root用户,在NFS的主节点上检查NFS当前暴露情况
exportfs
三、使用NFS的客户端节点
各个使用NFS的客户端节点机器(本环境为192.168.43.203和205两台机器)都需要执行本节步骤!
1、环境安装
# 以root用户,检查操作系统是否已经安装nfs-utils
yum list installed nfs-utils
# 以root用户,若没有安装则通过以下命令安装(若已安装则无需重复安装)
yum install -y nfs-utils
2、挂载远程NFS至本地
# 以root用户,在客户端节点上查看(列出)NFS主节点暴露出的目录
showmount -e 192.168.43.201
# 以root用户,在客户端节点上创建本地目录作为挂载点
mkdir -p /share-nfs/
# 以root用户,在客户端节点上将远程NFS挂载至本地(-t指定类型)
mount -t nfs 192.168.43.201:/nfs/data /share-nfs/
四、验证NFS
在192.168.43.203和205两个NFS客户端节点机器上写入和读取文件,验证NFS共享文件效果。