NFS服務簡介
NFS是Network FileSystem的縮寫,即網絡文件系統。NFS是由Sun開發並發展起來的一項用於在不同機器,不同操作系統之間通過網絡互相分享各自的文件。NFS server也可以看作是一個FILE SERVER,用於在UNIX類系統之間共享文件,可以輕鬆的掛載(mount)到一個目錄上,操作起來就像本地文件一樣的方便。
服務器端配置
在Redhat Linux下NFS是默認安裝的
[root@linux-a ~]# rpm -qa | grep nfs
nfs-utils-1.0.9-16.el5
nfs-utils-lib-1.0.8-7.2
NFS配置文件設置
NFS服務的配置文件是etc/exports
exports文件內容格式:
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其他)] [客戶端2 選項(訪問權限,用戶映射,其他)]
1.輸出目錄:
輸出目錄是指NFS系統中需要共享給客戶機使用的目錄;
2.客戶端:
客戶端是指網絡中可以訪問這個NFS輸出目錄的計算機
客戶端常用的指定方式
·指定ip地址的主機 192.168.0.200
·指定子網中的所有主機192.168.0.0/24
·指定域名的主機a.liusuping.com
·指定域中的所有主機*.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@linux-a ~]#
exportfs
/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 <world>
啓動或停止NFS服務
[root@linux-a ~]# sevice nfs start|stop|restart
[root@linux-a ~]# chkconfig --level 35 nfs on //設置NFS自動啓動方式;
客戶端配置
Linux客戶端可以直接通過mount命令掛載NFS文件
[root@linux-a ~]# mkdir /mnt/nsf1
[root@linux-a ~]# mount -t nfs192.168.0.231:/nfs/frank /mnt/nfs1
[root@linux-a ~]# mount | grep nfs
[root@linux-a ~]# umount /mnt/nfs1
通過修改/etc/fstab文件可以實現開機自動掛載nfs目錄
[root@linux-b nfs1]# vim /etc/fstab
/dev/VolGroup00/LogVol00/ ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01swap swap defaults 0 0
192.168.0.231:/nfs/frank /mnt/nfs1 nfs defaults 0 0