顯示具有 NFS 標籤的文章。 顯示所有文章
顯示具有 NFS 標籤的文章。 顯示所有文章

首次在 Solaris 10 上 Mount RHEL5 NFS mount point fail

之前有在 LINUX AutoFS 實作 中提到關於在 RHEL 上以 AutoFS 的方式來 Mount NFS partitions from RHEL5 NFS server,今天要試一下在另一台 Solaris 10 的機器上,一樣用 AutoMount 的方式來從 RHEL5 NFS server 上 Mount NFS partitions,不過似乎遇到怪怪的問題了,在改完 /etc/auto_master 與 /etc/auto_nfs ,(這裡要特別注意一下喔,在 RHEL 上這兩個檔案為 /etc/auto.master and /etc/auto.nfs 而在 Solaris 上則改成底線符號喔),並將 svc:/system/filesystem/autofs:default 給重啟後,發現仍無法將遠端 RHEL5 share 的目錄給 mount 上來啊,出現了如下的錯誤訊息:
root@KHCFEMS01 # ls -al /NFSBKP/configuration
/NFSBKP/configuration: Permission denied
total 1
一開始還以為真的是沒在 RHEL5 NFS server 上的 /etc/exports 裡加上這部 Solaris 的權限,再次檢查之後才發現不對啊,權限都有,查看一下 Solaris 機器上的 Log 檔發現如下的錯誤:
root@KHCFEMS01 # tail -3 /var/adm/messages
Oct 8 18:18:44 KHCFEMS01 automountd[26815]: [ID 834250 daemon.error] Mount of KHCBKPS01:/NBU/KHCFEMS01 on /NFSBKP/configuration: Not owner
Oct 8 18:23:39 KHCFEMS01 nfs: [ID 435675 kern.warning] WARNING: NFS server initial call to KHCBKPS01 failed: Not owner
Oct 8 18:23:39 KHCFEMS01 automountd[26851]: [ID 834250 daemon.error] Mount of KHCBKPS01:/NBU/KHCFEMS-ALL on /NFSBKP/configuration: Not owner
原來問題是出在 Solaris 機器上 mount client 的設定檔裡關於版本的問題,在這裡,我們直接編輯 Solaris 上的 /etc/default/nfs 檔,搜尋一下
#NFS_CLIENT_VERSMAX=4
將之改為:
NFS_CLIENT_VERSMAX=3
然後將 svc:/network/nfs/client:default 給 refresh 一下:
svcadm refresh svc:/network/nfs/client:default
這時我們再看一次,果然已經可以使用 AutoMount 來看到遠端的 Mount point 囉,報告完畢~
root@KHCFEMS01 # ls -al /NFSBKP/configuration
total 33
drwxr-xr-x 5 root root 4096 Oct 8 17:21 .
dr-xr-xr-x 2 root root 2 Oct 8 18:22 ..
drwxr-xr-x 2 root root 4096 Oct 8 16:34 KHCFEMS01
drwxr-xr-x 2 root root 4096 Oct 8 16:34 KHCFEMS02
drwxr-xr-x 2 root root 4096 Oct 8 16:36 common_log
(詳全文...)

LINUX AutoFS 實作

昨天做到在 DHCP server 上把將遠端 KHXDB server (也就是 Veritas cluster 的 VIP) 上的 /DB mount 到 DHCP server 上的 /DB 來,然後再將 /var/lib/dhcp/DB/dhcp mount 到 /var/lib/dhcp 來,不過由於是將 Mount 的動作寫在 /etc/fstab 裡面,所以今天一早來就先把他改成 Automount,需要讀寫IP 租用紀錄檔時才自動去掛載遠端 KHXDB server 的 mount point。

Autofs 與 Mount/Umount 的不同之處在于,它是一種看守程序。如果它檢測到有任何使用者的動作試圖存取一個尚未掛載的檔案或目錄,它就會自動檢測該目錄或檔案,如果存在,那麼 Autofs會自動將其掛載。另外,如果它檢測到某個已掛接的目錄在一段時間內沒有被使用,那麼 Autofs會自動將其卸載。因此一旦執行了 Autofs後,使用者就不用再手動做系統的 Mount/Umount。

接下來就是實作的部分了,首先,在這次的範例中,要掛載遠端機器 KHXDB server 上的 /DB/dhcp 目錄到 DHCP server 的 /NFSDB/dhcp 掛載點,所以我們先編輯一下 /etc/auto.master
將下列這一行加入到 auto.master 檔案中:
/NFSDB /etc/auto.nfs --timeout 60
接著增加下列這一行至 /etc/auto.nfs 檔案中:
dhcp -rw,bg,soft,rsize=8192,wsize=8192 KHXDB:/DB/dhcp
其中 /etc/auto.nfs 檔案的第一個欄位 dhcp 是 /DBNFS 之下子目錄的名稱,這個目錄是由 automount 動態建立的,
它不應該實質上存在於近端機器上也就是 DHCP server 啦,第二個欄位包含掛載選項,如 rw 代表允許讀取與寫入的存取,第三個欄位就是 NFS 所匯出的位置,包括遠端主機名稱與目錄。

千萬要注意喔:
/NFSDB 目錄必須存在於本機的檔案系統中,而且 /NFSDB 目錄下不可以含有任何的子目錄喔。
Autofs 是一項服務,如要啟動這個服務,請在 shell 提示符號下輸入下列指令:
/sbin/service autofs restart
如果要檢視現行的掛載點,可以在 shell 提示符號下輸入下列指令:
[root@KHXDHCPS1 ~]# service autofs status
Configured Mount Points:
------------------------
/usr/sbin/automount --timeout=60 /NFSDB file /etc/auto.nfs

Active Mount Points:
--------------------
/usr/sbin/automount --timeout=60 /NFSDB file /etc/auto.nfs
假如在 autofs 執行中的情況下修改了 /etc/auto.master 設定檔案,那就必須在 shell 提示符號下輸入以下指令來讓 automount 系統程式重新載入:
[root@KHXDHCPS1 ~]# service autofs reload
Checking for changes to /etc/auto.master ....
Reload map /usr/sbin/automount --timeout=60 /NFSDB file /etc/auto.nfs
最後,可以有幾個方式確認一下遠端 mount 過來的狀況,第一個當然是直接去 ls 一下最後的 mount point,像是在這個例子中:
[root@KHXDHCPS1 ~]# ls -alrt /var/lib/dhcp
total 72
drwxr-xr-x 17 root root 4096 Jul 7 19:36 ..
-rw-r--r-- 1 root root 0 Jul 9 11:52 dbserver-id.donot-delete-me
-rw-r--r-- 1 root root 34779 Jul 9 19:47 dhcpd.leases~
drwxr-xr-x 2 root root 4096 Jul 9 19:47 .
-rw-r--r-- 1 root root 18033 Jul 9 19:47 dhcpd.leases
其中 dbserver-id.donot-delete-me 便是我擺在遠端 KHXDB server 上當作辨識用的檔案囉。

另一種方式便是直接去看 mount status:
[root@KHXDHCPS1 ~]# mount
/dev/sda2 on / type ext3 (rw)
none on /proc type proc (rw)
none on /sys type sysfs (rw)
none on /dev/pts type devpts (rw,gid=5,mode=620)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /boot type ext3 (rw)
none on /dev/shm type tmpfs (rw)
/dev/sda3 on /inactive_root type ext3 (rw)
/dev/sda6 on /others type ext3 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

automount(pid18972) on /NFSDB type autofs (rw,fd=5,pgrp=18972,minproto=2,maxproto=4)
/NFSDB/dhcp on /var/lib/dhcp type none (rw,bind)
KHXDB:/DB/dhcp1 on /NFSDB/dhcp type nfs (rw,bg,soft,rsize=8192,wsize=8192,addr=10.69.10.41)
(詳全文...)