访问NFS存储及自动挂载

目录

前言

1.配置步骤

2.验证 

3.自动挂载 


前言

前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,
所实现的是 Linux 和 Linux 之间的共享。
下面的练习我们将会在server上创建一个文件夹/share,然后通过NFS把它共享,再在
server2上把这个共享文件夹挂载到/nfs上,如图17-1所示。

访问NFS存储及自动挂载_第1张图片

注:为了更好的理解,这里的server是:[root@RHEL813 ~]# 

server2是[root@RHEL8 ~]#

1.配置步骤

 首先在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 ~]# 

关于防火墙的配置,后续会有专门文章会讲解。  

2.验证 

在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/ 中添加这一行即可

3.自动挂载 

自动挂载的意思是,把一个外部设备/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并设置开机自动启动,命令如下。  

访问NFS存储及自动挂载_第2张图片

下面练习把光盘自动挂载到/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 ~]# 

可以看到,现在已经挂载上去了。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(服务器,运维)