Autofs實現NFS實時掛載

部署背景:

  

  因公司的UPS老化,斷電後只能支撐20min,各種原因無法保障服務器不斷電,只能將所有服務器power manager mode都設置爲 自動來電喚醒,此時 掛載nfs的應用服務器 總是比 nfs存儲服務器 重啓速度快,就是因爲這個時間差,雖然可以實現開機掛載nfs磁盤,但是應用服務器往往無法成功掛載nfs磁盤。


解決方案:


 ①開機延遲時間重新掛載

  起初,使用開機腳本/etc/rc.local

  sleep 300 

  mount -a 

  基本滿足斷電重啓的需求。


 ②非實時守護進程進行多次掛載

  第二階段,因爲時間段300秒這個延遲問題,依舊無法實現nfs存儲中斷或重啓這樣的小概率事件,於是寫了一個類似守護進程腳本,只要磁盤中無法檢索nfs磁盤,不停的執行mount -a命令,直至nfs存儲服務器的應用完全開啓。

  腳本如下

  mount -t nfs 192.168.3.207:/home/www /mnt/ceshi_nfs

每小時4次進行檢驗

01,16,31,46 * * * * if [-d /mnt/ceshi_nfs/ceshidir] || mount -a


 ③成熟工具autofs解決服務中斷問題

 鑑於上述守護進程過於模式原因,找到工具autofs解決



部署並開啓autofs後測試結果如下:


 

測試用例:

將192.168.3.207服務器的/home/www目錄掛載在192.168.3.205服務器/mnt/ceshi_nfs目錄

205-virtual-machine:/mnt# apt-get install autofs -y

//配置autofs掛載nfs磁盤
205-virtual-machine:/mnt# cat /etc/auto.master
/mnt/ceshi_nfs /etc/auto.nfs

205-virtual-machine:/mnt# cat /etc/auto.nfs
nfs 192.168.3.207:/home/www


 ①umount掉nfs磁盤,開啓autofs測試是否會成功開啓;

wKioL1jPd7WQSTzRAAAV2VitOio382.png-wh_50

   

# umount /mnt/ceshi_nfs
# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda6       19092180 11952848   6146464  67% /
udev              487036        4    487032   1% /dev
tmpfs             100372      904     99468   1% /run
none                5120        0      5120   0% /run/lock
none              501852      144    501708   1% /run/shm
/dev/sda1         439012    99706    312119  25% /boot
# service autofs restart
//使用restart讀取配置文件後
# df | grep 207
192.168.30.207:/home/www  19092224  9122560   8976768  51% /mnt/ceshi_nfs
 ③NFS存儲服務器服務重啓,測試應用服務器是否能夠在NFS重新啓動後,掛載NFS磁盤;


  ③NFS服務重啓,測試應用服務器是否能夠在NFS重新啓動後,掛載NFS磁盤

wKiom1jPd0yQNpT0AAAUUwud3cw611.png-wh_50

207:/home/www# /etc/init.d/portmap stop
207:/home/www# /etc/init.d/nfs-kernel-server stop

//此時執行df命令會卡頓,無法得到結果,無法進行讀取掛載nfs目錄的磁盤操作,時間過長甚至終端無法操作
205-virtual-machine:/mnt# df
^C
205-virtual-machine:/mnt# ls
^C

//等待60s時間過後即可進行自動掛載
205-virtual-machine:/mnt# df | grep 207
192.168.30.207:/home/www  19092224  9122560   8976768  51% /mnt/ceshi_nfs


 ③兩服務器同時重啓,測試應用服務器是否能夠掛載NFS磁盤;

wKioL1jPd4GiWFulAAAV_kbtiBs151.png-wh_50

207:/home/www# reboot
205-virtual-machine:/mnt# reboot
205-virtual-machine:~# df
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda6       19092180 11952912   6146400  67% /
udev              487036        4    487032   1% /dev
tmpfs             100372      904     99468   1% /run
none                5120        0      5120   0% /run/lock
none              501852      144    501708   1% /run/shm
/dev/sda1         439012    99706    312119  25% /boot

 ③測試結果:

 無法解決開機上述即後無掛載問題

 

 後續,更改配置文件,設置automount週期,問題不定期存在,配置如下:

 

205-virtual-machine:/mnt# cat /etc/auto.master
/mnt/ceshi_nfs /etc/auto.nfs --timeout 30


最後建議:

    針對autofs這個bug解決方案無非是兩種:

     ① 現有架構依舊實行每小時4次的非實時守護腳本,輔助autofs實時守護;

     ② 源碼編譯最新版的autofs(後續如有結果我會補充)。

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