NFS部署及優化(一)
一、NFS的基本概念
NFS == network file system 網絡檔案系統
必然通過網絡通信來實作檔案的通路和寫入,是以做這個實驗的話最好有兩台虛拟機
配置:
A:一個192.169.50.201為server端
B:一個192.169.50.200為client端
會有一個server端、一個client端
#cs這樣的通信形式
允許一個系統在網絡上與他人共享目錄和檔案,通過使用NFS,使用者和程式可以像通路本地的檔案一樣,去通路遠端的檔案,也就是說通過NFS服務,就可以讓這台機器通路遠端的檔案,就好比是通路自己的檔案一樣!
二、常見問題
比如:我們現在有三台機器,A、B、C 他們需要通路同一個目錄,而這個目錄中都是圖檔,傳統的做法是分别将這些圖檔放到A上、B上、C上,如果A上的圖檔發生了改變,那麼需要将這些改變的圖檔分别同步到B上、C上。顯然這樣做是非常的繁瑣,也比較浪費磁盤空間,更浪費帶寬資源。
三、解決辦法:
在A上搭建一個NFS服務,把A上的目錄同時共享給B和C,B和C将A共享的目錄放在自己的本地上,這個動作叫做挂載(跟磁盤挂載一個性質),也就是把A共享的目錄挂載到B和C上。
這時候在使用者看來,A、B、C同時存在一樣的目錄,裡面的檔案也是一樣的,我去改動任何一個機器上的該目錄下的檔案,其他兩個伺服器都會跟着改動,這個就是NFS的優勢。
四、部署NFS
在A機器上
(1)安裝nfs和rpcbind包
[root@shiyanji ~]# yum install -y nfs-utils rpcbind
# rpcbind的功能是用來通信的,想要實作server端和client端的通信就必須要有rpcbind
(2)[root@shiyanji ~]# df -h #目的是檢視選擇下要共享的目錄
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 18G 5.0G 12G 30% /
tmpfs 947M 0 947M 0% /dev/shm
/dev/sda1 190M 29M 152M 16% /boot
/dev/mapper/vg_nfs-lv_nfs
985M 1.3M 932M 1% /nfs
實驗中,我們要做的共享目錄是/nfs。
(3)[root@shiyanji ~]# vim /etc/exports #編輯寫入要共享的目錄

/nfs 192.169.50.200(rw,sync) #也可以寫一個網段如:192.169.50.0/24 括号裡可以寫ro隻讀,rw是可讀可寫,sync是同步
注意: 在A機器上(server端),編輯的這個檔案目的是把自己的目錄共享給哪個ip或者網段。
(5)啟動rpcbind和nfs服務
[root@shiyanji ~]# /etc/init.d/rpcbind start #啟動rpcbind服務
[root@shiyanji ~]# /etc/init.d/nfs start #啟動nfs
注意: 重新開機時注意先後順序!
在B機子上
(1)安裝nfs包
[root@kehuji ~]# yum -y install nfs-utils
(2)顯示共享目錄
[root@kehuji ~]# showmount -e 192.169.50.201 #這個ip是我們的server服務端
Export list for 192.169.50.201:
/nfs 192.169.50.200 #這個是我們服務端共享的目錄和共享給哪台機器ip
(3)挂載
[root@kehuji ~]# mkdir /shiyan
[root@kehuji ~]# mount -t nfs 192.169.50.201:/nfs /shiyan
[root@kehuji ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 16G 4.9G 9.9G 33% /
tmpfs 504M 0 504M 0% /dev/shm
/dev/sda1 190M 25M 156M 14% /boot
192.169.50.201:/nfs 985M 1.3M 932M 1% /shiyan
權限問題
在B機器上:
[root@kehuji ~]# cd /shiyan
[root@kehuji shiyan]# touch 1.txt
touch: cannot touch `1.txt': Permission denied
#原因是A機器上共享的/nfs目錄預設挂載過來是有一個使用者的, 必然是/nfs共享目錄的權限問題,至少是其他使用者不可寫!
在A機器上:
[root@shiyanji ~]# ll -d /nfs
drwxr-xr-x 3 root root 4096 Apr 27 07:59 /nfs
#可見共享的這個/nfs目錄的權限是755,除了屬主外,屬組和其他使用者的權限是不可寫的。
解決辦法:
[root@shiyanji ~]# cd /nfs
[root@shiyanji nfs]# chmod 777 .
[root@shiyanji nfs]# ll -d .
drwxrwxrwx 3 root root 4096 Apr 27 07:59 .
# 将/nfs目錄的權限改為777,任何使用者可讀可寫可執行!
[root@kehuji shiyan]# ll
total 16
-rw-r--r-- 1 nfsnobody nfsnobody 0 Apr 27 08:22 1.txt