NFS-UNIX 中的網路檔案系統(轉)

ba發表於2007-08-11
NFS-UNIX 中的網路檔案系統(轉)[@more@]NFS(Network File System)是由Sun建立的網路協議,主要供不同的UNIX主機之間共享檔案系統,由於存在一些安全隱患,Sun後來又發展出了NIS,NIS+,這些協議的使用在UNIX的世界裡面十分普遍,Sun還開發了PC-NFS,供使用者從PC上執行NFS協議,共享UNIX的資源。對於Linux來說,由於有Samba的存在,所以大多數人不很熟悉NFS,其實在多臺Linux主機之間共享檔案系統,NFS仍然不失為一種簡單易用的選擇。下面我們就以較短的篇幅,簡單地介紹一下NFS以及如何實現。
要把自己的檔案系統共享出去,首先保證自己的機器上啟動了NFS服務,可以用:
# ps –ef| grep nsfd
檢視一下nfsd是否已經執行,如果沒有,請啟動它,啟動和停止NFS如下:
# /etc/rc.d/init.d/nfs start
# /etc/rc.d/init.d/nfs start
也可以呼叫ntsysv命令,將nfs服務設定為自動執行。
然後,將你要共享出去的檔案系統,需要用exportfs命令,你也可以透過設定/etc/exports檔案,在系統啟動的時候,自動將資源共享出去。具體用法請檢視exportfs的手冊頁。
要配置NFS,就是要修改/etc/fstab(客戶端)和/etc/exports(伺服器端),exports檔案在伺服器端指定要與哪些客戶共享哪些目錄以及每個客戶的訪問許可權;fstab檔案在客戶端用來指定應該聯接哪些目錄以及把它們放在本地目錄的哪一個位置。
1. 伺服器端配置/etc/exports檔案
檔案的格式如下:
----------------------------------------------------------------------------------------------------------------
#要共享的目錄 主機名1(許可權) 主機名2(許可權) 主機名3(許可權)。。。。。。
/dir/exports host1(rw) host2(rw)
----------------------------------------------------------------------------------------------------------------
如果一行太長,用符號“”連線到下一行。關於許可權,可供選擇的是:
rw 可以讀和寫
ro 只讀
no_root_squash 承認並信任客戶記得root賬號
當設定完/etc/exports檔案後,執行下面的命令讓共享生效:
# exportfs -a
2. 要共享資源的主機執行mount
我們可以簡單地使用mount命令安裝NFS伺服器的檔案系統,在mount遠端檔案系統時,和mount本地的檔案系統時一樣的,唯一的不同是要在檔案系統的描述前面加上遠端檔案系統的主機名稱,如果該主機在/etc/hosts中出現了,那麼在命令中使用主機名字就可以,否則要使用IP地址。語法一般是:
# mount servername:/exported_dir /dir_to_mount –t nfs
例如,主機jw執行了NFS,將自己的/export目錄共享了,那麼客戶機lidf應該這樣: # mount jw:/export /home/inport –t nfs
客戶機在mount伺服器的資源時,可以傳遞一些命令選項,如:
# mount jw:/export /home/inport –o ro –t nfs
表示把jw主機的/export目錄掛在本地的/home/inport目錄下,只讀。其他選項如下:
rw 可以讀寫
bg 後臺安裝(避免因為安裝不上伺服器資源而導致系統停頓)
intr 出現問題是,可以中斷
soft 允許經過retrans次嘗試後,停止安裝,返回失敗資訊
retrans 為soft指定嘗試次數
當要解除安裝伺服器的檔案系統時,和本地一樣,使用umount命令。
# umount /home/inport
更具體的引數使用請檢視mount的手冊頁和NFS-HOWTO。
3.利用/etc/fstab檔案,在啟動時自動掛載遠端主機的檔案系統
/etc/fstab檔案包含了以哪種方式掛載哪種檔案系統的資訊。對於NFS的mount,它包括了伺服器名字、釋放(export)的伺服器目錄、本地的掛載點(mount point)和控制掛載的一些選項。
下面是一個/etc/fstab檔案的例子:
#device mount_point filesystem_type option fsck
/dev/hda5 / ext2 defaults 1 1
/dev/hda6 /usr ext2 defaults 1 2
/dev/hda9 /usr/local ext2 defaults 1 2
/dev/hda8 swap swap defaults 0 0
/dev/fd0 /mnt/floppy ext2 noauto 0 0
/dev/cdrom /mnt/cdrom iso9660 noauto,ro 0 0
none /proc proc defaults 0 0
none /dev/pts devpts mode=0622 0 0
jw:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr
檔案系統了各種檔案系統的資訊,每一個檔案系統單獨一行,每行的域的資訊以空格或者tab分開。在fstab檔案中,行的前後順序是很重要的,因為這可能對fsck、mount和umount等命令有影響。
關於這6個域的解釋,請檢視介紹fstab的部分。
我們注意到,按照最後一行,系統在啟動的時候會嘗試掛載主機jw的/usr/local/pub到本地的/pub,檔案系統型別是nfs,最後兩個供fsck使用的引數不填,表示不進行檢查。
注意NFS伺服器和客戶機是相對的,一個提供共享資源的NFS伺服器,也可以共享其他NFS伺服器的資源。
要在系統啟動的時候就mount其他NFS伺服器的資源,我們可以修改/etc/fstab檔案:
4. 配置檔案示例
一個完整的/etc/exports檔案
----------------------------------------------------------------------------------------------------------------------
QUOTE:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-947545/,如需轉載,請註明出處,否則將追究法律責任。

NFS-UNIX 中的網路檔案系統(轉)
請登入後發表評論 登入
全部評論

相關文章