3 Linux下 NFS 客戶端的設(shè)置
Unix/Linux系統(tǒng)把一切設(shè)備都當做文件來處理,NFS共享目錄的使用也不例外。此處假定NFS服務(wù)器地址為192.168.6.55,共享目錄為/vmsnfs。那么在其他Linux機器如果要訪問這個共享目錄,首先要掛載(mount)此nfs共享目錄,比如也可以是/vmsnfs。這樣對于所有Linux機器上的程序都可以訪問/vmsnfs目錄下的文件或子目錄,如同這些文件就存儲在本機之上。
3.1 通過mount命令來設(shè)置
首先創(chuàng)建掛載點,就是Linux下一個普通目錄。
mkdir /vmsnfs
然后使用mount命令將nfs共享目錄掛載上來。
mount -t nfs 192.168.6.55:/vmsnfs /vmsnfs
如果不想再使用此nfs共享目錄,可以使用umount命令卸載掉。
umount /vmsnfs
這種方式使用nfs共享目錄有個問題,它是臨時的,重新啟動機器就會丟失。最好的方式是采用autofs來自動掛載。
3.2 使用autofs自動來設(shè)置
mount 是用來掛載文件系統(tǒng)的,可以在系統(tǒng)啟動的時候掛載也可以在系統(tǒng)啟動后掛載。對于本地固定設(shè)備,如硬盤可以使用mount掛載;而光盤、軟盤、 NFS、 SMB等文件系統(tǒng)具有動態(tài)性,即需要的時候才有必要掛載。光驅(qū)和軟盤我們一般知道什么時候需要掛載,但NFS和SMB共享等就不一定知道了,即我們一般不能及時知道NFS共享和SMB什么時候可以掛載。而autofs服務(wù)就提供這種功能,好像windows中的光驅(qū)自動打開功能,能夠及時掛載動態(tài)加載的文件系統(tǒng)。免去我們手動掛載的麻煩。
創(chuàng)建/etc/auto.nas文件
在文件中添加一行
vmsnfs -rw,rsize=8192,wsize=8192,soft,intr 192.168.6.55:/vmsnfs
修改/etc/auto.master
添加一行
/nas /etc/auto.nas --timeout=0
注意:--timeout=0表明一旦掛載就不會自動被卸載(umount)。也可以指定一個別的正數(shù),比如600,那么如果600秒之內(nèi)沒有使用nfs就會自動被卸載。如果沒有--timeout參數(shù)部分,則默認為600秒(10分鐘),這個參數(shù)在/etc/sysconfig/autofs文件中可以用 TIMEOUT項指定。
將autofs服務(wù)設(shè)置為開機自啟動
先使用chkconfig --list autofs檢查一下autofs服務(wù)是否已經(jīng)設(shè)置為自啟動了。
[root@sunrise17 ~]# chkconfig --list autofs
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
如果你發(fā)現(xiàn)輸出中全部為off,使用chkconfig autofs on設(shè)置為開機自啟動。
[root@sunrise17 ~]# chkconfig autofs on
注:autofs實際上是使用automount命令來處理的。
創(chuàng)建一個符號鏈接/vmsnfs指向/nas/vmsnfs
因為通過上述autofs配置自動掛載的路徑為/nas/vmsnfs,而實際需要的是/vmsnfs,所以需要創(chuàng)建一個符號鏈接來達到這個目的。
首先確認一下是否已經(jīng)有/vmsnfs這樣的目錄或文件已經(jīng)存在。如果有,先把它改成別的名稱,否則創(chuàng)建的符號鏈接可能變成了/vmsnfs/vmsnfs了。
[root@sunrise17 /]# ln -s /nas/vmsnfs /vmsnfs
[root@sunrise17 /]# ls -l /vmsnfs
lrwxrwxrwx 1 root root 11 Nov 18 18:21 /vmsnfs -> /nas/vmsnfs
使用mount命令不跟任何參數(shù)就可以看到系統(tǒng)所有掛載點的情況。
[root@sunrise17 /]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@sunrise17 /]#
至此,在Linux下使用autofs來配置nfs客戶端的任務(wù)就完成了。
重新啟動機器之后再登錄,執(zhí)行mount命令,會發(fā)現(xiàn)/nas/vmsnfs并沒有自動mount上來。如下所示:
[root@sunrise17 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
再訪問一下/vmsnfs,也就是間接訪問/nas/vmsnfs就會發(fā)現(xiàn)mount上來了。也就是說,使用autofs來自動掛載nfs文件系統(tǒng)時,只有首次使用之后才會自動掛載上來。
[root@sunrise17 ~]# ls /vmsnfs
vms vmsnfs vox
[root@sunrise17 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@sunrise17 ~]#
通過上面的配置之后,重啟系統(tǒng)之后,autofs會根據(jù)需要來自動掛載nfs共享目錄。如果--timeout參數(shù)配置為正數(shù),在不需要時會自動卸載,釋放掉不必要的資源,而通過手工方式來掛載達不到這個效果。
3.3 在Linux下使用NFS客戶端會碰到的問題
Q:使用touch創(chuàng)建文件時,怎么報“Permission denied”或“權(quán)限不夠”錯誤?
A:檢查NFS服務(wù)端的共享目錄,看屬主和組是否為nfsnobody。如果不是,更改之,如下所示:(在NFS服務(wù)端所在系統(tǒng)上操作)
chown -R nfsnobody /vmsnfs
chgrp -R nfsnobody /vmsnfs
或
chown -R nfsnobody:nfsnobody /vmsnfs
Q:怎么看共享目錄的磁盤空間占用情況?
A:Linux會把掛載的共享目錄當做一個文件系統(tǒng),可以使用df來查看磁盤空間的占用情況。
[root@sunrise17 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
941082332 2767796 889739256 1% /
/dev/hdc1 101086 12166 83701 13% /boot
tmpfs 2069260 0 2069260 0% /dev/shm
192.168.6.55:/vmsnfs 54659136 46256872 5580944 90% /nas/vmsnfs
Q:在文件服務(wù)器重啟之后,客戶端已經(jīng)使用mount掛載的nfs共享目錄還能繼續(xù)正常訪問嗎?
A:有待試驗。
Q:在文件服務(wù)器重啟之后,客戶端已經(jīng)使用autofs掛載的nfs共享目錄還能繼續(xù)正常訪問嗎?
A:有待試驗。
Unix/Linux系統(tǒng)把一切設(shè)備都當做文件來處理,NFS共享目錄的使用也不例外。此處假定NFS服務(wù)器地址為192.168.6.55,共享目錄為/vmsnfs。那么在其他Linux機器如果要訪問這個共享目錄,首先要掛載(mount)此nfs共享目錄,比如也可以是/vmsnfs。這樣對于所有Linux機器上的程序都可以訪問/vmsnfs目錄下的文件或子目錄,如同這些文件就存儲在本機之上。
3.1 通過mount命令來設(shè)置
首先創(chuàng)建掛載點,就是Linux下一個普通目錄。
mkdir /vmsnfs
然后使用mount命令將nfs共享目錄掛載上來。
mount -t nfs 192.168.6.55:/vmsnfs /vmsnfs
如果不想再使用此nfs共享目錄,可以使用umount命令卸載掉。
umount /vmsnfs
這種方式使用nfs共享目錄有個問題,它是臨時的,重新啟動機器就會丟失。最好的方式是采用autofs來自動掛載。
3.2 使用autofs自動來設(shè)置
mount 是用來掛載文件系統(tǒng)的,可以在系統(tǒng)啟動的時候掛載也可以在系統(tǒng)啟動后掛載。對于本地固定設(shè)備,如硬盤可以使用mount掛載;而光盤、軟盤、 NFS、 SMB等文件系統(tǒng)具有動態(tài)性,即需要的時候才有必要掛載。光驅(qū)和軟盤我們一般知道什么時候需要掛載,但NFS和SMB共享等就不一定知道了,即我們一般不能及時知道NFS共享和SMB什么時候可以掛載。而autofs服務(wù)就提供這種功能,好像windows中的光驅(qū)自動打開功能,能夠及時掛載動態(tài)加載的文件系統(tǒng)。免去我們手動掛載的麻煩。
創(chuàng)建/etc/auto.nas文件
在文件中添加一行
vmsnfs -rw,rsize=8192,wsize=8192,soft,intr 192.168.6.55:/vmsnfs
修改/etc/auto.master
添加一行
/nas /etc/auto.nas --timeout=0
注意:--timeout=0表明一旦掛載就不會自動被卸載(umount)。也可以指定一個別的正數(shù),比如600,那么如果600秒之內(nèi)沒有使用nfs就會自動被卸載。如果沒有--timeout參數(shù)部分,則默認為600秒(10分鐘),這個參數(shù)在/etc/sysconfig/autofs文件中可以用 TIMEOUT項指定。
將autofs服務(wù)設(shè)置為開機自啟動
先使用chkconfig --list autofs檢查一下autofs服務(wù)是否已經(jīng)設(shè)置為自啟動了。
[root@sunrise17 ~]# chkconfig --list autofs
autofs 0:off 1:off 2:off 3:on 4:on 5:on 6:off
如果你發(fā)現(xiàn)輸出中全部為off,使用chkconfig autofs on設(shè)置為開機自啟動。
[root@sunrise17 ~]# chkconfig autofs on
注:autofs實際上是使用automount命令來處理的。
創(chuàng)建一個符號鏈接/vmsnfs指向/nas/vmsnfs
因為通過上述autofs配置自動掛載的路徑為/nas/vmsnfs,而實際需要的是/vmsnfs,所以需要創(chuàng)建一個符號鏈接來達到這個目的。
首先確認一下是否已經(jīng)有/vmsnfs這樣的目錄或文件已經(jīng)存在。如果有,先把它改成別的名稱,否則創(chuàng)建的符號鏈接可能變成了/vmsnfs/vmsnfs了。
[root@sunrise17 /]# ln -s /nas/vmsnfs /vmsnfs
[root@sunrise17 /]# ls -l /vmsnfs
lrwxrwxrwx 1 root root 11 Nov 18 18:21 /vmsnfs -> /nas/vmsnfs
使用mount命令不跟任何參數(shù)就可以看到系統(tǒng)所有掛載點的情況。
[root@sunrise17 /]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@sunrise17 /]#
至此,在Linux下使用autofs來配置nfs客戶端的任務(wù)就完成了。
重新啟動機器之后再登錄,執(zhí)行mount命令,會發(fā)現(xiàn)/nas/vmsnfs并沒有自動mount上來。如下所示:
[root@sunrise17 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
再訪問一下/vmsnfs,也就是間接訪問/nas/vmsnfs就會發(fā)現(xiàn)mount上來了。也就是說,使用autofs來自動掛載nfs文件系統(tǒng)時,只有首次使用之后才會自動掛載上來。
[root@sunrise17 ~]# ls /vmsnfs
vms vmsnfs vox
[root@sunrise17 ~]# mount
/dev/mapper/VolGroup00-LogVol00 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/hdc1 on /boot type ext3 (rw)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.6.55:/vmsnfs on /nas/vmsnfs type nfs (rw,rsize=8192,wsize=8192,soft,intr,addr=192.168.6.55)
[root@sunrise17 ~]#
通過上面的配置之后,重啟系統(tǒng)之后,autofs會根據(jù)需要來自動掛載nfs共享目錄。如果--timeout參數(shù)配置為正數(shù),在不需要時會自動卸載,釋放掉不必要的資源,而通過手工方式來掛載達不到這個效果。
3.3 在Linux下使用NFS客戶端會碰到的問題
Q:使用touch創(chuàng)建文件時,怎么報“Permission denied”或“權(quán)限不夠”錯誤?
A:檢查NFS服務(wù)端的共享目錄,看屬主和組是否為nfsnobody。如果不是,更改之,如下所示:(在NFS服務(wù)端所在系統(tǒng)上操作)
chown -R nfsnobody /vmsnfs
chgrp -R nfsnobody /vmsnfs
或
chown -R nfsnobody:nfsnobody /vmsnfs
Q:怎么看共享目錄的磁盤空間占用情況?
A:Linux會把掛載的共享目錄當做一個文件系統(tǒng),可以使用df來查看磁盤空間的占用情況。
[root@sunrise17 ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
941082332 2767796 889739256 1% /
/dev/hdc1 101086 12166 83701 13% /boot
tmpfs 2069260 0 2069260 0% /dev/shm
192.168.6.55:/vmsnfs 54659136 46256872 5580944 90% /nas/vmsnfs
Q:在文件服務(wù)器重啟之后,客戶端已經(jīng)使用mount掛載的nfs共享目錄還能繼續(xù)正常訪問嗎?
A:有待試驗。
Q:在文件服務(wù)器重啟之后,客戶端已經(jīng)使用autofs掛載的nfs共享目錄還能繼續(xù)正常訪問嗎?
A:有待試驗。