Linux下,All deviceis file,全部的設備都是文件。當咱們須要把某些文件夾就或者文件共享給其餘用戶,就能夠使用網絡文件系統。html
本文介紹Redhat Linux下的NFS配置。數據庫
在使用NFS以前,確保安裝如下rpm包:nfs-utils-xxx.i686.rpm、nfs4-acl-tools-xxx.i686.rpm、nfs-utils-xxx.i686.rpm(xxx表示版本)。能夠使用rpm-qa進行查詢:服務器
[root@localhost nfs]# rpm -qa|grep nfs nfs-utils-lib-1.1.5-1.el6.i686 nfs4-acl-tools-0.3.3-5.el6.i686 nfs-utils-1.2.2-7.el6.i686
若是查詢結果爲空,則須要手動安裝,能夠在安裝Linux系統的ISO包裏查找,先掛載:mount -o loop /home/Wentasy/software/RHEL_6.2.iso /mnt,而後find,把nfs開頭的3個rpm依次安裝。微信
[root@larrywen mnt]# find . -name "*nfs*" ./Packages/nfs-utils-1.2.3-15.el6.i686.rpm ./Packages/nfs-utils-lib-1.1.5-4.el6.i686.rpm ./Packages/nfs4-acl-tools-0.3.3-5.el6.i686.rpm ./Packages/sblim-cmpi-nfsv3-1.1.1-1.el6.i686.rpm ./Packages/sblim-cmpi-nfsv4-1.1.0-1.el6.i686.rpm
如今對NFS進行配置,配置文件爲/etc/exports,配置文件格式以下:網絡
<輸出目錄> [客戶端1 選項(訪問權限,用戶映射,其餘)] [客戶端2 選項(訪問權限,用戶映射,其餘)]oracle
NFS主要有3類選項:app
訪問權限選項微信公衆平臺
設置輸出目錄只讀:roasync
設置輸出目錄讀寫:rwtcp
用戶映射選項
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服務器也不檢查其父目錄的權限,這樣能夠提升效率;
個人配置文件以下:
/home/nfs */24(rw,sync)
* :容許全部的網段訪問
rw :讀寫權限
sync:資料同步寫入內在和硬盤
查看/home/nfs權限及在此目錄建立文件,在file1裏輸入內容「hello」
[root@localhost ~]# vi /etc/exports [root@localhost ~]# ll /home/nfs -d drwxr-xr-x. 2 root root 4096 Jul 21 09:58 /home/nfs [root@localhost ~]# ll /home/nfs -d drwxr-xr-x. 2 root root 4096 Jul 21 09:58 /home/nfs [root@localhost ~]# cd /home/nfs [root@localhost nfs]# touch file1 [root@localhost nfs]# echo "hello" file1 hello file1 [root@localhost nfs]# echo "hello" > file1 [root@localhost nfs]# cat file1 hello [root@localhost nfs]# cat /etc/exports /home/nfs *(rw,sync) [Wentasy@localhost test]$ ll /home/nfs -d drwxrwxrwx. 2 root root 4096 Jul 21 10:07 /home/nfs
如今啓動NFS服務。
[root@localhost ~]# service nfs start Starting NFS services: [ OK ] Starting NFS quotas: [ OK ] Starting NFS daemon: [ OK ] Starting NFS mountd: [ OK ]
另外一個客戶端以其餘用戶登陸,而後掛載共享的文件夾到/home/Wentasy/test,編輯file1,加入「world」。
[Wentasy@localhost ~]$ sudo mount -t nfs 169.254.140.100:/home/nfs /home/Wentasy/test/ [Wentasy@localhost ~]$ cd /home/Wentasy/test/ [Wentasy@localhost test]$ ll total 4 -rw-r--r--. 1 root root 6 Jul 21 10:08 file1 [Wentasy@localhost test]$ cat file1 hello world
執行mount命令,能夠看到169.254.140.100:/home/nfs掛載到
/home/Wentasy/test [Wentasy@localhost test]$ mount /dev/mapper/VolGroup-lv_root on / type ext4 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0") /dev/sda1 on /boot type ext4 (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) nfsd on /proc/fs/nfsd type nfsd (rw) 169.254.140.100:/home/nfs on /home/Wentasy/test type nfs (rw,vers=4,addr=169.254.140.100,clientaddr=169.254.140.100)
切換到root用戶或者先前的客戶端,查看file1文件,能夠看到Wentasy用戶修改的文件內容已經同步了。
[root@localhost nfs]# cat file1 hello world
更精彩的文章:http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html
個人郵箱:wgbno27@163.com 新浪微博:@Wentasy27 微信公衆平臺:JustOracle(微信號:justoracle) 數據庫技術交流羣:336882565(加羣時驗證 From CSDN XXX) Oracle交流討論組:https://groups.google.com/d/forum/justoracle By Larry Wen
@Wentasy 博文僅供參考,歡迎你們來訪。若有錯誤之處,但願批評指正。原創博文如需轉載請註明出處,謝謝 :) [CSDN博客] |