一.开始准备
两台服务器:
一台做sever 一台做client
工作原理概述如下:
NFS服务启动后,会随机选择一些端口用于文件共享服务。
NFS服务将这些端口信息注册到rpcbind服务。
rpcbind服务监听111端口,等待客户端的请求。
客户端通过rpcbind服务查询特定NFS服务的端口号。
rpcbind服务响应客户端请求,提供NFS服务的端口信息。
客户端使用这些端口信息连接到NFS服务,并进行文件操作。
原文链接:https://blog.youkuaiyun.com/weixin_44585288/article/details/139500767
所以需要开通对应的端口,为rpc 和nfs 所使用。
二.开始搭建:
1.服务端(sever)准备
安装nfs 所用工具
sudo yum install -y nfs-utils rpcbind
安装后设置开机启动:
sudo systemctl start rpcbind
sudo systemctl enable rpcbind
sudo systemctl start nfs-server
sudo systemctl enable nfs-server
服务启动成功后,可以验证一下对应的服务是否启动成功
sudo systemctl status nfs-server
显示:
● nfs-server.service - NFS server and services
Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; enabled; vendor preset: disabled)
Drop-In: /run/systemd/generator/nfs-server.service.d
└─order-with-mounts.conf
Active: active (exited) since Fri 2024-09-20 17:56:52 CST; 17min ago
Main PID: 65746 (code=exited, status=0/SUCCESS)
服务启动成功,需要配置对应的端口用作其他的client做连接 :
[root@localhost mnt]# sudo firewall-cmd --permanent --add-service=nfs
success
[root@localhost mnt]# sudo firewall-cmd --permanent --add-service=mountd
success
[root@localhost mnt]# sudo firewall-cmd --permanent --add-service=rpc-bind
success
[root@localhost mnt]# sudo firewall-cmd --reload
success
创建或指定需要共享的目录,此处直接使用 linux 中的 /mnt
在 /etc/exports 写入需要共享的目录
/mnt *(rw,sync,insecure,no_subtree_check,no_root_squash)
这里的配置项说明:
rw
:读写权限。sync
:同步写入磁盘。no_root_squash
:允许远程root用户具有本地root用户的权限。no_subtree_check
:不检查父目录权限。
创建后,应用 /etc/exports 文件
sudo exportfs -ra
然后查看对应绑定的目录信息:
showmount -e
显示:
Export list for localhost.localdomain:
/mnt *
此时 sever端 的准备工作已经完成
2.客户端(client端)准备
安装nfs 所用工具
sudo yum install -y nfs-utils rpcbind
安装后,既可查看服务端的可用挂载目录 注(确保内网相同,并且服务端对应端口开放)
showmount -e 服务端ip
显示
Export list for 192.168.4.50:
/mnt *
使用挂载命令进行挂载:
mount 服务端ip:服务端目录 本地目录
mount 192.168.4.50:/mnt/ /mnt/
查看磁盘信息: df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 3.7G 0 3.7G 0% /dev/shm
tmpfs 1.5G 17M 1.5G 2% /run
tmpfs 4.0M 0 4.0M 0% /sys/fs/cgroup
/dev/mapper/openeuler-root 69G 1.9G 63G 3% /
tmpfs 3.7G 0 3.7G 0% /tmp
/dev/sda1 974M 185M 722M 21% /boot
/dev/mapper/openeuler-home 119G 24K 113G 1% /home
192.168.4.50:/mnt 69G 1.9G 63G 3% /mnt
客户端挂载成功 。
三.测试
在客户端对应的挂载目录下 创建文件或者文件夹,在服务端也会同时创建 这个就不做展示了
四.相关命令
目录挂载:
目录挂载:
mount 服务端ip:服务端目录 本地目录
目录卸载:
umount 本地目录
日后完善 权限相关等信息
五. 遇到问题
1.如果需要挂载 主机名称 ,需要修改hosts 文件 指定对应ip
2. 卸载目录时 device is busy
你可以等一会,等对应进程结束后,再卸载挂载,另外一种比较暴力,直接杀掉进程后再卸载挂载