centOS下NFS服務器的安裝配置詳解

1、NFS簡介html

       NFS就是Network FileSystem的縮寫,最先以前是由Sun公司所發展出來的。他最大的功能就是能夠透過網絡,讓不一樣的機器、不一樣的操做系統能夠彼此分享個別檔案(share file)。這個NFS Server可讓你的PC來說網絡遠程的NFS主機分享的目錄,掛載到本地端的機器當中,因此,在本地端的機器看起來,那個遠程主機的目錄就好像是本身的一個磁盤分割操同樣。說白了,就至關於Windows下面的文件共享同樣.....web

       NFS使用的協議是RPC(遠程過程調用)協議來協助NFS自己的運做! NFS本省的服務並無提供數據傳輸的協議,可是NFS卻可以讓咱們進行檔案的分享,這其中的緣由就是NFS使用到一些其它相關的傳輸協議!而這些傳輸的協議,就是使用到這個所謂的RPC的功能!這也就是說,NFS自己就是使用RPC的一個程序了,NFS能夠視做一個RPC server,NFS管理主要管理分享出來的目錄,而至於數據的傳輸,就直接丟給RPC協議來運做!centos

       NFS Server總過須要啓動至少兩個進程(rpc.nfsd和rpc.mountd),一個管理Client是否能夠登入的問題,另外一個管理登入主機後的用戶是否可以使用的檔案權限!nfsd這個進程主要在管理客戶端是否可以登入主機的權限,mountd這個進程則在管理NFS的檔案系統,當客戶端順利經過nfsd後,登入到主機以後,在他使用能夠NFS Server分享的檔案以前,還會通過檔案使用權限的認證程序!只有經過這一關以後,Client纔可以使用NFS服務所分享的檔案。安全

       當客戶端嘗試使用RPC Server所提供的服務時,因爲Client須要取得一個能夠鏈接的端口(port)纔可以使用RPC Server所提供的服務,所以,客戶端首先去請求rpcbind(舊版本是portmp),而後,rpcbind將本身管理的端口映射告知客戶端,好讓客戶端能夠鏈接上服務,所以:啓動NFS以前,必定要先啓動rpcbind服務器

       總結一下安裝NFS都須要什麼,首先須要rpcbind,將端口告知客戶端。其次須要nfs-utils,提供nfsd進程和mountd這兩個NFS進程。網絡

 

2、安裝環境async

       這裏咱們提供兩臺主機,一臺用來安裝NFS服務器,一臺用來掛載服務器分享的目錄,操做系統所有采用的是centOS6.4,下載地址個人博文《Hadoop徹底分佈式模式搭建》中有,若是,對Hadoop感興趣的話,能夠看看:http://blog.sina.com.cn/s/blog_c09822a40102v9ja.html分佈式

       主機名                                               IP地址                                        分享目錄/掛載目錄oop

       centosDateNode3                      192.168.10.71                                    /home/roboson ui

       centosNameNode                      192.168.10.66                                    /home/roboson1

 

3、大體流程

<1>.安裝NFS Server

<2>.啓動服務

<3>.設定分享的目錄

<4>.分享目錄的範圍詳解(給哪些客戶端分享)

<5>.分享目錄的權限詳解(客戶端能對分享的目錄進行哪些操做)

<6>.服務器分享目錄

<7>.服務器對分享目錄的操做(卸掉,修改後從新分享使生效等)

<8>.服務器和客戶端如何查看分享的目錄

<9>.客戶端掛載目錄

<10>.客戶端卸載目錄

<11>.NFS Server如何設置開機自動啓動

<12>.客戶端如何設置開機自動掛載分享目錄 

 

 4、開工

<1>.安裝NFS Server

首先查看NFS Server是否已經安裝,其實在默認狀況下,NFS Server已經安裝好了,下面查看是否安裝了NFS Server,打開命令行,輸入如下指令:

 rpm -qa|grep nfs #前面的博文中這個指令用過好屢次了 

前面也說過,在運行NFS Server以前,必定要先啓動rpcbind,因此,用相同的方法,查看是否安裝

了rpcbind,在命令行下輸入如下指令:

rpm -qa|grep rpcbind 

 

如上圖所示,說明系統已經安裝了NFS Server和rpcbind,若是沒有安裝,也無所謂,centos操做系統中自帶有安裝包,打開系統掛載的地方,而後,進行安裝!打開命令行,輸入如下指令:

cd /media/CentOS_6.4_Final/Packages          #切換到掛載光驅的位置           

ls rpcbind* #列出全部以rpcbind開頭的包 rpm -ivh rpcbind-0.2.0-11.el6.x86_64.rpm #安裝列出的軟件包(一個) 

如上圖所示,安裝成功,那麼下來,就是安裝NFS Service,同上面同樣,先進入軟件安裝包中,而後,在命令行中輸入如下指令:

cd /media/CentOS_6.4_Final/Packages           #切換到掛載光驅的位置           

ls nfs*                                       #列出全部以rpcbind開頭的包  

rpm -ivh  nfs-utils-1.2.3-36.el6.x86_64.rpm   #安裝列出的軟件包(一個) 

       <2>.啓動服務

在安裝完成後,咱們就須要啓動NFS Server所須要的進程,查看一下服務的狀態,看是否啓動,在命令行下輸入如下指令:

service nfs status                                  #查看NFS Server的狀態          

service rpcbind status                              #查看rpcbind的狀態                

如上圖所示,所須要的進程都已經開啓!接下來nfs就能夠設定分享目錄了。

       <3>.設定分享的目錄

       Linux把要分享的目錄的路徑都放在一個文件中,而且有分享的客戶端範圍,有分享的權限,這個目錄

       在/etc/exports,若是沒有這個文件,能夠本身手動建一個,記錄分享目錄的格式:

     【分享的目錄】【單個或多個主機名稱】或【IP範圍】(權限)

       /home/roboson  *(rw)

       如上所示,分享的目錄是/home/roboson,對全部人開放  ,權限是可讀可寫!

       好,分享的範圍都有哪些定義法,權限都有哪些呢?

       <4>.分享目錄的範圍詳解(給哪些客戶端分享)

(1).指定ip地址的主機:192.168.10.71

只容許IP地址爲192.168.10.71的主機能夠登陸到此共享目錄

(2).指定子網中的全部主機:192.168.0.0/24或者192.168.0.0/255.255.255.0

只容許192.168.10.1~192.168.10.254這個網段內的IP登陸到此共享目錄

(3).指定域名的主機:centosNameNode.roboson.cn

只容許主機名爲centosNameNode.roboson.cn的能夠登陸到此共享目錄

(4).指定域內的全部主機:*.roboson.cn

只容許域名爲.roboson.cn的能夠登陸到此共享目錄

(5).指定全部的主機:*

       <5>.分享目錄的權限詳解(客戶端能對分享的目錄進行哪些操做)

(1).rw:可讀可寫的權限

(2).ro:只讀的權限

(3).no_root_squash:登入分享目錄的使用者若是是root的話,那麼對於這個分享的目錄來講,他就具備root的權限!這一項不安全,不建議使用!

(4).root_squash:登入分享目錄的使用者若是是root的話,那麼這個使用者的權限將被壓縮成匿名使用者,一般他的UID與GID都會變成nobody那個系統帳號的身份。

(5).all_squash:不論登入分享目錄的使用者是什麼身份,都會被壓縮成匿名使用者。

(6).anonuid:能夠自行設定使用者UID的值!也就是使用者登陸到分享目錄中,身份成爲UID這個使用者,必須在/etc/passwd中存在這個UID。

(7).anongid:能夠自行設定使用者GID的值!也就是使用者登陸到分享目錄中,身份成爲GID這個使用者,必須在/etc/group中存在這個GID。

(8).sync:數據同步寫入到內存與硬盤當中

(9).async:數據會先暫存於內存當中,而非直接寫入硬盤

       <6>.服務器分享目錄

將centosDateNode3上的/home/roboson目錄分享出去,對centosNameNode.roboson.cn主機開放,而且具備讀寫權限,在命令行中輸入如下指令:

注意:centosDateNode3必需要可以解析centosNameNode.roboson.cn這臺主機,要麼在DNS務器上有記錄,要麼在/etc/hosts文件下有記錄

hosts文件域名映射IP地址的添加,在個人博文《Hadoop徹底分佈式模式搭建》中有,若是,對Hadoop感興趣的話,能夠看看:

http://blog.sina.com.cn/s/blog_c09822a40102v9ja.html

<7>.服務器對分享目錄的操做(卸掉,修改後從新分享使生效等)

修改好了/etc/exports文件 後,經過如下指令可讓分享目錄生效,不須要從新啓動nfsd等守護進程只須要使用exportfs從新掃描一次/etc/exports文件,而且從新加載一次就能夠了,如下是它的用法:

exportfs                                                                                                    

<8>.服務器和客戶端如何查看分享的目錄

經過showmount能夠查看共享的目錄,showmount語法以下:

服務器端查看本身分享的目錄:

showmount    -e     

客戶端查看本身分享的目錄:

showmount    -e  centosDateNode3.roboson.cn

注意:若是出現上圖Unknown host說明識別不了主機,因此,hosts或者DNS服務器沒有記錄你的主機與IP地址的映射關係。前面已經提到過了!

<9>.客戶端掛載目錄

前面的安裝環境中,說過,將分享 的目錄掛載到/home/roboson1下,輸入:

mkdir    /home/roboson1                 #建立要掛載的目錄
mount -t  nfs centosDateNode3.roboson.cn:/home/roboson   /home/roboson1 
cd /home/roboson1                       #看是否可以登陸到共享目錄

注意:若是出現上圖權限不夠,由於centosDateNode3.roboson.cn:/home/roboson自己也有權限(drwx-xxx-xxx),不容許組內其餘成員和組外的成員訪問,只容許本身訪問,所以要修改權限。

而後,再進入到掛載的目錄,而且新建一個文件夾,看有沒有讀寫權限:

如圖所示,說明掛載共享目錄成功,而且擁有讀寫權限(rw)

<10>.客戶端卸載目錄

客戶端卸載共享目錄是經過umount實現的

umount /home/roboson1

<11>.NFS Server如何設置開機自動啓動

說到這裏,先說說Linux的開機啓動模式,Linux的開機啓動模式有多種,那麼若是要設置開機啓動項,就得說明,哪種開機啓動模式下,個人服務要自動啓動!先看看Linux都有哪幾種啓動模式,在命令行輸入如下指令:

cat /etc/inittab                #這個文件下有Linux的開機啓動模式

從上圖能夠看出,總共有七種開機模式:

0:表示關機

1:表示單用戶模式,能夠經過這個模式修改root的密碼

2:無網絡鏈接的多用戶命令行模式

3:有網絡鏈接的多用戶命令行模式

4:不可用

5:圖形界面

6:重啓

看見下面有一句話:id:5:initdefault:這句話的主要做用就是修改默認的啓動模式,若是把5改成3, 那麼就進入命令行模式!同理,修改開機啓動項,也須要看給哪一種模式設置開機自動啓動,是用多用戶命令行登陸後,進程自動啓動,仍是以圖形界面登陸的時候,進程自動啓動等等.....

chkconfig --list rpcbind         #查看rpcbind的開機啓動狀況                                 
chkconfig --list nfs             #查看nfs的開機啓動                                       

如圖所示,通常咱們用的要麼是3,要麼是5,因此,只須要設置三、5開機自動啓動就能夠了

 

<12>.客戶端如何設置開機自動掛載分享目錄  

每次客戶端重啓的話,都須要從新掛載分享目錄,挺麻煩的,最好可以設置開機自動掛載,Linux下能夠經過/etc/fstab文件來記錄,格式以下:

共享目錄          本地掛載目錄        nfs  選項  0 0

                                                                                 

5、關機或結束時的注意事項

       因爲NFS使用的這個RPC在client端連上主機時,那麼主機在想要關機的時候,可能關不了,若是,主機上面還有Client在聯機,那麼最好關機以前,關掉portmap與nfs這兩個東西

相關文章
相關標籤/搜索