歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> NFS-UNIX 中的網絡文件系統

NFS-UNIX 中的網絡文件系統

日期:2017/2/28 11:28:36   编辑:關於Unix


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:#
# /etc/exports for jw
#
# Share the following directory
/export/home lidf(rw) syy(rw) caibb(rw) zhougj(ro) eagle(ro)
#
# Share local software
#
/export/usr/local lidf(rw,no_root_squash)
syy(rw,no_root_squash)
caibb(rw,no_root_squash)
zhougj(ro)
eagle(ro)

----------------------------------------------------------------------------------------------------------------------
一個完整的/etc/fstab文件
----------------------------------------------------------------------------------------------------------------------
QUOTE:#
# /etc/fstab for lidf
#
/dev/hda1 / ext2 rw 1 1
/dev/hda2 swap swap
/dev/hda3 /usr ext2 rw 0 0
/dev/hda4 /var ext2 rw 0 0
jw:/export/home /home nfs rw,bg,intr,soft 0 0
jw:/export/usr/local /usr/local nfs rw,bg,intr,soft 0 0

-------------------------------------------------------------
Copyright © Linux教程網 All Rights Reserved