NFS服務簡介
NFS是Network File System的縮寫,即網絡檔案系統。NFS是由Sun開發并發展起來的一項用于在不同機器,不同作業系統之間通過網絡互相分享各自的檔案。NFS server也可以看作是一個FILE SERVER,用于在UNIX類系統之間共享檔案,可以輕松的挂載(mount)到一個目錄上,操作起來就像本地檔案一樣的友善。
伺服器端配置
在Redhat Linux下NFS是預設安裝的
[root@localhost ~]# rpm -qa | grep nfs
nfs-utils-1.0.9-16.el5
nfs-utils-lib-1.0.8-7.2
如沒有安裝的話,一句話搞定
[root@localhost ~]#yum install nfs-utils nfs4-acl-tools portmap
NFS配置檔案設定
NFS服務的配置檔案是/etc/exports
exports檔案内容格式:
[用戶端1 選項(通路權限,使用者映射,其他)]
[用戶端2 選項(通路權限,使用者映射,其他)]
1.輸出目錄:
輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
2.用戶端:
用戶端是指網絡中可以通路這個NFS輸出目錄的計算機
用戶端常用的指定方式
- 指定ip位址的主機 192.168.0.200
- 指定子網中的所有主機 192.168.0.0/24
- 指定域中的所有主機 *.liusuping.com
- 所有主機 *
3.選項:
選項用來設定輸出目錄的通路權限、使用者映射等。NFS主要有3類選項:
通路權限選項
- 設定輸出目錄隻讀 ro
- 設定輸出目錄讀寫 rw
使用者映射選項
- all_squash 将遠端通路的所有普通使用者及所屬組都映射為匿名使用者或使用者組(nfsnobody);
- no_all_squash 與all_squash取反(預設設定);
- root_squash 将root使用者及所屬組都映射為匿名使用者或使用者組(預設設定);
- no_root_squash 與rootsquash取反;
- anonuid=xxx 将遠端通路的所有使用者都映射為匿名使用者,并指定該使用者為本地使用者(UID=xxx);
- anongid=xxx 将遠端通路的所有使用者組都映射為匿名用 戶組賬戶,并指定該匿名使用者組賬戶為本地使用者組賬戶(GID=xxx);
其它選項
- secure 限制用戶端隻能從小于1024的tcp/ip端口連接配接nfs伺服器(預設設定);
- insecure 允許用戶端從大于1024的tcp/ip端口連接配接伺服器;
- sync 将資料同步寫入記憶體緩沖區與磁盤中,效率低,但可以保證資料的一緻性;
- async 将資料先儲存在記憶體緩沖區中,必要時才寫入磁盤;
- wdelay 檢查是否有相關的寫操作,如果有則将這些寫操作 一起執行,這樣可以提高效率(預設設定);
- no_wdelay 若有寫操作則立即執行,應與sync配合使用;
- subtree 若輸出目錄是一個子目錄,則nfs伺服器将檢查其父目錄的權限(預設設定);
- no_subtree 即使輸出目錄是一個子目錄,nfs伺服器也不檢查其父目錄的權限,這樣可以提高效率;
NFS伺服器配置執行個體
/nfs/public 192.168.0.0/24(rw,async) *(ro)
/nfs/frank 192.168.0.232(rw,sync)
/nfs/root *.liusuping.com(ro,no_root_squash)
/nfs/users *.liusuping.com(rw,insecure,all_squash,sync,no_wdelay)
/mnt/cdrom 192.168.0.*(ro)
注意:除了在配置檔案中定義目錄的讀寫權限外,還需要相應的目錄具有相應的讀寫權限。
檢視NFS共享目錄資訊
[root@localhost ~]# showmount -e
/nfs/public 192.168.0.0/24
/nfs/frank 192.168.0.232
/nfs/users *.liusuping.com
/mnt/cdrom 192.168.0.*
/nfs/root *.liusuping.com
/nfs/public
啟動或停止NFS服務
[root@localhost ~]# sevice nfs start|stop|restart
[root@localhost ~]# chkconfig --level 35 nfs on //設定NFS自動啟動方式
如果我們在啟動了NFS之後又修改了/etc/exports,是不是還要重新啟動nfs呢?這個時候我們就可以用exportfs指令來使改動立刻生效,該指令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的内容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v 在export的時候,将詳細的資訊輸出到螢幕上
具體例子:
[root@localhost ~]# exportfs -arv