1.访问NFS存储
前面介绍了本地存储,本章就来介绍如何使用网络上的存储设备。NFS即网络文件系统,所实现的是 Linux 和 Linux 之间的共享。
下面的练习我们将会在server上创建一个文件夹/share,然后通过NFS把它共享,再在server2上把这个共享文件夹挂载到/nfs上,如下图
首先在srever上启动nfs-server 服务并设置开启自动启动
[root@jiayi ~]# 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.
创建准备共享的目录/share
[root@jiayi ~]# mkdir /share
在/etc/exports中把目录/share共享出去
[root@jiayi ~]# cat /etc/exports
/share *(rw,no_root_squash)
这里*的意思是表示任何客户端都可以访问/share目录
让共享生效
[root@jiayi ~]# exportfs -arv
exporting *:/share
在server上配置防火墙放行NFS
[root@jiayi ~]# firewall-cmd --add-service=nfs
success
[root@jiayi ~]# firewall-cmd --add-service=nfs --permanent
success
[root@jiayi ~]# firewall-cmd --add-service=rpc-bind
success
[root@jiayi ~]# firewall-cmd --add-service=rpc-bind --permanent
success
[root@jiayi ~]# firewall-cmd --add-service=mountd
success
[root@jiayi ~]# firewall-cmd --add-service=mountd --permanent
success
在另一台终端上访问这个共享文件夹,首先使用show mount命令查看服务器上共享的目录
[root@jia ~]# showmount -e 192.168.10.20
Export list for 192.168.10.20:
/share *
把服务器上共享的目录挂载到本地/nfs目录上
[root@jia ~]# mkdir /nfs
[root@jia ~]# mount 192.168.10.20:/share /nfs
查看挂载情况
[root@jia ~]# df -Th | grep nfs
192.168.10.20:/share nfs4 66G 5.6G 60G 9% /nfs
可以看到,已经挂载好了。
如果希望开机能够自动挂载,则写入/etc/fstab中
[root@jia ~]# cat /etc/fstab | grep nfs
192.168.10.20:/share /nfs nfs defaults 0 0
2.自动挂载
自动挂载的意思是,把一个外部设备/dev/xx和某个目录/dir/yy关联起来。平时/dev/xx是否挂载到了/dir/yy 上不需要考虑,但访问 /dir/yy时,系统就知道要访问 /dev/xx中的数据,这个时候系统会自动将/dev/xx挂载到/dir/yy 上
这里先下载自动挂载的软件
挂载光盘
[root@jia ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
编写repo文件
[root@jia ~]# cat /etc/yum.repos.d/jiayi.repo
[jiayi]
name=jiayi
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0
[jia]
name=jia
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
开始安装autofs
[root@jia ~]# yum -y install autofs
...
已安装:
autofs-1:5.1.4-74.el8.x86_64
完毕!
启动autofs并设置开机自动启动
[root@jia ~]# systemctl enable autofs.service --now
Created symlink /etc/systemd/system/multi-user.target.wants/autofs.service → /usr/lib/systemd/system/autofs.service.
下面练习把光盘自动挂载到/zz/dvd 上。先把/zz创建出来
[root@jia ~]# mkdir /zz
记住,这里不需要创建目录/zz/dvd,这个目录会自动创建
在/etc/auto.master.d目录中创建一个后缀为 autofs的文件,后缀必须是autofs,这里创建的是aa.autofs
[root@jia ~]# cat /etc/auto.master.d/aa.autofs
/zz /etc/auto.aa
这里的意思是把哪个外部设备挂载到/zz的哪个子目录上由/etc/auto.aa决定,内容使用【Tab】键进行分隔。下面创建/etc/auto.aa
[root@jia ~]# cat /etc/auto.aa
dvd -fstype=iso9660,ro :/dev/cdrom
这个文件的格式如下
子目录 ‐fstype= 文件系统,选项1,选项2 :外部设备
这里外部设备如果是本地磁盘或光盘,冒号前面保持为空,但是冒号不能省略。如果是其他机器上共享的目录,则写远端的IP
结合/etc/auto.master.d/aa.autofs整体的意思是,当访问/zz/dvd时,系统会自动把/dev/cdrom挂载到/zz/dvd 上
重启autofs服务,让我们刚做的配置生效
[root@jia ~]# systemctl restart autofs.service
确认现在光盘是没有挂载到/zz/dvd 上的,而且/zz目录中也没有dvd目录
[root@jia ~]# mount | grep -v auto | grep zz
[root@jia ~]# ls /zz
[root@jia ~]#
下面访问/zz/dvd
[root@jia ~]# ls /zz/dvd
AppStream EFI extra_files.json images media.repo RPM-GPG-KEY-redhat-release
BaseOS EULA GPL isolinux RPM-GPG-KEY-redhat-beta TRANS.TBL
因为访问这个目录时能触发自动挂载,系统自动创建/zz/dvd并把 /devcdrom挂载到这个目录上,再次验证挂载情况
[root@jia ~]# mount | grep -v auto | grep zz
/dev/sr0 on /zz/dvd type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)
可以看到,现在已经挂载上去了