設定NFS

kidking2010發表於2011-09-13

#################################################################

設定NFS:首先在/下面建一個共享目錄如建立一個share01在根下 /share01 修改其配置檔案如下: vi /etc/exports

/share01 *(rw,no_root_squash,sync)

重啟NFS服務 service nfs restart

#################################################################

 http://hi.baidu.com/52xjm/blog/item/fa5372360de134c6a3cc2ba0.html

經過我的的實踐,在Centos6下必須先啟動rpcbind,而不是portmap:

service   rpcbind  start
  再安裝啟動NFS成功!
 
1、是否安裝了NFS和portmap RPM包
[root@ha01 /]# rpm -qa | grep nfs
nfs-utils-1.0.9-44.el5
nfs-utils-lib-1.0.8-7.6.el5

[root@ha01 /]# rpm -qa | grep portmap
portmap-4.0-65.2.2.1

2、若沒有安裝則需要安裝如下的RPM包
[root@ha01 /]# find /media/ -name nfs*
/media/CentOS_5.5_Final/CentOS/nfs4-acl-tools-0.3.3-1.el5.i386.rpm
/media/CentOS_5.5_Final/CentOS/nfs-utils-lib-1.0.8-7.6.el5.i386.rpm
/media/CentOS_5.5_Final/CentOS/nfs-utils-1.0.9-44.el5.i386.rpm
/media/CentOS_5.5_Final/CentOS/nfs-utils-lib-devel-1.0.8-7.6.el5.i386.rpm

[root@ha01 /]# find /media/ -name portmap*
/media/CentOS_5.5_Final/CentOS/portmap-4.0-65.2.2.1.i386.rpm

3、NFS配置
NFS Server:192.168.1.100
NFS Client:192.168.1.200

NFS Server:
共享目錄:/nfspool
NFS 執行使用者(RPM包自動生成):nfsnobody

[root@ha01 /]# mkdir /nfspool
[root@ha01 /]# chown nfsnobody:nfsnobody /nfspool
[root@ha01 /]# id nfsnobody
uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@ha01 /]# chown -R nfsnobody:nfsnobody /nfspool/.
[root@ha01 /]# vi /etc/exports
/nfspool 192.168.1.200(rw,async,anonuid=65534,anongid=65534)

Server端啟動服務:
[root@ha01 /]# service portmap start
啟動 portmap:                                             [確定]
[root@ha01 /]# service nfslock start
[root@ha01 /]# service nfs start
啟動 NFS 服務:                                            [確定]
關掉 NFS 配額:                                            [確定]
啟動 NFS 守護程式:                                      [確定]
啟動 NFS mountd:                                      [確定]

NFS Client:
遠端NFS目錄在客戶端的掛載點:/nfs

[root@ha02 /]# mkdir /nfs
[root@ha02 /]# service portmap start
啟動 portmap:                                             [確定]

[root@ha02 /]# chown nfsnobody:nfsnobody /nfs
[root@ha02 /]# chmod 777 /nfs

[root@ha02 /]# mount -t nfs -o soft,intr,bg,timeo=50 192.168.1.100:/nfspool /nfs

測試:
[root@ha02 /]# ls -all /nfs
總計 20
drwxr-xr-x  2 nfsnobody nfsnobody 4096 04-02 13:53 .
drwxr-xr-x 24 root      root      4096 04-02 13:49 ..
-rw-r--r--  1 root      root         0 04-02 13:53 test.t    

Client啟動後的自動mount:
[root@ha02 /]# vi /etc/fstab
192.168.1.100:/nfspool /nfs nfs soft,intr,bg,timeo=50 0 0

4、服務起停順序
啟動:
service portmap start
service nfslock  start
service nfs  start
停止:
service nfslock stop
service nfs stop
service portmap stop

5、安全性
portmap PORT: 111
NFS PORT: 2049

防止使用IP欺騙和RPC重定向技術透過lo迴環進行攻擊以及限定授權主機:
iptables -A INPUT -p udp -d 127.0.0.1 --dport 111 -j DROP
iptables -A INPUT -p udp -d 127.0.0.1 --dport 2049 -j DROP
iptables -A INPUT -p udp -s 192.168.100.2 --dport 111 -j ACCEPT
iptables -A INPUT -p udp -s 192.168.100.2 --dport 2049 -j ACCEPT

說明:

1、exports引數說明
rw: 讀寫模式;
async: 非同步磁碟讀寫;
anonu(g)id: 指定NFS在進行操作時所使用的匿名使用者uid/gid

2、NFS 管理命令
showmount -e 在NFS Server上執行此命令顯示NFS Server上所有的共享卷;
showmount -e 192.168.1.100在NFS Client上執行此命令顯示NFS Server上所有共享卷;
export -av 根據/etc/exports匯出所有卷;
export -rv 重新匯出所有卷,增加/etc/exports中的新專案、刪除不存在的專案、更新改變的專案;
 
 
Centos5.3下安裝配置NFS  

使用NFS服務,至少需要啟動以下系統守護程式。
chkconfig nfs on
chkconfig portmap  on

一:伺服器端的設定
1)修改配置檔案
vi /etc/exports
/home  192.168.1.2(rw,async) *(ro)               #注意紅色部分沒有空格
/home    192.168.1.*(rw,sync,no_root_squash,no_subtree_check)
rw:可讀寫的許可權;
ro:只讀的許可權;
no_root_squash:登入到NFS主機的使用者是ROOT使用者,他就擁有ROOT的許可權,此引數很不安全,建議不要使用。
root_squash:在登入 NFS 主使用分享之目的使用者如果是 root
all_squash:不管登陸NFS主機的使用者是什麼都會被重新設定為nobody。
anonuid:將登入NFS主機的使用者都設定成指定的user id,此ID必須存在於/etc/passwd中。
anongid:同 anonuid ,但是成 group ID 就是
sync:資料同步寫入儲存器中。
async:資料會先暫時存放在記憶體中,不會直接寫入硬碟。
insecure 允許從這臺機器過來的非授權訪問。

2)啟動服務
/etc/rc.d/init.d/portmap start
/etc/rc.d/init.d/nfs start
3)exportfs命令
啟動了NFS之後又修改了/etc/exports,這個時候我們就可以用exportfs命令來使改動立刻生效,該命令格式如下:
exportfs [-aruv]
-a :全部mount或者unmount /etc/exports中的內容
-r :重新mount /etc/exports中分享出來的目錄
-u :umount 目錄
-v :在 export 的時候,將詳細的資訊輸出到螢幕上。
具體例子:
exportfs -rv <==全部重新export一次!
exportfs -au <==全部都解除安裝了。

 

二:客戶端的操作:
1、showmout命令對於NFS的操作和查錯有很大的幫助
showmout
-a :這個引數是一般在NFS SERVER上使用,是用來顯示已經mount上本機nfs目錄的cline機器。
-e :顯示指定的NFS SERVER上export出來的目錄。
例如:
showmount -e 192.168.0.30
2、mount nfs目錄的方法:
mount -t nfs hostname(orIP):/directory /mount/point
具體例子:
mount -t nfs 192.168.0.1:/tmp /mnt/nfs

3、與NFS有關的一些命令介紹
nfsstat:
檢視NFS的執行狀態,對於調整NFS的執行有很大幫助
rpcinfo:
檢視rpc執行資訊,可以用於檢測rpc執行情況的工具。

完成!

                                                 一個NFS例項

目標:1。實現手動掛載

             2。實現自動掛載,解除安裝

方法:NFS伺服器依靠的幾個程式包:portmap,nfs,依次安裝,啟動。

[root@localhost ~]# service portmap status

portmap (pid 4213) is running...

[root@localhost ~]#

[root@localhost ~]# service nfs status

rpc.mountd (pid 4559) is running...

nfsd (pid 4556 4555 4554 4553 4552 4551 4550 4549) is running...

[root@localhost ~]#

NFS的伺服器配置/ect/explores,系統預設不一定有,沒有就自己新建一個

/var/ftp/pub/   192.168.1.0/24(rw)

很簡單:共享的目錄  共享給誰(可以是IP,主機名,網段,域名) 讀寫許可權

 

重起portmap和nfsd服務,注意先後順序,先portmap。

 

現在我檢查一下共享是否已經成功:

[root@localhost ~]# showmount -e 192.168.1.200

Export list for 192.168.1.200:

/var/ftp/pub 192.168.1.0/24

說明我們伺服器端的共享是成功的!

 

現在配置客戶端

手動載入比較簡單

首先,參看一下共享

[root@RHEL mnt]# showmount -e 192.168.1.200

Export list for 192.168.1.200:

/var/ftp/pub 192.168.1.0/24

然後使用命令掛載

[root@RHEL mnt]# mount -t nfs 192.168.1.200:/var/ftp/pub /temp

[root@RHEL mnt]# cd /temp

[root@RHEL temp]# ls -l /temp

total 340

drwxr-xr-x 2 root      root        4096 Mar 31  2009 1

drwxr-xr-x 2 nfsnobody nfsnobody   4096 Mar 31  2009 2

下面配置自動掛載,解除安裝。

安裝autofs服務

[root@RHEL temp]# service autofs status

automount (pid 5655) is running...

配置/etc/auto.master

新增一條記錄

/mnt    /etc/auto.mnt --timeout=10

掛載點   這個掛載點的具體配置  多少時間沒有訪問將自動短開連線(秒)

配置/etc/auto.mnt

nfs     -fstype=nfs,rw  192.168.1.200:/var/ftp/pub

掛載點下的目錄名 掛載的檔案型別,讀取許可權 共享的路徑

 

重新啟動autofs服務

 [root@RHEL temp]# service autofs restart

Stopping automount:                                        [  OK  ]

Starting automount:                                        [  OK  ]

驗證:

我們掛載到/mnt下的,先看一下/mnt下有些什麼

[root@RHEL /]# ls /mnt

[root@RHEL /]#

什麼都沒有

 

我們再訪問/mnt/nfs

[root@RHEL /]# ls /mnt/nfs

1               EULA        isolinux                 RPM-GPG-KEY-redhat-release

2               eula.en_US  README-en                Server

Cluster         GPL         RELEASE-NOTES-en         TRANS.TBL

ClusterStorage  images      RPM-GPG-KEY-redhat-beta  VT

這些正是伺服器上的共享檔案,說明自動掛載已經成功。同時,我們也可以得出結論,掛載點下的檔案(也就是/etc/auto.mnt第一列)是自動建立的,不需要我們手動建立。

再看解除安裝,其實很簡單,剛才在配置/etc/auto.master中已經設定了timeout=10秒,所以我們現在在回過去看/mnt下還有沒有nfs目錄

[root@RHEL /]# ls /mnt

[root@RHEL /]#

已經沒有了,解除安裝成功! 

其實再往下就可以做異地定時自動備份,只要at和cp命令搭配使用。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23141985/viewspace-707224/,如需轉載,請註明出處,否則將追究法律責任。

相關文章