歡迎使用訪問摩杰斯公司部落格
發(fā)布:admin | 分類:Linux | 引用:0 | 瀏覽:
26 Oct 2014 本節(jié)是使用centos 6.5的配置過程:
設備:兩臺 centos6 OS 安裝的時候選擇的是"Basic Server"軟件配置包。
系統(tǒng)是CentOS6.5,假設NFS Server IP為192.168.1.2,NFS Clinet IP為192.168.0.100。
1.服務端安裝NFS:
yum install nfs-utils protmap rpcbind
nfs-utils包提供了NFS服務器程序和相應的管理工具。
protmap是一個管理RPC連接的程序,portmap服務對NFS是必須的,因為它是NFS的動態(tài)端口分配守護進程,如果portmap不啟動,NFS就是啟動不了的。
2.配置NFS服務端,編輯/etc/exports文件:
vim /etc/exports
設置共享文件目錄:
/home/nfsdir *(rw)
/home/share 192.168.0.100(rw,sync,no_root_squash) *(ro)
其中:
/home/nfsdir *(rw)
表示共享/home/nfsdir目錄,所有用戶都有讀寫權限。
/home/share 192.168.0.100(rw,sync,no_root_squash) *(ro)
表示共享/home/share目錄,192.168.0.100有讀寫權限并且root用戶有完全管理訪問權限,其他機器僅有只讀權限。
配置文件的格式為:
[共享的目錄] [主機名或IP(參數(shù),參數(shù))]
其中參數(shù)是可選的,當不指定參數(shù)時,nfs將使用默認選項。默認的共享選項是sync,ro,root_squash,no_delay。
當主機名或IP地址為空時,則代表共享給任意客戶機提供服務。
當將同一目錄共享給多個客戶機,但對每個客戶機提供的權限不同時,可以這樣:
[共享的目錄] [主機名1或IP1(參數(shù)1,參數(shù)2)] [主機名2或IP2(參數(shù)3,參數(shù)4)]
下面是一些NFS共享的常用參數(shù):
ro 只讀訪問
rw 讀寫訪問
sync 同步寫入資料到內存與硬盤中
async 資料會先暫存于內存中,而非直接寫入硬盤
secure NFS通過1024以下的安全TCP/IP端口發(fā)送
insecure NFS通過1024以上的端口發(fā)送
wdelay 如果多個用戶要寫入NFS目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入NFS目錄,則立即寫入,當使用async時,無需此設置。
hide 在NFS共享目錄中不共享其子目錄
no_hide 共享NFS目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制NFS檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UID和GID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UID和GID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squash root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定NFS服務器/etc/passwd文件中匿名用戶的GID
當exports文件修改后,使用以下命令,不需要重啟NFS服務,就可以重新掛載/etc/exports里面的設定:
exportfs -arv
3.配置iptables:
因為NFS會為以上三個服務分配臨時端口,所以很難在防火墻上控制要開放哪些端口。所以要將幾個端口固定住。
vim /etc/services
在文件最后添加:
mountd 1011/tcp #rpc.mountd
mountd 1011/udp #rpc.mountd
在NFS-Server的防火墻里開放相關端口
要開放1011/tcp, 1011/udp, 111/tcp, 111/udp, 2049/tcp, 2049/udp這六個端口。如果是通過圖形界面配置,可以手工添加前四個端口,而后面2049這兩個端口,可以通過勾選上面的nfs4來開放。
4.先啟動portmap服務:
service portmap restart
5.再啟動NFS服務:
service nfs restart
如果之前沒有先啟動portmap服務,那么當啟動NFS服務時會停在
Starting NFS daemon:
很長時間。
6.設置nfs、portmap開機自啟動:
chkconfig –level 345 nfs on
chkconfig –level 345 portmap on
查看服務運行的相關端口情況
rpcinfo -p 192.168.1.2
程序 版本 協(xié)議 端口
100000 2 tcp 111 portmapper
100000 2 udp 111 portmapper
100011 1 udp 875 rquotad
100011 2 udp 875 rquotad
100011 1 tcp 875 rquotad
100011 2 tcp 875 rquotad
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100021 1 udp 32769 nlockmgr
100021 3 udp 32769 nlockmgr
100021 4 udp 32769 nlockmgr
100021 1 tcp 32803 nlockmgr
100021 3 tcp 32803 nlockmgr
100021 4 tcp 32803 nlockmgr
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100005 1 udp 1011 mountd
100005 1 tcp 1011 mountd
100005 2 udp 1011 mountd
100005 2 tcp 1011 mountd
100005 3 udp 1011 mountd
100005 3 tcp 1011 mountd
如果你只需要配置一個簡單的nfs服務器的話,那只需要開放3個守護進程端口就行了:
111,portmap啟動的端口,用來提供nfs端口
2049,NFS啟動的端口,用來管理Client登入主機的權限
1011,剛才配置的mountd端口,這個端口主要用來管理NFS文件系統(tǒng)權限的
7.客戶端也需要安裝nfs-utils、portmap軟件包,并啟動portmap服務和netfs服務:
yum install nfs-utils portmap
service portmap restart
service netfs restart
chkconfig –level 345 on
8.NFS服務端啟動成功后,客戶端可以利用showmount命令測試是否能連上服務端:
命令格式:showmount -e [hostname|IP],showmount命令需要安裝了nfs-utils軟件包才有。
showmount -e 192.168.1.2
顯示如下:
/home/nfsdir *
/home/share (everyone)
9.客戶端建立掛載的文件夾:
cd /mnt
mkdir nfs1
mkdir nfs2
10.客戶端使用mount命令掛載NFS共享文件:
mount -t nfs 192.168.1.2:/home/nfsdir /mnt/nfs1
mount -t nfs 192.168.1.2:/home/share /mnt/nfs2
命令格式:mount – t nfs nfs服務器地址:目錄共享 本地掛載目錄點
11.客戶端可使用df命令,mount命令查看掛載情況:
mount
192.168.1.2:/home/share on /mnt/nfs2 type nfs (rw,addr=192.168.1.2)
192.168.1.2:/home/nfsdir on /mnt/nfs1 type nfs (rw,addr=192.168.1.2)
或者
df -h
12.客戶端卸載NFS文件命令:
umount /mnt/nfs1
umount /mnt/nfs2
13.客戶端可以設置系統(tǒng)啟動時自動掛載NFS文件:
需要將NFS的共享目錄掛載信息寫入/etc/fstab/文件,以實現(xiàn)對NFS共享目錄的自動掛載。
編輯/etc/fstab文件:
vim /etc/fstab
在最后加入如
192.168.1.2:/home/nfsdir /mnt/nfsdir nfs defaults 0 0
在/etc/fstab里加上需要自動掛載的NFS
首先測試,使用mount -a,NFS能成功掛載上來,說明fstab文件語法沒有問題,NFS服務也沒有問題。
于是重啟系統(tǒng),期望它能自動掛載。奇怪的是,系統(tǒng)啟動完后,NFS沒有掛載上來,系統(tǒng)日志有下面的信息:
mount: mount: mount to NFS server ’192.168.1.2’ failed:
mount: System Error: No route to host.
但是,一旦系統(tǒng)啟動完成,嘗試mount -a命令時,一切OK。由此看來應該是網(wǎng)絡的問題。也許是網(wǎng)絡起來后,但是路由還沒有完全準備好,或者網(wǎng)絡還在初始化狀態(tài),那么我們需要再自動掛載NFS 的自動化腳本上來一個短暫的休眠而保證網(wǎng)絡能夠初始化完成。
修改/etc/init.d/netfs在(注意使用vim修改,不要使用圖形化)
[ ! -f /var/lock/subsys/portmap ] && service portmap start
action $”Mounting NFS filesystems: ” mount -a -t nfs,nfs4
之間加上下面一行
action $”Sleeping for 30 secs: ” sleep 30
保存后,再測試,OK,你可以需要根據(jù)實際的環(huán)境來測試,不過30秒基本上能滿足需求了。
如果你能在系統(tǒng)日志中看到類似下面的信息,那表示一切正常
kernel: bnx2: eth0 NIC Link is Up, 1000 Mbps full duplex
netfs: Sleeping for 30 secs: succeeded
netfs: Mounting NFS filesystems: succeeded
14.查看當前主機RPC狀態(tài):
rpcinfo -p localhost
Linux CentOS 6.5 中安裝與配置JDK-7 (2014-10-24 22:27:2)
發(fā)表評論
◎歡迎參與討論,請在這里發(fā)表您的看法、交流您的觀點。