Linux CentOS 8.1 NFS服务器的搭建配置

部署环境说明

实现微服务接口服务器的集群部署、上传文件保存到通过NFS服务器共享磁盘,

微服务接口服务器1:192.168.3.3

微服务接口服务器2:192.168.3.4

微服务接口服务器3:192.168.3.5

NFS服务器:192.168.3.20

NFS部署步骤

1、检查NFS是否已安装 

rpm -qa | grep nfs-utils

2、如果没有安装 执行如下命令安装

dnf install nfs-utils

3、查看当前nfs服务所支持的nfs的版本

cat /proc/fs/nfsd/versions

nfs4的大版本下nfs2已经不被支持了

4、NFS服务操作命令

#查看NFS服务状态
systemctl status nfs-server

#启动NFS服务
systemctl start nfs-server

#停止NFS服务
systemctl stop nfs-server

5、配置共享文件目录

#创建目录树
mkdir -p /data/nfs

#进入data目录
cd /data

#更改data目录下的所有文件目录所有者为web
chown web.web *

6、编辑配置文件 及本地做挂载测试

#编辑配置文件
vi /etc/exports

#增加以下内容  其中192.168.3.20是本机IP
/data/nfs 192.168.3.*(rw,sync,all_squash,anonuid=1000,anongid=1001)

# 支持所有IP 可访问共享在磁盘
/data/nfs *(insecure,rw,async,no_root_squash)

 

说明: /etc/exports是nfs默认的配置文件

说明:各项权限的说明:

rw:可读写

ro: 只读

no_root_squash:对root用户不压制,如果客户端以root用户写入,在服务端都映射为服务端的root用户

root_squash: nfs服务:默认情况使用的是相反参数root_squash,

                      如果客户端是用户root操作,会被压制成nobody用户

all_squash:     不管客户端的使用nfs的用户是谁,都会压制成nobody用户

insecure:   允许从客户端过来的非授权访问

sync:     数据同步写入到内存和硬盘

async:    数据先写入内存,不直接写入到硬盘

anonuid: 指定uid的值,此uid必须存在于/etc/passwd中

anongid:指定gid的值

7、配置完成后,使nfs配置生效

说明:完成设置后,使用exportfs实用程序有选择地导出目录,而无需重新启动NFS服务

#使用exportfs实用程序有选择地导出目录,而无需重新启动NFS服务
exportfs -rv

#查看当前配置为nfs共享的目录及其状态
exportfs -v

8、挂载本地测试

#将远程磁盘挂载到本地 
mount 192.168.3.20:/data/nfs /mnt

#查看磁盘情况
df -hT

 

9、如果Firewalld正在运行,请允许NFS服务,否则其它客户端无法访问:

firewall-cmd --add-service=nfs --permanent

firewall-cmd --add-service={rpc-bind,mountd,nfs,nlockmgr,portmapper} --permanent 

firewall-cmd --reload

#需要启用SELinux boolean:
setsebool -P nfs_export_all_rw 1

开机启动NFS

#开机启动NFS
systemctl enable nfs-server

 

10、客户端挂载

#查询远程NFS 磁盘
showmount -e 192.168.3.20

#挂载点为 /home/fileserver  目录不存在时需要创建
#创建目录树
mkdir -p /home/fileserver
#授权web
chown web.web /home/*

#挂载磁盘
mount -t nfs 192.168.3.20:/data/nfs /home/fileserver

客户端和服务端的用户id保持一致 本文为web

查看本地web用户的id

grep web /etc/passwd

把客户端的nginx用户id修改为和服务端一致:

#修改用户
usermod -u 1000 web

#修改用户组
groupmod -g 1001 web

#查看用户修改情况
grep web /etc/passwd

客户端机器启动后能自动加载nfs文件系统


#把mount命令 添加到以下文件内容 
vi /etc/rc.local

#最后一行添加
mount -a

#赋与可执行权限
chmod +x /etc/rc.local

#修改vi /etc/fstab 
vi /etc/rc.local
#最后一行添加
192.168.3.20:/data/nfs    /home/fileserver     nfs       defaults        0 0

#执行文件测试
bash  /etc/rc.local

注意:如果配置/etc/fstab NFS自动挂载不成功 尝试

rc.local文件增加  mount -a  

mount -a 是自动挂载 /etc/fstab 里面的东西  

 

<think>好的,我现在要解决用户的问题:如何在CentOS 8.9上搭建配置NFS服务器。首先,我需要回顾一下NFS的基本概念。NFS(Network File System)允许不同服务器之间共享目录和文件,适用于多台机器需要访问相同数据的场景。用户提到的是CentOS 8.9,所以我要确保步骤适用于这个版本。 首先,安装必要的软件包。在CentOS中,NFS服务器通常由nfs-utils包提供。我需要确认是否还有其他依赖,比如rpcbind,不过在较新的版本中可能已经包含在内。用户可能已经按照引用[2]中的环境规划,使用Rocky Linux 8.9,但CentOS 8.9的步骤应该类似。 接下来,配置NFS共享目录。需要编辑/etc/exports文件,指定共享的目录、允许访问的客户端IP及权限参数。比如,用户可能希望指定读写权限(rw)和同步写入(sync)。这里要注意权限设置,避免安全风险,可能需要结合no_root_squash或root_squash选项。 然后,启动并启用NFS相关服务。包括nfs-server和rpcbind服务。需要确保防火墙放行NFS的端口,这可能比较复杂,因为NFS使用动态端口。建议使用firewalld的nfs服务配置,或者直接开放相关端口如2049。 测试部分也很重要。在客户端安装nfs-utils后,使用mount命令挂载共享目录,并验证读写权限。如果出现问题,可能需要检查服务状态、防火墙设置以及exports文件的配置是否正确。 用户提供的引用中,引用[2]提到初始化k8s集群的环境,可能用户是在搭建Kubernetes集群时需要NFS作为存储后端。因此,在配置NFS时需要考虑集群节点的IP地址,确保exports文件中允许工作节点(如10.10.0.1110.10.0.18)的访问,并设置合适的权限,以便Pod能够挂载存储。 另外,根据引用[3]中的Linux基础操作,用户可能需要了解基本的系统管理命令,如systemctl管理服务、firewall-cmd配置防火墙,这些都需要在教程中详细说明,尤其是针对CentOS 8.9的特定命令。 最后,生成相关问题时要围绕NFS服务器的常见问题,比如权限配置、防火墙设置、客户端无法挂载等,以及如何集成到Kubernetes环境中使用,这符合用户引用[2]中的集群环境。</think>### CentOS 8.9 NFS服务器搭建配置教程 #### 一、环境准备 1. 确保系统为CentOS 8.9或兼容系统(如Rocky Linux 8.9),建议配置至少2GiB内存和20GB硬盘空间[^2]。 2. 检查网络连通性,确保NFS服务端与客户端在同一网络(NAT或桥接模式均可)[^2]。 --- #### 二、安装NFS服务端 1. **安装软件包**: ```bash sudo dnf install nfs-utils -y ``` 2. **创建共享目录**: ```bash sudo mkdir /nfs_share sudo chmod 777 /nfs_share # 临时放宽权限,生产环境需细化配置 ``` --- #### 三、配置NFS共享 1. **编辑配置文件**: ```bash sudo vim /etc/exports ``` 添加内容(示例允许10.10.0.0/24网段访问): ```bash /nfs_share 10.10.0.0/24(rw,sync,no_root_squash) ``` - `rw`:读写权限 - `sync`:同步写入 - `no_root_squash`:允许客户端root用户保留权限 2. **生效配置**: ```bash sudo exportfs -a ``` --- #### 四、启动服务与防火墙 1. **启动并启用服务**: ```bash sudo systemctl enable --now nfs-server rpcbind ``` 2. **配置防火墙**: ```bash sudo firewall-cmd --permanent --add-service=nfs sudo firewall-cmd --permanent --add-service=rpc-bind sudo firewall-cmd --permanent --add-service=mountd sudo firewall-cmd --reload ``` --- #### 五、客户端挂载测试 1. **客户端安装工具**: ```bash sudo dnf install nfs-utils -y ``` 2. **创建挂载点并挂载**: ```bash sudo mkdir /mnt/nfs_client sudo mount -t nfs 10.10.0.10:/nfs_share /mnt/nfs_client ``` 3. **验证写入**: ```bash echo "NFS test" | sudo tee /mnt/nfs_client/test.txt ``` --- #### 六、持久化挂载配置 编辑客户端`/etc/fstab`: ```bash 10.10.0.10:/nfs_share /mnt/nfs_client nfs defaults 0 0 ``` --- #### 七、故障排查 1. **服务状态检查**: ```bash sudo systemctl status nfs-server ``` 2. **日志分析**: ```bash journalctl -u nfs-server -f ``` 3. **客户端连接测试**: ```bash showmount -e 10.10.0.10 ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值