目录
前言
1.配置步骤
2.验证
3.自动挂载
前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,所实现的是 Linux 和 Linux 之间的共享。下面的练习我们将会在server上创建一个文件夹/share,然后通过NFS把它共享,再在server2上把这个共享文件夹挂载到/nfs上,如图17-1所示。
注:为了更好的理解,这里的server是:[root@RHEL813 ~]#
server2是[root@RHEL8 ~]#
首先在server上面启动nfs-server启动服务并设置开机自启动,命令如下。
[root@RHEL813 ~]# systemctl enable nfs-server.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/nfs-server.service → /usr/lib/systemd/system/nfs-server.service.
[root@RHEL813 ~]#
创建准备共享的目录/share,命令如下。
[root@RHEL813 ~]# mkdir /share
[root@RHEL813 ~]#
在/etc/exports中把目录/share共享出去,命令如下。
[root@RHEL813 ~]# vim /etc/exports
/share *(rw,no_root_squash) ##在 /etc/ports 里添加这一行即可
这里*的意思是表示任何客户端都可以访问/share目录。
让共享生效,命令如下。
[root@RHEL813 ~]# exportfs -arv
exporting *:/share
在server上配置防火墙放行NFS,命令如下。
[root@RHEL813 ~]#
[root@RHEL813 ~]# firewall-cmd --add-service=nfs
success
[root@RHEL813 ~]# firewall-cmd --add-service=nfs --permanent
success
[root@RHEL813 ~]# firewall-cmd --add-service=rpc-bind
success
[root@RHEL813 ~]# firewall-cmd --add-service=rpc-bind --permanent
success
[root@RHEL813 ~]# firewall-cmd --add-service=mountd
success
[root@RHEL813 ~]# firewall-cmd --add-service=mountd --permanent
success
[root@RHEL813 ~]#
关于防火墙的配置,后续会有专门文章会讲解。
在server2上访问这个共享文件夹,首先使用show mount命令查看服务器上共享的目录,命今如下。
[root@RHEL8 ~]# showmount -e 192.168.103.17
Export list for 192.168.103.17:
/share *
[root@RHEL8 ~]#
把服务器上共享的目录挂载到本地/nfs目录上,命令如下。
[root@RHEL8 ~]# mkdir /nfs/
[root@RHEL8 ~]# mount 192.168.103.17:/share /nfs/
[root@RHEL8 ~]#
查看挂载情况,命令如下。
[root@RHEL8 ~]# df -Th | grep nfs
192.168.103.17:/share nfs4 47G 14G 34G 29% /nfs
[root@RHEL8 ~]#
可以看到,已经挂载好了。
如果希望开机能够自动挂载,则写入/etc/fstab中,命令如下。
[root@RHEL8 ~]# vim /etc/fstab
192.168.103.17:/share /nfs/ nfs defaults 0 0 ##在 /etc/fstab/ 中添加这一行即可
自动挂载的意思是,把一个外部设备/dev/xx和某个目录/dir/yy关联起来。平时 /dev/xx 是否挂载到了/dir/yy 上不需要考虑,但访问 /dir/yy 时,系统就知道要访问 /dev/xx中的数 据,这个时候系统会自动将 /dev/xx 挂载到 /dir/yy 上。
安装软件包的步骤如下。
步骤①:挂载光盘,命令如下。
[root@RHEL8 ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@RHEL8 ~]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 948M 0 948M 0% /dev
tmpfs tmpfs 976M 0 976M 0% /dev/shm
tmpfs tmpfs 976M 9.5M 966M 1% /run
tmpfs tmpfs 976M 0 976M 0% /sys/fs/cgroup
/dev/nvme0n1p3 xfs 98G 5.8G 93G 6% /
/dev/nvme0n1p1 xfs 1014M 225M 790M 23% /boot
tmpfs tmpfs 196M 52K 195M 1% /run/user/0
/dev/sr0 iso9660 11G 11G 0 100% /mnt
192.168.103.17:/share nfs4 47G 14G 34G 29% /nfs
[root@RHEL8 ~]#
这里准备把光盘作为yum源。
步骤②:编写repo文件,命令如下。
[root@RHEL8 ~]# vim /etc/yum.repos.d/aa.repo
[aa]
name=aa
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
[bb]
name=bb
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
~
开始安装autofs,命令如下。
[root@RHEL8 ~]# yum -y install autofs
正在更新 Subscription Management 软件仓库。
无法读取客户身份
本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。
aa 196 MB/s | 7.2 MB 00:00
bb 121 MB/s | 2.4 MB 00:00
上次元数据过期检查:0:00:01 前,执行于 2023年12月06日 星期三 11时29分20秒。
依赖关系解决。
==============================================================================================================================================================
软件包 架构 版本 仓库 大小
==============================================================================================================================================================
安装:
autofs x86_64 1:5.1.4-74.el8 bb 706 k
事务概要
==============================================================================================================================================================
安装 1 软件包
总计:706 k
安装大小:2.8 M
下载软件包:
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
准备中 : 1/1
安装 : autofs-1:5.1.4-74.el8.x86_64 1/1
运行脚本: autofs-1:5.1.4-74.el8.x86_64 1/1
验证 : autofs-1:5.1.4-74.el8.x86_64 1/1
已更新安装的产品。
已安装:
autofs-1:5.1.4-74.el8.x86_64
完毕!
[root@RHEL8 ~]#
启动autofs并设置开机自动启动,命令如下。
下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来,命令如下。
[root@RHEL813 ~]# mkdir zz
记住,这里不需要创建目录/zz/dvd,这个目录会自动创建。
在/etc/auto.master.d目录中创建一个后缀为 autofs的文件,后缀必须是autofs,这里创建的是aa.autofs,命令如下。
[root@RHEL8 ~]# vim /etc/auto.master.d/aa.autofs
/zz /etc/auto.aa ##在 /etc/auto.master.d/aa.autofs 中添加这一行即可
[root@RHEL8 ~]#
这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定,内容使用【Tab】键进行分隔。下面创建/etc/auto.aa,命令如下。
[root@RHEL8 ~]# vim /etc/auto.aa
dvd -fstype=iso9660,ro :/dev/cdrom
[root@RHEL8 ~]#
注意:在上面的命令中,dvd和-fstype之间有一个【Tab】键,ro和后面的冒号之间有一个【Tab】键
这个文件的格式如下。
子目录 ‐fstype= 文件系统,选项1,选项2 :外部设备
这里外部设备如果是本地磁盘或光盘,冒号前面保持为空,但是冒号不能省略。如果是其他机器上共享的目录,则写远端的IP。
结合/etc/auto.master.d/aa.autofs整体的意思是,当访问/zz/dvd时,系统会自动把/dev/cdrom挂载到/zz/dvd 上。
重启autofs服务,让我们刚做的配置生效,命令如下。
[root@RHEL8 ~]# systemctl restart autofs.service
[root@RHEL8 ~]#
[root@RHEL8 ~]#
确认现在光盘是没有挂载到/zz/dvd 上的,而且/zz目录中也没有dvd目录,命令如下。
[root@RHEL8 ~]# mount | grep -v auto | grep zz
[root@RHEL8 ~]# ls /zz
[root@RHEL8 ~]#
下面访问/zz/dvd,命令如下。
[root@RHEL8 ~]# ls /zz/dvd
AppStream BaseOS EFI EULA extra_files.json GPL images isolinux media.repo RPM-GPG-KEY-redhat-beta RPM-GPG-KEY-redhat-release TRANS.TBL
[root@RHEL8 ~]#
因为访问这个目录时能触发自动挂载,系统自动创建/zz/dvd并把 /devcdrom挂载到这个目录上,再次验证挂载情况,命令如下。
[root@RHEL8 ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
[root@RHEL813 ~]#
可以看到,现在已经挂载上去了。