1. NFS 介绍
NFS 是 Network File System 的缩写,中文意思是网络文件系统,它的主要功能是通过网络(一般是局域网)让不同的主机系统之间可以共享文件或目录。NFS 客户端(一般为应用服务器,例如 Web )可以通过挂载(mount)的方式将NFS服务器端共享的数据挂载到 NFS 客户端本地系统中(就是某一个挂载点下)。从客户端本地看,NFS 服务器端共享的目录就好像是客户端自己的磁盘分区或者目录一样,而实际上却是远端的NFS服务器目录。
NFS 网络文件系统很像 Windows 系统的网络共享,安全功能,网络驱动器映射,这也和 Linux 系统里的 Samba 服务类似。只不过一般情况下,Windows网络共享服务或 Samba服务用于办公室局域网共享,而互联网中小型网站集群机构后端常用 NFS 进行数据共享。如果是大型网站,那么有可能还会用到更复杂的分布式文件系统,例如:Moosefs(mfs)、GlusterFS、FastDFS等。
image-20211124124412534.png2. 存储服务的种类
2.1 中小型企业
-
FTP
-
Samba(Windows -- Linux)
-
NFS(Linux -- Linux)
2.2 大型企业(分布式存储)
-
用于门户网站
一个用户 -- 存储数据 至 存储服务器
上万用户 -- 存储数据 至 存储服务器(消耗IO,会变慢)
-
分布式存储应用
- Moosefs(mfs) 比较古老,落伍
- GlusterFS
- FastDFS 企业应用较多
3. NFS 存储服务的作用
- 实现数据共享存储
- 便于管理
- 节省购买服务器磁盘开销
4. NFS 服务部署
4.1 扩展 - RPC
RPC:远程过程调用服务程序
了解 RPC 需要 学习 网络编程的知识
image-20211125112138291.png4.2 服务端部署
4.2.1 下载安装软件
# 01. 检测是否安装
rpm -qa|grep -E "nfs|rpc"
# 02. 安装软件
yum install nfs-utils rpcbind -y
4.2.2 编写配置文件
# 01. 编写配置文件 (/etc/exports)
vim /etc/exports
# 方式1
/data 172.16.1.0/24(rw,sync)
# 方式2
/data 172.16.1.0/24(rw,sync) 10.1.1.0/24(rw,sync)
# 配置文件内容解释
# 第一部分
设置数据存储目录
# 第二部分
设置网络白名单(允许哪些主机连接到存储服务器进行数据存储)
# 第三部分
配置存储目录的权限信息,存储目录的一些功能
# 查看帮助
man exports
4.2.3 创建基础环境
# 01. 创建存储(共享)目录
mkdir /data
# 02. 修改权限
chwon -R nfsnobody.nfsnobody /data
4.2.4 启服务
# 01. 启动 rpcbind 服务(端口号为:111)
systemctl start rpcbind
systemctl enable rpcbind
# 02. 启动 nfs 服务
systemctl start nfs
systemctl enable nfs
# 03. 检查服务端口号
rpcinfo -p 172.16.1.31
[root@nfs01 ~]# rpcinfo -p 172.16.1.31
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 60874 status
100024 1 tcp 39277 status
100005 1 udp 20048 mountd
100005 1 tcp 20048 mountd
100005 2 udp 20048 mountd
100005 2 tcp 20048 mountd
100005 3 udp 20048 mountd
100005 3 tcp 20048 mountd
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 3 tcp 2049 nfs_acl
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 3 udp 2049 nfs_acl
100021 1 udp 50602 nlockmgr
100021 3 udp 50602 nlockmgr
100021 4 udp 50602 nlockmgr
100021 1 tcp 36354 nlockmgr
100021 3 tcp 36354 nlockmgr
100021 4 tcp 36354 nlockmgr
4.3 客户端部署
4.3.1 客户端安装 nfs 软件
yum install nfs-utils -y
4.3.2 实现远程挂载共享目录
mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# ll /mnt
total 4
drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 a
drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 b
drwxr-xr-x 2 nfsnobody nfsnobody 45 Nov 15 17:03 c
-rw-r--r-- 1 nfsnobody nfsnobody 65 Nov 15 17:38 exclude_file.txt
4.3.3 报错
4.3.3.1 问题1
image-20211125123924957.png- 解决方法
# 原因:
因为客户端识别不了nfs文件系统类型
# 解决方法
yum install nfs-utils -y
5. NFS 服务工作原理
5.1 服务端
- 启动 rpc 服务,开启 111 端口
- 启动 nfs 服务
- 实现 nfs 服务端口号的注册(只注册一次)
5.2 客户端
- 建立TCP网络连接
- 客户端执行挂载命令
- 可以实现数据远程传输存储
6. NFS 服务端详细配置说明
6.1 实现多个网段主机可以进行挂载
6.1.1 方法一
/data 172.16.1.0/24(rw,sync) 10.1.1.0/24(rw,sync)
6.1.2 方法二
/data 172.16.1.0/24(rw,sync)
/data 10.1.1.0/24(rw,sync)
6.2 总结 - 共享目录的权限和哪些因素有关
- 和存储目录的本身权限有关
# 目录权限为:755
# 属主和属组:nfsnobody
- 和 nfs 服务配置有关
/data 172.16.1.0/24(ro,sync)
# 只读权限
- 和客户端挂载命令参数有关
mount -t nfs -o ro 172.16.1.31:/data /mnt
# 只读权限
6.3 NFS 配置参数说明
参数 | 功能 |
---|---|
rw | 存储目录是否有 读写 权限 |
ro | 存储目录是否有 只读 权限 |
sync | 同步方式存储数据(直接将数据保存到磁盘,数据存储安全可靠),数据传输慢 |
async | 异步方式存储数据(先将数据保存在内存中,后续再保存到磁盘中,数据传输不可靠,易丢失)数据传输快 |
no_root_squash | 不将 root 用户身份进行转换 |
root_squash | 将 root 用户身份进行转换 |
all_squash | 将所有用户身份都进行转换 |
no_all_squash | 不要将普通用户身份进行转换 |
anonuid | 指定映射成用户的uid |
anongid | 指定映射成用户组的gid |
6.4 同步方式存储数据 和 异步方式方式存储数据 的 区别
image-20211202193756073.png6.3.1 实验1 -- all_squash(所有用户身份转换)
# 服务端
# 01. 配置服务
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash)
# 02. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 客户端
# 01. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 02. root 用户保存数据
[root@backup mnt]# ll
total 0
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
# 03. 普通用户保存数据
[root@backup ~]# su - yunxuan
[yunxuan@backup ~]$ cd /mnt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
[yunxuan@backup mnt]$ touch yunxuan_data.txt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 root_data.txt
-rw-rw-r-- 1 nfsnobody nfsnobody 0 Nov 25 19:10 yunxuan_data.txt
6.3.2 实验2 -- no_all_squash(所有普通用户身份不转换,但是保存目录需要相关权限,root用户身份转换。)
# 服务端
# 01. 配置服务
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,no_all_squash)
# 02. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 客户端
# 01. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 02. root 用户保存数据
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
# 03. 普通用户保存数据
[root@backup mnt]# su - yunxuan
Last login: Thu Nov 25 19:10:41 CST 2021 on pts/0
[yunxuan@backup ~]$ cd /mnt/
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
[yunxuan@backup mnt]$ touch yunxuan_data.txt
touch: cannot touch ‘yunxuan_data.txt’: Permission denied
6.3.2.1 解决普通用户权限阻止方法
- 方法1
# 服务端
[root@nfs01 data]# ll -d /data
drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 25 19:19 /data
[root@nfs01 data]# chown -R yunxuan /data
[root@nfs01 data]# ll -d /data/
drwxr-xr-x 2 yunxuan nfsnobody 27 Nov 25 19:19 /data/
# 客户端
[yunxuan@backup mnt]$ touch yunxuan_data.txt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 yunxuan nfsnobody 0 Nov 25 19:19 root_data.txt
-rw-rw-r-- 1 yunxuan yunxuan 0 Nov 25 19:21 yunxuan_data.txt
[yunxuan@backup mnt]$
- 方法2
# 服务端
[root@nfs01 data]# ll -d /data/
drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 25 19:22 /data/
[root@nfs01 data]# chmod o+w /data
[root@nfs01 data]# ll -d /data/
drwxr-xrwx 2 nfsnobody nfsnobody 27 Nov 25 19:22 /data/
# 客户端
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 yunxuan nfsnobody 0 Nov 25 19:19 root_data.txt
[yunxuan@backup mnt]$ touch yunxuan_data.txt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 25 19:19 root_data.txt
-rw-rw-r-- 1 yunxuan yunxuan 0 Nov 25 19:23 yunxuan_data.txt
6.3.3 实验3 -- root_squash(root用户身份转换,普通用户身份不换转)
# 服务端
# 01. 配置服务
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,root_squash)
# 02. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 客户端
# 01. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 02. root 用户保存数据
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 26 17:19 root_data.txt
# 03. 普通用户保存数据
[root@backup mnt]# su - yunxuan
Last login: Thu Nov 25 19:19:57 CST 2021 on pts/0
[yunxuan@backup ~]$ cd /mnt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Nov 26 17:19 root_data.txt
[yunxuan@backup mnt]$ touch yunxuan_data.txt
touch: cannot touch ‘yunxuan_data.txt’: Permission denied
6.3.4 实验4 -- no_root_squash(所有用户不转换身份,root用户可以保存数据,其他用户权限不足)
# 服务端
# 01. 配置服务
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,no_root_squash)
# 02. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 客户端
# 01. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 02. root 用户保存数据
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 26 17:25 root_data.txt
# 03. 普通用户保存数据
[root@backup mnt]# su - yunxuan
Last login: Fri Nov 26 17:20:14 CST 2021 on pts/0
[yunxuan@backup ~]$ cd /mnt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 root root 0 Nov 26 17:25 root_data.txt
[yunxuan@backup mnt]$ touch yunxuan_data.txt
touch: cannot touch ‘yunxuan_data.txt’: Permission denied
7. 企业中如何配置 NFS 参数
7.1 参数配置(以下配置为了安全考虑)
- no_all_squash
- root_squash
- 共享目录权限改为www (
uid 一致很重要
)
7.2 实验
7.2.1 服务端配置
# 01. 配置服务
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,root_squash,no_all_squash)
# 02. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 03. 创建NFS共享目录管理用户
[root@nfs01 ~]# useradd -u 1005 www
[root@nfs01 ~]# id www
uid=1005(www) gid=1005(www) groups=1005(www)
[root@nfs01 ~]# echo "123456"|passwd --stdin www
Changing password for user www.
passwd: all authentication tokens updated successfully.
# 04. 修改共享目录属性信息
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 nfsnobody nfsnobody 27 Nov 26 17:25 /data
[root@nfs01 ~]# chown -R www.www /data/
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 27 Nov 26 17:25 /data
7.2.2 客户端验证(除www用户外,任何用户没有权限操作共享目录中的数据,保证数据安全性)
# 01. 客户端创建www用户(用户访问站点用户身份)
[root@backup ~]# useradd -u 1005 www
[root@backup ~]# echo "123456"|passwd --stdin www
Changing password for user www.
passwd: all authentication tokens updated successfully.
# 02. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 03. root 用户保存删除数据
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
[root@backup mnt]# touch root_data.txt
touch: cannot touch ‘root_data.txt’: Permission denied
[root@backup mnt]# rm -fr ./*
rm: cannot remove ‘./index.html’: Permission denied
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
# 04. 其他普通用户保存删除数据(模拟黑客)
[root@backup ~]# su - yunxuan
Last login: Fri Nov 26 17:26:28 CST 2021 on pts/0
[yunxuan@backup ~]$ cd /mnt
[yunxuan@backup mnt]$ ll
total 0
-rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
[yunxuan@backup mnt]$ touch yunxuan_data.txt
touch: cannot touch ‘yunxuan_data.txt’: Permission denied
[yunxuan@backup mnt]$ rm -fr ./*
rm: cannot remove ‘./index.html’: Permission denied
# 05. www用户保存删除数据(站点用户转换后的身份)
[yunxuan@backup mnt]$ su - www
Password:
[www@backup ~]$ cd /mnt
[www@backup mnt]$ ll
total 0
-rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
[www@backup mnt]$ touch www_data.txt
[www@backup mnt]$ ll
total 0
-rw-r--r-- 1 www www 0 Nov 27 21:18 index.html
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[www@backup mnt]$ rm -f index.html
[www@backup mnt]$ ll
total 0
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
7.3 问题思考 - 为什么以上配置 root 用户无法删除保存数据
root 用户转换后的身份为 nfsnobody 用户,共享目录属主和属组全部是 www 用户,因此无法在共享目录中删除和保存数据。
此外,以上配置为默认配置
。
7.3.1 查看 NFS 服务默认配置
# 01. 先修改当前配置 并 重启服务
[root@nfs01 data]# vim /etc/exports
[root@nfs01 data]# cat /etc/exports
/data 172.16.1.0/24(rw,sync)
[root@nfs01 data]# systemctl restart nfs
# 02. 查看默认配置
[root@nfs01 data]# cat /var/lib/nfs/etab
/data 172.16.1.0/24(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)
# 备注:文件 /var/lib/nfs/etab 为记录文件,类似于日志文件。修改该文件内容,不会影响 NFS 服务的默认配置。
7.3.2 解决 root 用户无法存储数据的问题
root 用户转换后的身份为 nfsnobody 用户,共享目录属主和属组全部是 www 用户,因此无法在共享目录中删除和保存数据。如何解决呢?
- 解决方法
将 root 用户 转换成 www 用户,而非 nfsnobody 用户。
由参数 anonuid=65534,anongid=65534 决定。修改映射用户即可解决 root 用户无法操作数据的问题。
- 实验
# 服务端
# 01. 查看 www 用户的 uid 和 gid
[root@nfs01 ~]# id www
uid=1005(www) gid=1005(www) groups=1005(www)
# 02. 配置 NFS 服务
[root@nfs01 ~]# vim /etc/exports
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
# 03. 重启服务
[root@nfs01 ~]# systemctl restart nfs
# 客户端
# 01. 卸载重新挂载
[root@backup ~]# umount /mnt
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 14M 473M 3% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
# 02. root 用户操作数据
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Nov 30 2021 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# rm -f root_data.txt
[root@backup mnt]# ll
total 0
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
7.4 企业中常用的配置方法
7.4.1 通用方法
/data 172.16.1.0/24(rw,sync)
7.4.2 特殊情况 (让部分人员无法操作存储目录,但是可以看目录中的数据)
/data 10.1.1.0/24(ro,sync)
/data 172.16.1.0/24(rw,sync)
7.4.3 修改默认的匿名用户
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
8. 常见问题
8.1 NFS 服务重启之后,客户端挂载之后,操作数据比较慢
原因:服务重启不正确
8.1.1 服务器重启方式
8.1.1.1 正常重启(restart)
restart 重启之后,之前建立网络连接的所有客户端全部强行断开。重启大约需要90s的缓冲时间,因此会出现卡顿现象。企业中不建议使用,用户使用感受不好。
restart -- 强制断开所有连接
8.1.1.2 平滑重启(reload)
reload 平滑重启之后,之前建立网络连接并进行数据传输的链路不会强行断开连接,待数据传输完毕,才断开连接。提升用户感受。
reload -- 强制断开没有数据传输连接
9. NFS 客户端详细配置说明
mount -t nfs 172.16.1.31:/data /mnt
目前,已挂载,若是服务器重启之后,如何实现开机自动挂载?
9.1 实现自动挂载
9.1.1 方法1 - 使用 rc.local 文件
[root@backup ~]# echo "mount -t nfs 172.16.1.31:/data /mnt" >> /etc/rc.local
[root@backup ~]# chmod u+x /etc/rc.d/rc.local
[root@backup ~]# ll /etc/rc.d/rc.local
-rwxr--r--. 1 root root 509 Nov 30 16:27 /etc/rc.d/rc.local
[root@backup ~]# cat /etc/rc.d/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
touch /var/lock/subsys/local
mount -t nfs 172.16.1.31:/data /mnt
9.1.2 方法2 - 利用 fstab 文件
[root@backup ~]# vim /etc/fstab
[root@backup ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Oct 29 00:56:11 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=0c216d60-d304-49af-831f-cb92577e2dc1 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
172.16.1.31:/data /mnt nfs defaults 0 0
实现自动挂载的前提是:一个特殊的服务需要启动
CentOS 7 特殊服务:remote-fs.target
CentOS 6 特殊服务:autofs
9.2 无法实现网络存储服务自动挂载的原因
9.2.1 CentOS 6(串行启动)
根据系统服务启动顺序
- 按照顺序依次启动
network 服务 -- sshd 服务 -- crond 服务 -- rsync 服务 -- rpcbind 服务 -- nfs 服务
先加载 /etc/fstab 文件 -- 启动 network 服务 -- 启动autofs服务
如果此时网络服务还未正常启动,则会挂载失败。
# 解决方法
netfs,autofs服务 :设置开机自启动
服务启动好之后,重新加载/etc/fstab文件
9.2.2 CentOS 7(并行启动)
根据系统服务启动顺序
network 服务
sshd 服务
crond 服务
rsync 服务
rpcbind 服务
nfs 服务
先加载 /etc/fstab 文件 -- 并行启动 network 等服务
如果此时网络服务还未正常启动,则会挂载失败。
# 解决方法
remote-fs.target 服务: 设置开机自启动
服务启动好之后,重新加载/etc/fstab文件
9.2.3 扩展 - CentOS 6 和 CentOS 7 开机启动比较
当一台CentOS 6系统和一台CentOS 7 系统部署应用一致情况下,CentOS 7 系统启动速度要快于 CentOS 6 系统,因为CentOS 7 启动服务是并行进行,而CentOS 6 是串行进行。
9.3 扩展 - CentOS 7 中如何查看哪些服务开机自启动
9.3.1 方法1
[root@backup ~]# systemctl disable sshd
Removed symlink /etc/systemd/system/multi-user.target.wants/sshd.service.
[root@backup ~]# systemctl enable sshd
Created symlink from /etc/systemd/system/multi-user.target.wants/sshd.service to /usr/lib/systemd/system/sshd.service.
# 在此目录下的文件对应的服务全部是开机自启动服务: /etc/systemd/system/multi-user.target.wants/
[root@backup ~]# ll /etc/systemd/system/multi-user.target.wants/
total 0
lrwxrwxrwx. 1 root root 37 Oct 29 00:57 crond.service -> /usr/lib/systemd/system/crond.service
lrwxrwxrwx. 1 root root 42 Oct 29 00:57 irqbalance.service -> /usr/lib/systemd/system/irqbalance.service
lrwxrwxrwx 1 root root 46 Nov 11 02:38 NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
lrwxrwxrwx 1 root root 41 Nov 25 12:42 nfs-client.target -> /usr/lib/systemd/system/nfs-client.target
lrwxrwxrwx 1 root root 40 Nov 30 17:48 remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
lrwxrwxrwx 1 root root 39 Nov 25 12:42 rpcbind.service -> /usr/lib/systemd/system/rpcbind.service
lrwxrwxrwx 1 root root 38 Nov 11 17:13 rsyncd.service -> /usr/lib/systemd/system/rsyncd.service
lrwxrwxrwx. 1 root root 39 Oct 29 00:57 rsyslog.service -> /usr/lib/systemd/system/rsyslog.service
lrwxrwxrwx 1 root root 36 Nov 30 19:48 sshd.service -> /usr/lib/systemd/system/sshd.service
lrwxrwxrwx. 1 root root 39 Nov 11 01:23 sysstat.service -> /usr/lib/systemd/system/sysstat.service
9.3.2 方法2
[root@backup ~]# systemctl list-unit-files | grep enable
autovt@.service enabled
crond.service enabled
dbus-org.freedesktop.NetworkManager.service enabled
dbus-org.freedesktop.nm-dispatcher.service enabled
getty@.service enabled
irqbalance.service enabled
NetworkManager-dispatcher.service enabled
NetworkManager-wait-online.service enabled
NetworkManager.service enabled
rpcbind.service enabled
rsyncd.service enabled
rsyslog.service enabled
sshd.service enabled
sysstat.service enabled
rpcbind.socket enabled
nfs-client.target enabled
remote-fs.target enabled
9.4 mount 命令参数
参数 | 功能 |
---|---|
-o | 设置mount挂载参数 |
-o rw(默认参数) | 实现挂载后挂载点可读可写 |
-o ro | 实现挂载后挂载点只读 |
-o suid(默认参数) | 在共享目录中可以让 setuid 权限位生效 |
-o nosuid | 在共享目录中可以让 setuid 权限位失效(提高共享目录的安全性) |
-o exec(默认参数) | 共享目录中的执行文件可以直接执行 |
-o noexec | 共享目录中的执行文件无法直接执行(提高共享目录的安全性) |
auto(默认参数) | 可以实现自动挂载(defaults -- auto;mount -a实现加载fstab文件自动挂载) |
noauto | 无法实现自动挂载 |
-o nouser(默认参数) | 禁止普通用户可以卸载挂载点 |
-o user | 允许普通用户可以卸载挂载点 |
9.4.1 实验1(参数rw和ro)
# 服务端
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
- ro 参数
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs -o ro 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt/
[root@backup mnt]# ll
total 0
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# touch root_data.txt
touch: cannot touch ‘root_data.txt’: Read-only file system
- rw 参数(rw 为默认参数,不设置会默认设置)
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs -o rw 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# touch root_data.txt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
# 命令 mount -t nfs -o rw 172.16.1.31:/data /mnt 可替换为 mount -t nfs 172.16.1.31:/data /mnt
9.4.2 实验2(suid和nosuid参数)
# 服务端
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
[root@nfs01 ~]# cd /data/
[root@nfs01 data]# which cat
/usr/bin/cat
[root@nfs01 data]# cp /usr/bin/cat ./
[root@nfs01 data]# ll
total 56
-rwxr-xr-x 1 root root 54160 Nov 30 18:41 cat
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@nfs01 data]# chmod u+s cat
[root@nfs01 data]# ll
total 56
-rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
- suid 参数(默认参数)
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 56
-rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# ./cat /etc/shadow
root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
……
[root@backup mnt]# su - www
Last login: Sat Nov 27 21:20:51 CST 2021 on pts/0
[www@backup ~]$ cd /mnt
[www@backup mnt]$ ./cat /etc/shadow
root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
……
- nosuid 参数
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs -o nosuid 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 56
-rwsr-xr-x 1 root root 54160 Nov 30 18:41 cat
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# ./cat /etc/shadow
root:$6$tTo8N7OO$gFPMyKsTBMvj1thAik1Ay34Rt9FXmyEUC1qX1noAzZ9dda73Br1XjuZLuO49QLVQzgKL793pd3WwZfzOHPwut1:18941:0:99999:7:::
……
[root@backup mnt]# su - www
Last login: Tue Nov 30 18:43:07 CST 2021 on pts/0
[www@backup ~]$ cd /mnt
[www@backup mnt]$ ./cat /etc/shadow
./cat: /etc/shadow: Permission denied
9.4.3 实验3(exec和noexec参数)
# 服务端
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
- exec 参数
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# echo "cat /etc/hosts" > test.sh
[root@backup mnt]# ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-r--r-- 1 www www 15 Nov 30 18:54 test.sh
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# chmod u+x test.sh
[root@backup mnt]# ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rwxr--r-- 1 www www 15 Nov 30 18:54 test.sh
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# /mnt/test.sh
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@backup mnt]# su - www
Last login: Tue Nov 30 18:59:26 CST 2021 on pts/0
[www@backup ~]$ cd /mnt
[www@backup mnt]$ ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[www@backup mnt]$ /mnt/test.sh
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
- noexec 参数
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs -o noexec 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# cd /mnt
[root@backup mnt]# ll
total 0
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# echo "cat /etc/hosts" > test.sh
[root@backup mnt]# chmod u+x test.sh
[root@backup mnt]# ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[root@backup mnt]# /mnt/test.sh
-bash: /mnt/test.sh: Permission denied
[root@backup mnt]# su - www
Last login: Tue Nov 30 18:45:59 CST 2021 on pts/0
[www@backup ~]$ cd /mnt
[www@backup mnt]$ ll
total 4
-rw-r--r-- 1 www www 0 Nov 30 18:38 root_data.txt
-rwxr--r-- 1 www www 15 Nov 30 18:58 test.sh
-rw-rw-r-- 1 www www 0 Nov 27 21:21 www_data.txt
[www@backup mnt]$ /mnt/test.sh
-bash: /mnt/test.sh: Permission denied
9.4.4 实验4(auto和noauto参数)
# 服务端
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
- auto 参数(默认)
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# cat /etc/fstab
……
172.16.1.31:/data /mnt nfs defaults 0 0
[root@backup ~]# mount -a
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
- noauto 参数
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# vim /etc/fstab
[root@backup ~]# cat /etc/fstab
……
172.16.1.31:/data /mnt nfs noauto 0 0
[root@backup ~]# mount -a
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
9.4.5 实验5(nouser和user参数)
# 服务端
[root@nfs01 ~]# ll -d /data
drwxr-xr-x 2 www www 26 Nov 30 12:52 /data
[root@nfs01 ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,anonuid=1005,anongid=1005)
- nouser 参数(默认)
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# vim /etc/fstab
[root@backup ~]# cat /etc/fstab
……
172.16.1.31:/data /mnt nfs auto 0 0
[root@backup ~]# mount -a
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# su - www
Last login: Tue Nov 30 19:00:34 CST 2021 on pts/0
[www@backup ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[www@backup ~]$ umount /mnt
umount: /mnt: umount failed: Operation not permitted
- user 参数(操作失败待研究)
# 客户端
[root@backup ~]# umount /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.5M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
[root@backup ~]# mount -t nfs -o user 172.16.1.31:/data /mnt
[root@backup ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[root@backup ~]# su - www
Last login: Tue Nov 30 19:09:31 CST 2021 on pts/0
[www@backup ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 28G 1.7G 26G 7% /
devtmpfs 475M 0 475M 0% /dev
tmpfs 487M 0 487M 0% /dev/shm
tmpfs 487M 7.6M 479M 2% /run
tmpfs 487M 0 487M 0% /sys/fs/cgroup
/dev/sda1 473M 125M 349M 27% /boot
tmpfs 98M 0 98M 0% /run/user/0
172.16.1.31:/data 28G 1.7G 26G 7% /mnt
[www@backup ~]$ umount /mnt
umount: /mnt: umount failed: Operation not permitted
9.5 客户端卸载说明
umount /mnt
# 强制卸载挂载点
umount -lf /mnt
-l 不退出挂载点目录进行卸载
-f 强制卸载
10. 进程说明
image-20211201121844938.png11. NFS 服务挂载不上排查方法
11.1 服务端排查
11.1.1 检查服务端服务是否注册
# 服务端本地
rpcinfo -p localhost
# 远程
rpcinfo -p 172.16.1.31
- 未注册原因分析
- 服务启动顺序正确
# 01. 先启动 rpc 服务
systemctl start rpcbind
# 02. 再启动 nfs 服务
systemctl start nfs
- nfs 服务未启动
# 启动 nfs 服务
systemctl start nfs
11.1.2 检查有没有可用的存储目录
showmount -e localhost(172.16.1.31)
- 原因分析
- 配置文件编写错误
# 检查配置文件
cat /etc/exports
# 重启服务
systemctl restart nfs
- 没有存储目录
# 检查没有存储目录,创建对应目录,并进行授权
mkdir /data
chown -R nfsnobody.nfsnobody /data
11.1.3 在服务端本地进行挂载测试
# 在服务端本地进行挂载
mount -t nfs 172.16.1.31:/data /mnt
# 检查存储目录是否具有数据操作权限
11.2 客户端排查
11.2.1 检查服务端服务是否注册
# 检查服务端服务是否注册
rpcinfo -p 172.16.1.31
- 未注册原因分析
- 服务端 服务启动顺序不正确
# 01. 服务端先启动 rpc 服务
systemctl start rpcbind
# 02. 再启动 nfs 服务
systemctl start nfs
- 服务端 nfs 服务未启动
# 启动 nfs 服务
systemctl start nfs
11.2.2 检查有没有可用的存储目录
showmount -e 172.16.1.31
- 原因分析
- 检查网络是否正常
ping 172.16.1.31
telnet 172.16.1.31 111
-
服务端配置文件编写错误,检查配置文件并重启服务
-
服务端没有存储目录,创建并重新授权
网友评论