NFS全稱是network file system,NFS容許一個系統在網絡上與他人共享目錄和文件。經過使用NFS,用戶和程序能夠像訪問本地文件同樣訪問遠端系統上的文件。 假若有三臺機器A, B, C,它們須要訪問同一個目錄,目錄中都是圖片,傳統的作法是把這些圖片分別放到A, B, C. 可是使用NFS只須要放到A上,而後A共享給B和C便可。訪問的時候,B和C是經過網絡的方式去訪問A上的那個目錄的。 vim
廢話很少說,搭建走着。。。。。centos
首先先聲明的是搭建環境爲centos6.4安全
服務端ip:192.168.0.120服務器
客戶端ip:192.168.0.121網絡
一、須要安裝兩個包(nfs-utils和rpcbind):async
yum install -y nfs-utils rpcbindide
二、提供nfs服務的機器上 vim /etc/exports //內容以下:ui
/home/ 192.168.0.0/24(rw,sync,all_squash,anonuid=501,anongid=501)圖片
(解釋下這個:共分爲三部分,第一部分就是本地要共享出去的目錄,第二部分爲容許訪問的主機(能夠是一個IP也能夠是一個IP段)第三部分就是小括號裏面的,爲一些權限選項。它表示:共享的目錄爲/home,信任的主機爲192.168.0.0/24這個網段,權限爲讀寫,同步,限定全部使用者,而且限定的uid和gid都爲501。ip
rw :讀寫;
ro :只讀;
sync :同步模式,內存中數據時時寫入磁盤;
async :不一樣步,把內存中數據按期寫入磁盤中;
no_root_squash :加上這個選項後,root用戶就會對共享的目錄擁有至高的權限控制,就像是對本機的目錄操做同樣。不安全,不建議使用;
root_squash:和上面的選項對應,root用戶對共享目錄的權限不高,只有普通用戶的權限,即限制了root;
all_squash:無論使用NFS的用戶是誰,他的身份都會被限定成爲一個指定的普通用戶身份;anonuid/anongid :要和root_squash 以及all_squash一同使用,用於指定使用NFS的用戶限定後的uid和gid,前提是本機的/etc/passwd中存在這個uid和gid,包括客戶端。)
三、啓動 /etc/init.d/rpcbind start; /etc/init.d/nfs start
(注意先啓動rpcbind,不然會報錯)
四、客戶端一樣安裝:yum install -y nfs-utils
查看服務器端都共享了哪些目錄:showmount -e 192.168.0.120
在客戶端上掛載服務端的nfs:
mount -t nfs 192.168.0.120:/home/ /mnt/
df -h 查看掛載的狀況
五、小技巧:
a)改變/etc/exports配置文件後,不用重啓nfs服務直接用這個exportfs便可,如:exportfs -arv
-a :所有掛載或者卸載;
-r :從新掛載;
-u :卸載某一個目錄;
-v :顯示共享的目錄。
b)客戶端在使用nfs時,經常使用一個選項就是 -o nolock,如:
mount -t nfs -o nolock 192.168.0.120:/home/text /mnt/
意思指掛載的時候指定這個文件不加鎖。
c)客戶端開機加載這個文件能夠在/etc/rc.local加入:
mount -t nfs -o nolock 192.168.0.120:/home/text /mnt/
疑問:服務端設置/home/text 192.168.0.0/24(rw,sync,no_root_squash)時,客戶端寫的時候容易卡