故障:/etc/fstab中NFS自動掛載失敗

本文首發於我的個人網站: https://hewanyue.com/
本文作者: Hechao
本文鏈接: https://hewanyue.com/blog/219b1607.html

  之前配置了一個web集羣(其實就3個服務器),想實現數據共享和動靜分離,感覺配置分佈式存儲比較複雜,也沒必要,就打算在搭建一個NFS服務器,共享幾個目錄,掛載在幾個web服務器上。
  搭建NFS服務過程很順利,手動掛載也沒問題,然後打算將掛載信息寫進/etc/fstab配置文件,實現開機自動掛載。

#
# /etc/fstab
# Created by anaconda on Wed Oct  9 08:35:16 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/cl-root     /                       xfs     defaults        0 0
UUID=100a90e3-01ac-43aa-b6da-a10a6c105282 /boot                   ext4    defaults        1 2
/dev/mapper/cl-data     /data                   xfs     defaults        0 0
/dev/mapper/swap-swap   swap                    swap    defaults        0 0
/dev/sr0                /cdrom                  iso9660 defaults        0 0
192.168.32.85:/data/nfsshare /apps/nginx/html/wordpress/wp-content/uploads nfs defaults,_netdev  0 0

  以爲一切萬事大吉之後,重啓了機子測試下,df命令一看,發現竟然沒有顯示,用mount -l命令看了下,也沒有掛載信息——竟然沒有自動掛載。
  開始以爲配置文件格式寫錯了,結果嘗試一下mount -a發現一下就掛載成功了。
  這就很奇怪了,說明配置文件格式也沒問題。
  NFS服務器也沒任何報錯,應該跟NFS服務器沒有關係,只是出於某種原因不能自動掛載而已。
  可是本地光盤確實可以開機正常掛載的,於是我懷疑是參數寫的有問題,不過仔細確認了下,之前參數就是這樣的也是可以成功掛載的,抑或是CentOS8有些新特性和改動。上面確實提示After editing this file, run 'systemctl daemon-reload' to update systemd units generated from this file,我也嘗試了,沒有效果,不過既然其他掛載項都沒問題,說明問題就在NFS這一行。
  於是去查看下系統日誌,發現了問題的端倪

[root@CentOS8 ~]#tail /var/log/boot.log
See 'systemctl status "apps-nginx-html-wordpress-wp\\x2dcontent-uploads.mount"' for details.
[DEPEND] Dependency failed for Remote File Systems.
         Starting Permit User Sessions...
         Starting The nginx HTTP and reverse proxy server...
         Starting Crash recovery kernel arming...
[  OK  ] Started OpenSSH server daemon.
[  OK  ] Started Permit User Sessions.
         Starting Terminate Plymouth Boot Screen...
         Starting Hold until boot process finishes up...
[  OK  ] Started Command Scheduler.

  顯示遠程服務系統也就是NFS服務掛載失敗,查看詳細信息。

[root@CentOS8 ~]#systemctl status "apps-nginx-html-wordpress-wp\\x2dcontent-uploads.mount"
● apps-nginx-html-wordpress-wp\x2dcontent-uploads.mount - /apps/nginx/html/wordpress/wp-content/uploads
   Loaded: loaded (/etc/fstab; generated)
   Active: failed (Result: resources)
    Where: /apps/nginx/html/wordpress/wp-content/uploads
     What: 192.168.32.85:/data/nfsshare
     Docs: man:fstab(5)
           man:systemd-fstab-generator(8)

Nov 11 16:02:39 CentOS8 systemd[1]: apps-nginx-html-wordpress-wp\x2dcontent-uploads.mount: Mount path /apps/nginx/html/wordpress/wp-content/uploads is not canonical (contains a symlink).
Nov 11 16:02:39 CentOS8 systemd[1]: apps-nginx-html-wordpress-wp\x2dcontent-uploads.mount: Failed to run 'mount' task: Too many levels of symbolic links
Nov 11 16:02:39 CentOS8 systemd[1]: apps-nginx-html-wordpress-wp\x2dcontent-uploads.mount: Failed with result 'resources'.
Nov 11 16:02:39 CentOS8 systemd[1]: Failed to mount /apps/nginx/html/wordpress/wp-content/uploads.

  說掛載失敗,掛載路徑不符合規範is not canonical (contains a symlink).。路徑寫法應該沒問題的,難道是因爲Too many levels of symbolic links,層級太多了嗎?我記得之前掛載點目錄層級結構,比這還長都可以掛載成功的,難道又要歸結爲CentOS8的新特性了麼。
  一通百度、google之後,竟然沒有人和我遇到的問題一樣,掛載點的最大層級數是多大也沒人提到過,官方文檔也沒有查到。
  正當我打算將層數改小一些再嘗試下的時候,突然看到一篇博客提到Too many levels of symbolic links,不過是在軟鏈接中的報錯。我突然想起來,當時我安裝完系統後,規劃的是將文檔和應用都裝在/data目錄下,可是我實際操作中比較習慣使用/apps/目錄來找各種應用,於是之前編譯安裝nginx及php之前,我創建了一個軟鏈接ln -s /data/apps /apps,以便/apps下的數據跟系統分區隔離開,在一個單獨分區。或許這個is not canonical (contains a symlink).中的symlink說的就是指軟鏈接。
  將配置文件修改爲192.168.32.85:/data/nfsshare /data/apps/nginx/html/wordpress/wp-content/uploads nfs defaults,_netdev 0 0後,再次重啓。df命令查看

[root@CentOS8 ~]#df
Filesystem                   1K-blocks    Used Available Use% Mounted on
devtmpfs                        393080       0    393080   0% /dev
tmpfs                           408620       0    408620   0% /dev/shm
tmpfs                           408620    5816    402804   2% /run
tmpfs                           408620       0    408620   0% /sys/fs/cgroup
/dev/mapper/cl-root           52399108 2700076  49699032   6% /
/dev/sr0                       6967726 6967726         0 100% /cdrom
/dev/nvme0n1p1                 8191416  163348   7592256   3% /boot
/dev/mapper/cl-data           41926656  585412  41341244   2% /data
192.168.32.85:/data/nfsshare  41926656  535040  41391616   2% /data/apps/nginx/html/wordpress/wp-content/uploads
tmpfs                            81724       0     81724   0% /run/user/0
[root@CentOS8 ~]#

  掛載成功~問題解決!原來純屬自己挖的坑!
  記錄一下,也算,增長點見識,吸取些教訓。

發佈了43 篇原創文章 · 獲贊 52 · 訪問量 9175
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章