文檔名稱:Linux服務配置文檔—NFS
伺服器配置:192.168.0.8 redhat- 2.6.9-5.EL 192.168.0.6 redhat-2.6.18-8.el5
文檔地址:http://blog.chinaunix.net/u1/40306/
NFS為network file system 的簡稱,最早由sun公司開發,一般NFS廣泛應用在叢集伺服器上,他的最大特點是可以通過網路讓不同的機器,不同的作業系統可以彼此的共用檔案,所以它可以看作一個簡單的檔案伺服器。NFS其實可以被視為一個RPC服務程式,在啟動RPC程式前我們先要做好連接埠的映射工作這就是portmap,portmap的意思是當Client要串連伺服器時必須知道伺服器的一個空閑連接埠這時Client會向伺服器的portmap請求一個連接埠然,然後Server告訴Client這連接埠後才可以建立串連,所以在啟動NFS前要先啟動portmap
[wds@localhost ~]# rpm –qa |grep nfs && rpm –qa | grep portmap #尋找這兩個是否安裝
[wds@localhost ~]# vi /etc/exports # 這檔案是NFS的主要設定檔
[wds@localhost ~]# /usr/sbin/exportfs #這個檔案是nfs共用資源命令
[wds@localhost ~]# /usr/sbin/showmount #可以查看遠程伺服器的共用目錄
[wds@localhost ~]# /var/lib/nfs/xtab #nfs 的記錄檔
[wds@localhost ~]# vi /etc/exports
[你想要的共用的目錄] + ip 地址(參數一,參數二) [主機名稱二](參數三,參數四)
參數列表
rw: 可以寫入許可權
ro: 唯讀許可權
no_root_squash: 登陸NFS主機共用目錄的如果是root使用者那麼那的許可權也為root但是這樣並不安全
root_squash: 登陸的使用者如果為root它的許可權將變成nobody
all_squash: 不論登陸的使用者是什麼使用者都以匿名使用者的許可權
sync: 資料同步寫入硬碟和記憶體中
async: 資料先暫時存放在記憶體中,而不寫入硬碟
anounid: 這個可以自己設定uid,但是必須與/etc/passwd目錄中使用者uid一樣
anongid: 同anonuid,但是變的是group id
伺服器端配置
[wds@localhost ~]# service portmap start #首先開啟portmap
[wds@localhost ~]# service nfs start # 在開啟 nfs
[wds@localhost ~]#i iptables –F #清空防火牆命令
[wds@localhost ~]#
比如說我要共用/var/www/html 目錄但是只是讓和我一個網段的機器訪問192.168.0.0/24這個網段讀或寫,其他的就只能讀,然後在發布一個私人目錄/home/wds/只開放給192.168.0.8
這個IP
[wds@localhost ~]# vi /etc/exports
/var/www/html 192.168.0.0/24 (rw) *(ro)
/home/wds 192.168.0.8(rw)
現在想要*.chinaunix.com網段的機器登陸我的NFS,並且訪問我的/home/wds/ 但是它們儲存時我希望它們的uid和gid都變成40這個使用者身份
[wds@localhost ~]# vi /etc/exports
/var/www/html 192.168.0.0/24 (rw) *(ro)
/home/wds 192.168.0.8(rw)
/home/wds *.chinaunix.com(rw,all)squash,anounid=40,anongid=40)
如果我們修改/etc/exports這個檔案後,是否要從新啟動nfs呢?答案是不不需要,只要使用exportfs來從新掃描一次/etc/exports檔案,並且從新設定檔案載入即可
文法為:
[wds@localhost ~]# exportfs [-aruv]
參數說明:
-a: 全部掛載(或者卸載)/etc/exports 檔案的設定
-r: 從新掛載/etc/exports 裡設定,此外,同步更新/etc/exports 及/var/lib/nfs/xtab的內容
-u: 卸載某一目錄
-v: 在匯出時,將共用目錄顯示在螢幕上
例如:
[wds@localhost ~]# exportfs –rv 全部從新匯出一次
[wds@localhost ~]# exportfs –au 全部卸載掉
Showmount 的是顯示是否有掛載
文法為:
[wds@localhost ~]# showmount [-ae] hostname
參數說明:
-a: 在螢幕上顯示與當前的client串連後使用目錄的狀態
-e: 顯示Hostname這台機器的/etc/exports中的共用資訊
[wds@localhost log]# showmount -e localhost
Export list for localhost:
/var/www/html (everyone)
Rpcinfo [-p]hostname[or ip]
-p 顯示連接埠與程式的資訊
[wds@localhost log]# rpcinfo -p localhost
program vers proto port
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 1024 status
100024 1 tcp 1024 status
100011 1 udp 837 rquotad
100011 2 udp 837 rquotad
100011 1 tcp 840 rquotad
100011 2 tcp 840 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100021 1 udp 1026 nlockmgr
100021 3 udp 1026 nlockmgr
100021 4 udp 1026 nlockmgr
100021 1 tcp 1026 nlockmgr
100021 3 tcp 1026 nlockmgr
100021 4 tcp 1026 nlockmgr
100005 1 udp 858 mountd
100005 1 tcp 861 mountd
100005 2 udp 858 mountd
100005 2 tcp 861 mountd
100005 3 udp 858 mountd
100005 3 tcp 861 mountd
Client端的設定
Server端設定完畢,接下來就是讓client端串連上server!串連server步驟如下:
1. 掃描可以使用的server目錄:
2. 在client端建立裝載點
3. 使用mount 命令遠程掛載遠程共用目錄
4. 解決可能發生的問題(被防火牆過濾掉了)
Showmount是顯示遠程主機共用資源
[wds@localhost ~]# showmount -e 192.168.0.8
Export list for 192.168.0.8:
/var/www/html (everyone)
/home/wds *.chinaunix.com,192.168.0.6
[wds@localhost ~]# mount -t nfs 192.168.0.8:/var/www/html /mnt 把遠端/var/www/html 掛載到本地
[wds@localhost ~]# umount /mnt 卸載遠程目錄
如果你想要開機啟動時自動載入NFS伺服器匯出目錄,我們在NFS端/etc/fstab檔案中加入以下一行
192.168.0.8:/var/www/html /mnt nfs rsize=8192,wsize=8192,timeo=14,intr