nfs自动挂载
在默认路径下进行自动挂载
在我的电脑中有两个虚拟机,可以在一个虚拟机中搭载一个特殊目录,来让另外一个虚拟机挂载该特殊目录来访问该特殊目录中的内容,达到共享的目的,但是如果在不需要该目录时,如果依然保持挂载状态就会浪费资源,所以可以通过nfs服务来达到自动挂载,定时卸载
(说明:我的desktop虚拟机来作为客户端,server虚拟机来作为服务端)
以下操作在客户端进行
1.需要先下载autofs服务(用到了之前搭载好的yum源,需要查阅可以先参考一下我的另外一篇博客“yum源的搭建”)
[root@foundation126 yum.repos.d]# yum install autofs -y
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package autofs.x86_64 1:5.0.7-40.el7 will be installed
--> Processing Dependency: libhesiod.so.0()(64bit) for package: 1:autofs-5.0.7-40.el7.x86_64
--> Running transaction check
---> Package hesiod.x86_64 0:3.2.1-3.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
autofs x86_64 1:5.0.7-40.el7 rhel7.0 550 k
Installing for dependencies:
hesiod x86_64 3.2.1-3.el7 rhel7.0 30 k
Transaction Summary
================================================================================
Install 1 Package (+1 Dependent package)
Total download size: 579 k
Installed size: 3.6 M
Downloading packages:
(1/2): autofs-5.0.7-40.el7.x86_64.rpm | 550 kB 00:00
(2/2): hesiod-3.2.1-3.el7.x86_64.rpm | 30 kB
00:00
--------------------------------------------------------------------------------
Total 1.8 MB/s | 579 kB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : hesiod-3.2.1-3.el7.x86_64 1/2
Installing : 1:autofs-5.0.7-40.el7.x86_64 2/2
Verifying : hesiod-3.2.1-3.el7.x86_64 1/2
Verifying : 1:autofs-5.0.7-40.el7.x86_64 2/2
Installed:
autofs.x86_64 1:5.0.7-40.el7
Dependency Installed:
hesiod.x86_64 0:3.2.1-3.el7
Complete!
2.autofs安装成功,之后查看/net目录属性,如果不开启autofs服务,则无法查看该目录,开启autofs服务后,就可以查看到/net目录的属性
[root@foundation126 yum.repos.d]# ls -ld /net
ls: cannot access /net: No such file or directory
[root@foundation126 yum.repos.d]# systemctl start autofs
[root@foundation126 yum.repos.d]# ls -ld /net
drwxr-xr-x 2 root root 0 Jan 22 02:13 /net
3.查看完成后,切换到该目录下的ip目录下(ip为服务端的ip地址),之后再切换到共享目录下
[root@foundation126 yum.repos.d]# cd /net/
[root@foundation126 net]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.25.254.100 netmask 255.255.255.0 broadcast 172.25.254.255
inet6 fe80::5054:ff:fe00:320a prefixlen 64 scopeid 0x20<link>
ether 52:54:00:00:32:0a txqueuelen 1000 (Ethernet)
RX packets 1100 bytes 4410288 (4.2 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 797 bytes 91811 (89.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 0 (Local Loopback)
RX packets 150 bytes 12060 (11.7 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 150 bytes 12060 (11.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@foundation126 net]# cd 172.25.254.150/
[root@foundation126 172.25.254.150]# cd ..
[root@foundation126 net]# ls
172.25.254.150
[root@foundation126 net]# cd 172.25.254.150/
[root@foundation126 172.25.254.150]# ls
westosshare
[root@foundation126 172.25.254.150]# cd westosshare/
4.切换完成后,输入df指令,便可以完成挂载,将该共享目录挂载到默认路径下。不过要注意不能频繁输入df指令,因为df指令会刷新时间,目录挂载时间是从最后一次输入df指令并返回上级目录开始算起,当到达系统默认时间后,会自动将共享目录从默认路径卸载,否则会导致不能卸载
[root@foundation126 westosshare]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3246812 7227088 31% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12804 472112 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.150:/westosshare 1038336 32896 1005440 4% /mnt
172.25.254.150:/westosshare 1038336 32896 1005440 4% /net/172.25.254.150/westosshare
5.我的虚拟机默认卸载时间是300秒,但是可以通过修改配置文件来修改卸载时间(我将修改时间修改为5秒)
[root@foundation126 westosshare]# vim /etc/sysconfig/autofs #修改卸载时间,修改完成后重启服务
[root@foundation126 westosshare]# systemctl restart autofs.service
6.重启完成后进行挂载
[root@foundation126 westosshare]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3246824 7227076 31% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12804 472112 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.150:/westosshare 1038336 32896 1005440 4% /mnt
172.25.254.150:/westosshare 1038336 32896 1005440 4% /net/172.25.254.150/westosshare
7.挂载完成后返回到上级目录
[root@foundation126 westosshare]# cd ..
8.返回到上级目录后等上大于5秒钟的时间,之后再次使用df指令查看系统挂载情况
[root@foundation126 172.25.254.150]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3246804 7227096 31% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12804 472112 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.150:/westosshare 1038336 32896 1005440 4% /mnt
可以从上面看到,挂载在默认路径下的目录被卸载
修改默认自动挂载路径
自动挂载存在默认路径,如果想要修改默认路径可以执行下面所示操作假设我现在想将共享目录挂载到/opt/nfs/westos目录下
1.对相关配置文件进行修改,修改完成后重启
[root@foundation126 172.25.254.150]# vim /etc/auto.master #里面写的是最终挂载点的上层目录
第8行 /opt/nfs /etc/auto.nfs #文件名字是任意的,文件不存在,需要自己创建,在新建文件中写入挂载共享目录的最终目录
[root@foundation126 172.25.254.150]# vim /etc/auto.nfs
westos -ro 172.25.254.150:/westosshare #ip为服务端ip,后面是服务端下的共享目录绝对路径
2.编辑完成后重新启动autofs服务
[root@foundation126 172.25.254.150]# systemctl restart autofs
3.启动之后查看/opt/目录下的内容可以看到nfs目录,但是发现不能切换进去
[root@foundation126 172.25.254.150]# ls /opt
examshell nfs rh
关闭服务后可以看到nfs服务消失
[root@foundation126 172.25.254.150]# systemctl stop autofs
[root@foundation126 172.25.254.150]# pwd
/net/172.25.254.150
[root@foundation126 172.25.254.150]# ls /opt
examshell rh
[root@foundation126 172.25.254.150]# cd /opt
[root@foundation126 opt]# ls
examshell rh
之后再次启动autofs服务,这样就可以切换到nfs目录下了
[root@foundation126 westosshare]# systemctl restart autofs
[root@foundation126 westosshare]# ls /opt
examshell nfs rh
4.切换到想要挂载的最终目录下,执行df指令进行挂载
[root@foundation126 westosshare]# cd /opt/nfs/
[root@foundation126 nfs]# ls
[root@foundation126 nfs]# cd /opt/nfs/westos
[root@foundation126 westos]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3250580 7223320 32% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12784 472132 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.150:/westosshare 1038336 32896 1005440 4% /opt/nfs/westos
5.从上面可以看到已经挂载到了修改后的路径下,之后编辑/etc/sysconfig/autofs 文件来修改卸载时间,我将时间还是修改为5秒,方便查看实验结果
[root@foundation126 westos]# vim /etc/sysconfig/autofs
[root@foundation126 westos]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3250604 7223296 32% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12784 472132 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
172.25.254.150:/westosshare 1038336 32896 1005440 4% /opt/nfs/westos
[root@foundation126 westos]# cd ..
[root@foundation126 nfs]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3250604 7223296 32% /
devtmpfs 469328 0 469328 0% /dev
tmpfs 484916 140 484776 1% /dev/shm
tmpfs 484916 12784 472132 3% /run
tmpfs 484916 0 484916 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 483670 2339 451840 1% /home
返回到最终挂载目录的上层目录下,等待大概超过5秒的时间后再次使用df指令来查看系统挂载情况,可以看到挂载的服务端上的共享目录被卸载