autofs自動掛載

1、autofs簡介

    mount是用來掛載文件系統的,可以在系統啓動的時候掛載也可以在系統啓動後掛載。對於本地固定設備,如硬盤可以使用mount掛載;而光盤、軟盤、NFS、SMB等文件系統具有動態性,即有需要的時候纔有必要掛載。光驅和軟盤我們一般知道什麼時候需要掛載,但NFS和SMB共享等就不一定知道了,即我們一般不能及時知道NFS共享和SMB什麼時候可以掛載。而autofs服務就提供這種功能,好像windows中的光驅自動打開功能,能夠及時掛載動態加載的文件系統。免去我們手動掛載的麻煩。要實現光驅,軟盤等的動態自動掛載,需要進行相關的配置。

    特點:

    Autofs與Mount/Umount的不同之處在於,它是一種看守程序。如果它檢測到用戶正試圖訪問一個尚未掛接的文件系統,它就會自動檢測該文件系統,如果存在,那麼Autofs會自動將其掛接。另一方面,如果它檢測到某個已掛接的文件系統在一段時間內沒有被使用,那麼Autofs會自動將其卸載。因此一旦運行了Autofs後,用戶就不再需要手動完成文件系統的掛接和卸載。

2、autofs安裝及配置

        系統環境:

[root@vms001 /]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.1 (Maipo)
[root@vms001 /]# uname -r
3.10.0-229.el7.x86_64

     1)安裝及啓動autofs服務

[root@vms001 /]# yum -y install autofs    #安裝autofs服務
[root@vms001 /]# systemctl start autofs    #啓動autofs服務
[root@vms001 /]# systemctl enable autofs    #設置開機自啓動autofs服務

    2)autofs的配置文件

/etc/auto.master   #主配置文件,(指定要掛載的父目錄以及指定子配置文件)
/etc/auto.misc    #子配置文件(文件名可以自定義,子配置文件由主配置文件決定)

    3)autofs自動掛載的兩種格式配置

    ① 相對路徑掛載(會把父目錄的源文件覆蓋掉)

         本測試是掛載本地設備cdrom

##############創建父目錄及文件############

[root@vms001 /]# mkdir /autofs        #創建父目錄
[root@vms001 /]# touch /autofs/aa-{0..5}   #創建文件,測試當設置了自動掛載後 文件是否被覆蓋
[root@vms001 /]# ls /autofs/
aa-0  aa-1  aa-2  aa-3  aa-4  aa-5

###############編輯主配置文件############

[root@vms001 /]# vim /etc/auto.master
#添加以下內容
/autofs    /etc/auto.aa    #/autofs是指定掛載點的父目錄;/etc/auto.aa是指定的子配置文件路徑

###############編輯子配置文件############

[root@vms001 /]# cp /etc/auto.misc /etc/auto.aa   

[root@vms001 /]# vim /etc/auto.aa
# 添加以下內容
#xx是掛載點,當訪問這個目錄的時候會自動掛載;-fstype是文件系統類型;:/dev/cdrom 是所要掛載的設備
xx   -fstype=iso9660,ro  :/dev/cdrom  

###############測試############

[root@vms001 /]# systemctl restart autofs    #重啓autofs服務
[root@vms001 /]# 
[root@vms001 /]# mount | grep xx   #發現xx沒有被掛載
[root@vms001 /]# 
[root@vms001 /]# ls /autofs/     #查看父目錄爲空,說明父目錄的源文件被覆蓋了
[root@vms001 /]# 
[root@vms001 /]# ls /autofs/xx    #查看xx掛載點,發現它自動掛載
addons  GPL       LiveOS      release-notes            RPM-GPG-KEY-redhat-release
EFI     images    media.repo  repodata                 TRANS.TBL
EULA    isolinux  Packages    RPM-GPG-KEY-redhat-beta
[root@vms001 /]# 
[root@vms001 /]# mount | grep xx   #當訪問xx掛載點後,xx已掛載
/dev/sr0 on /autofs/xx type iso9660 (ro,relatime)

    總結:相對路徑掛載會把父目錄的源文件覆蓋掉。/etc/auto.master主配置文件指定掛載點的父目錄以及子配置文件的路徑(子配置文件可以自定義,但格式必須是auto.xxx);/etc/auto.aa子配置文件指定 掛載點、文件系統類型、所要掛載的設備;


    ② 絕對路徑掛載(父目錄的源文件不會改變,會在父目錄中創建掛載點目錄)

        本測試是掛載遠程nfs設備

###############創建父目錄及文件#############

[root@vms001 /]# mkdir data
[root@vms001 /]# touch /data/data-{0..5}
[root@vms001 /]# ls /data/
data-0  data-1  data-2  data-3  data-4  data-5

###############編輯主配置文件############

[root@vms001 /]# vim /etc/auto.master
#添加以下內容
/-         /etc/auto.bb   #/-固定格式;/etc/auto.bb指定子配置文件的路徑

###############編輯子配置文件############

[root@vms001 /]# cp /etc/auto.misc /etc/auto.bb
[root@vms001 /]# 
[root@vms001 /]# vim /etc/auto.bb
#添加以下內容
/data/zz  -fstype=nfs,vers=3,rw  vms002:/data   #掛載點是絕對路徑;文件系統類型是nfs;掛載設備是nfs

###############測試############

[root@vms001 /]# systemctl restart autofs    #重啓autofs服務
[root@vms001 /]# 
[root@vms001 /]# mount | grep nfs    #vms002(nfs)沒有被掛載
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
[root@vms001 /]# 
[root@vms001 /]# ls /data/                 #查看父目錄,發現源文件還在。
data-0  data-1  data-2  data-3  data-4  data-5  zz  
[root@vms001 /]#   
[root@vms001 /]# ls /data/zz     #查看掛載點
oldboy-0  oldboy-1  oldboy-2  oldboy-3  oldboy-4  oldboy-5
[root@vms001 /]# 
[root@vms001 /]# mount | grep nfs   #vms002(nfs)已被掛載
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
vms002:/data on /data/zz type nfs (rw,relatime,vers=3,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.26.102,mountvers=3,mountport=20048,mountproto=udp,local_lock=none,addr=192.168.26.102)

    總結:絕對路徑掛載不會改變父目錄的源文件。/etc/auto.master主配置文件:/-爲固定格式,子配置文件的路徑(子配置文件可以自定義,但格式必須是auto.xxx);/etc/auto.bb子配置文件指定 掛載點(必須是絕對路徑)、文件系統類型、所要掛載的設備;

3、總結

    1)自動掛載的服務爲:autofs;

    2)autofs配置文件:主配置文件(/etc/autofs.master);子配置文件(/etc/auto.misc);

    3)相對路徑掛載:會覆蓋父目錄的源文件;

    4)絕對路徑掛載:父目錄的源文件不會改變;

    5)autofs服務是一個守護進程。當我們訪問掛載點的時候,它會自動檢測該文件系統,如果存在,autofs會將其自動掛載;autofs還會檢測已掛載的文件系統,如果長時間未被訪問,則autofs會將其卸載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章