nfs离线安装配置测试全系列最全详解

1、安装

首先下载离线安装包,两个分别是:

nfs-utils-2.5.4-4.oe2203.x86_64.rpm,

rpcbind-1.2.6-3.oe2203.x86_64.rpm 

1.1 下载方式:

1.2 安装

rpm -ivh nfs-utils-2.5.4-4.oe2203.x86_64.rpm
rpm -ivh rpcbind-1.2.6-3.oe2203.x86_64.rpm

2、配置端口

NFS除了主程序端口2049和rpcbind的端口111是固定端口以外,其他的还会有一些随机端口,这些端口是NFS向rpcbind注册产生的,
由于端口是随机的,不方便防火墙管理,所以在nfs的配置文件中,可以绑定这些端口

# vim /etc/sysconfig/nfs
#追加端口配置
MOUNTD_PORT=40001
STATD_PORT=40002
LOCKD_TCPPORT=40003
LOCKD_UDPPORT=40003
RUEOTAD_PORT=40004

端口随便自己绑定,建议用后面一点的端口,前面的端口系统有定义服务,避免端口冲突,并将这些端口加入防火墙,总共7个端口
启动服务和设置开机自启动,

CentOS7,openeuler也一样

# systemctl start rpcbind.service

# systemctl enable rpcbind.service

# systemctl start nfs.service

# systemctl enable nfs.service

客户端也需要安装以上服务,但是只需要启动rpcbind服务

配置完成后,就可以开始在服务端创建共享目录,NFS的共享目录配置在/etc/exports文件中

3、配置共享目录

3.1 准备要共享的目录

没有的话就创建,例如 /data

mkdir -p /data
chown -R nobody.nobody /data
# nfs默认的用户是id为65534的用户
# 在centos7中这个用户叫做nfsnobody,在8版本之后,nfsnobody和nobody用户合并了

3.2 配置导出目录 

/etc/exports文件
/etc/exports 文件是NFS服务器的核心配置文件,它用于定义哪些目录将被导出(即共享)以及导出的目录可以被哪些客户端访问,以及访问权限和选项。每一行都代表一个共享配置。
使用/etc/exports 文件,其实就是在systemctl启动nfs时,调用了exportsfs这个文件。

/etc/exports格式
假设我们有一个共享目录 /data,我们可以为不同的客户端设置不同的访问权限:

/data 192.168.1.188(rw) 192.168.1.189(ro)
# data 是本地要共享的目录。
# 192.168.1.188 和 192.168.1.199 是允许访问此共享目录的客户端IP地址。(也可以是网段、域名)
# rw 表示读写权限,ro 表示只读权限。

/var/lib/nfs/etab文件
实际上/etx/exports文件的选项特别多,但是我们最少仅需写共享目录 IP/网段(ro/rw)即可工作,这是因为,nfs有一个默认配置文件。
对于在/etc/exports中的共享目录权限设置,会自动映射到/var/lib/nfs/etab中,并补全默认配置。

 假设对所有网段均可以访问/data目录

cat /etc/exports
/data *(rw)
cat /var/lib/nfs/etab
/data   *(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

 NFS常用选项
在上一部分,我们可以看到nfs的选项实际特别多,那么常用的选项及其解释如下:

rw:允许客户端读写访问共享目录。
ro:客户端只能读取共享目录。
sync:同步写操作,数据会在写入请求完成后立即写入到磁盘。
async:异步写操作,数据可能会被缓存在内存中,提高性能但可能在系统崩溃时导致数据丢失。
no_subtree_check:禁用子目录检查,可以提高性能。
subtree_check:启用子目录检查,确保NFS服务器只允许访问被导出的目录,而不是其子目录。
no_root_squash:保留根用户权限,客户端上的root用户在服务器上依然是root用户。
root_squash:将客户端上的root用户映射为匿名用户,默认选项,提高安全性。
all_squash:将所有客户端用户都映射为匿名用户。
anonuid 和 anongid:指定匿名用户的UID和GID。

3.3 配置/etc/exports重启服务效果

#配置/etc/exports
echo "/data *(rw)" >> /etc/exports
cat /etc/exports
/data *(rw)
cat /var/lib/nfs/etab
/data   *(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,no_pnfs,anonuid=65534,anongid=65534,sec=sys,rw,secure,root_squash,no_all_squash)

#重启服务
#reload-已连接nfs服务的用户端不会断开连接
#restart-已连接nfs服务的用户会被强制断开连接
systemctl reload nfs

4、服务器自测

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

#查看挂载情况
df -h /mnt
Filesystem        Size  Used Avail Use% Mounted on
10.0.0.124:/data   40G  3.8G   37G  10% /mnt

#查看nfs挂载情况
showmount -e
Export list for ecm:
/data *

5、客户端连接测试

#想使用nfs服务的客户端,同样需要安装nfs-utils
yum install -y nfs-utils
#不需要启动nfs服务

#挂载方式如上<服务端测试>
mount -t nfs  192.168.1.190:/data/app   /data

6、实际案例

  6.1文件服务器:

[root@localhost data]# cd /
[root@localhost /]# ll
总用量 28
lrwxrwxrwx.   1 root root    7 3月  16 2023 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 3月  16 2023 boot
drwxrwxrwx.   5 root root  109 10月 19 2023 data
drwxr-xr-x   21 root root 3580 12月  5 02:47 dev
drwxr-xr-x. 146 root root 8192 12月 26 09:40 etc
drwxrwxrwx.   5 root root   52 3月  29 2023 fileserver
drwxr-xr-x.   3 root root   18 5月  10 2023 home
lrwxrwxrwx.   1 root root    7 3月  16 2023 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 3月  16 2023 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 4月  11 2018 media
drwxrwxrwx    4 root root   87 12月  6 2023 mnt
drwxr-xr-x.   4 root root   36 10月 19 2023 opt
dr-xr-xr-x  529 root root    0 12月  5 02:47 proc
dr-xr-x---.  15 root root 4096 12月  5 16:12 root
drwxr-xr-x   41 root root 1260 12月  5 16:10 run
lrwxrwxrwx.   1 root root    8 3月  16 2023 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 4月  11 2018 srv
dr-xr-xr-x   13 root root    0 12月 26 09:33 sys
drwxrwxrwt.  11 root root 4096 12月 26 09:32 tmp
drwxr-xr-x.  13 root root  155 3月  16 2023 usr
drwxr-xr-x.  21 root root 4096 3月  16 2023 var
[root@localhost /]# cd data
[root@localhost data]# ll
总用量 30648
drwxrwxrwx. 3 root root       33 6月  25 2023 dbdata
drwxrwxrwx. 2 root root        6 3月  30 2023 indexdata
drwxrwxrwx. 4 root root       87 12月  6 2023 webdata
[root@localhost data]#

/etc/exports

/data/dbdata     *(insecure,rw,sync,no_root_squash)
/data/indexdata  *(insecure,rw,sync,no_root_squash)
/data/webdata    *(insecure,rw,sync,no_root_squash)


#重启服务
#reload-已连接nfs服务的用户端不会断开连接
#restart-已连接nfs服务的用户会被强制断开连接

systemctl reload nfs


其他的服务器分别挂载即可

mount -t nfs  192.168.1.100:/data/webdata   /data

mount -t nfs  192.168.1.101:/data/dbdata   /data

mount -t nfs  192.168.1.102:/data/indexdata   /data

df -h 可以查看挂载

umount -f /data 删除挂载

如果设备正忙,你可以使用 lsof 命令查找正在使用该设备的进程,并结束这些进程:

sudo lsof /mnt/data


找到相关的进程 ID 后,可以使用 kill 命令结束这些进程:

sudo kill -9 <进程ID>


然后再次尝试卸载:

sudo umount /data

挂载点要是空目录
 

7、相关服务


 systemctl status nfs-server.service

 systemctl start nfs-server.service


systemctl status firewalld

systemctl start rpcbind.service

systemctl status rpcbind.service

systemctl status nfs.service

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值