NFS

文件共享的相關知識:
一、在window上的文件共享:
  在windows平臺上實現文件共享:在一臺主機1上,將它建成一個文件服務器,監聽在某個端口上,通過此服務將某個目錄共享出去;而
另一臺主機2通過網絡並經過網絡服務來實現訪問主機1上的文件,訪問的路徑:UNC\\文件服務器的ip地址\要共享的目錄;在windows上;
默認在後臺工作的有兩個服務,分別是cif |smbfs,所以說安裝上windows,就相當於一個文件系統服務器。
   cifs,smbfs----服務信息塊協議,服務信息塊文件系統來實現的;
二.NFS概述    
1.Unix文件服務實現----->NFS(基於rpc,用於在同一網絡中主機之間實現文件共享的服務)

2.NFS----網絡文件系統,縮寫是Network File Server;文件共享協議
         文件傳輸和文件共享是依賴於RPC實現的

3.NFS理解的說法--------其功能是透過網絡,讓不同的機器、不同的操作系統、可以彼此分享個別文檔。所以可以簡單的將他看做一個
文件服務器,讓自己的PC來將網絡遠程的NFS服務器分享的目錄,掛載到本地端的機器當中,在本地端的機器看起來,那個遠程主機的目
錄就好像是自己的一個磁盤分區槽一樣.

4.NFS的位置----位於linux內核中

  linux VFS將所有文件系統的抽象爲統一接口,此接口是VFS;ext3,iso9660,nfs訪問接口是VFS;      
 
  共享文件不能使用root 用戶;

5.NFS版本:NFSv1------sun公司內部使用
           NFSv2------完全基於UDP協議
           NFSv3-----redhat5系列使用;安全的異步async文件共享功能;支持TCP協議;支持64位文件大小;支持一次讀取或寫出;
                     支持Kerberos協議;
            注:kerberos---補充NIS的缺點的服務,token令牌,增強認證機制,提供健壯的集中認證的用戶驗證;
           NFSv4------redhat6系列使用;kerteros實現全方位的用戶認證
6.NFS支持認證:主機、用戶UID號
  NIS基於集中認證:到服務器上識別用戶的賬號和密碼;此服務叫NIS網絡信息系統;以前叫yp---黃頁 yellowpage
  NFS(NIS)一起工作,提高安全性;NIS只用於內網
  NIS----集中實現用戶身份認證
  kerberos----補充NIS缺點的服務;主機1的用戶生成一段數據,用主機2進行加密,發送給Kerberos,再進行解密。

7.網絡訪問權限:
       取決於文件系統權限和共享權限交集
       寫權限是獨佔的,排他
       讀權限是共享
      
8.NFS啓動:
  軟件包:nfs-utils
  啓動5個進程:nfsd ,rpc.mountd ,rpc.statd,lockd ,rpc.quotad
  腳本: nfs(nfsd,rcp.mountd,rpc.quotad), nfslock(rpc.statd,lockd)
  接口: 2049/tcp and 2049/udp (nfsd), others semi-random (found through portmap (111/tcp and 111/udp)
  配置文件: /etc/exports, /etc/sysconfig/nfs
 
9.在配置文件/etc/exports中定義共享文件的配置:
          共享目錄    [客戶端1(共享權限)]     [客戶端2(共享權限)].......
     以上的相關含義:
         共享目錄:欲共享目錄的實際路徑(使用絕對路徑);有空格,用引號‘’
         客戶端(訪問客戶端列表):可訪問該共享的客戶端進行相關配置,指定客戶端匹配的條件,如果不指定,則所有客戶端均匹配;
               定義匹配條件的形式:1.FQDN 2.IP地址  3.網段  4.DNS區域 5.通配符  6.ip網絡地址 
         共享權限屬性:ro-----設置共享爲只讀,這是默認選項
                    rw------設置共享爲讀寫
                    async----數據異步;先將數據保存在內存,再回寫入硬盤。提高效率,有可能數據丟失
                    sync----保持數據同步,同時將數據寫入內存和硬盤,這是默認選項
                    root_squash----當NFS客戶端當前用戶是root時,將被映射爲NFS服務器匿名用戶
                    no_root_squash-----當NFS客戶端當前用戶是root時,將被映射爲NFS服務器root用戶
                    all_squash----將所有用戶映射爲NFS的匿名用戶,這是NFS默認選項        
            注意:在定義客戶端匹配條件及參數時,在多個客戶端匹配條件之間必須有空格分隔;
                而在客戶端匹配條件與參數之間不能有空格;
        在配置NFS共享目錄完成後,需要重啓NFS服務或通過exportfs -ar使配置生效;最後也可以通過showmount -e查看配置情況;
     也可以通過查看、var/lib/nfs/etab文件NFS共享目錄的所有參數
10.命令
 #showmount ------用於查看主機上共享的信息
     選項:-e  服務器----可以在服務器上和客戶端上查看
           -a  服務器----查看被掛載的主機 ------在服務器和客戶端上都可以查看
           -d  服務器---顯示nfs服務器上共享出來的文件系統並且被掛載和訪問的客戶端列表
#exportfs----維護/etc/exports文件定義的共享的文件系統列表,導出文件系統
 選項:  -a---對所有文件系統進行操作,不能單獨使用
         -r-- 未導出的文件系統重新導出
         -u---關閉或取消一個或多個文件系統
         -v----詳細信息          
    
10.配置NFS服務過程:
1) NFS依賴於RPC協議(Remote Procedure Call)----遠程過程調用,實現在兩臺主機之間基於OSI第五層會話層建立
    二進制格式的通信機制;
2)首先檢查portmap服務是否正常和啓動,此服務提供RPC協議
     #service portmap status
     #rpcinfo -p---查看本地主機rpc上已經註冊的服務並且正在使用的端口
     #rpcinfo -p 指定ip地址---查看rpc服務啓動情況
           例:rpcinfo -p 172.16.0.1
3)查看是否安裝nfs-utils軟件包;沒有安裝,則安裝;安裝過,就不需要安裝了;使用到的命令:
    #rpm -q nfs-utils----查看是否安裝此軟件
    #yum install nfs-utils -----安裝軟件
    #rpm -qc nfs-utils------查看軟件的配置文件
4)啓動NFS服務
      #service nfs status----服務狀態
      #service nfs start
      #chkconfig nfs on ----開機自動啓動服務
5)配置文件向外提供服務:
   1.在配置文件/etc/exports中定義共享文件的配置:
          共享目錄    [客戶端1(共享權限)]     [客戶端2(共享權限)].......
   2.在服務器端創建共享目錄
   3.在客戶端創建掛載點
   4.在客戶端先進行掛載纔可以到服務器上訪問文件
     #mount -t nfs 服務器ip地址:共享目錄  掛載的位置
       #mount -t nfs 172.16.100.1:/vhosts /mnt/nfs
   5.創建第二個共享文件
    在/etc/exports文件中添加 
          共享目錄    [客戶端1(共享權限)]     [客戶端2(共享權限)].......
    使用命令不需要掛載
    #exportfs -u 172.16.0.0/16:/mydata----導出某個文件系統
    #exportfs -u---取消所有的文件系統
    #exportfs -arv ----重新導出所有的文件系統
    #exportfs -rv----重新導出所有文件系統
    #exportfs -r ----重新導出所有文件系統
    #rpcinfo -p localhost---NFS端口是隨機的,查看端口    
7.NFS服務認證機制的驗證
       如果服務器創建的用戶和客戶端創建的用戶,他們的UID一樣,則可以在客戶端的掛載點目錄下創建
和刪除文件;要是不一樣,則不能創建文件。


 具體過程用一個例子:
 1.在服務器端:          
   #vim /etc/exports填寫內容:
      /vhosts       172.16.0.0/16(rw)  192.16.0.0/24(ro)
   #rpcinfo -p 172.16.100.1 ----在客戶端輸入查看
   #service nfs restart----在服務器上輸入
2.客戶端和服務器端都可以輸入:
   #showmount -e 172.16.100.1
   #showmount -a 172.16.100.1
   #showmount -d 172.16.100.1
3. 在服務器上創建目錄及文件:
    #mkdir /vhosts/{magdu,linux} -pv
4.在客戶端建目錄及文件        
   #mkdir /mnt/nfs   
5.在客戶端先掛載纔可以訪問服務器上的文件
   #mount -t nfs 172.16.100.1:/vhosts /mnt/nfs----掛載---客戶端執行命令
   #cd /mnt/nfs
   #ls
   #cp linux/ /tmp -r
   #touch a.txt  ---無法創建
6.創建第二個共享文件時,不能重啓服務,在服務器端服務 
    #exportfs -u 172.16.0.0/16:/mydata----導出某個文件系統
    #exportfs -u---取消所有的文件系統
    #exportfs -arv ----重新導出所有的文件系統
    #exportfs -rv----重新導出所有文件系統
    #exportfs -r ----重新導出所有文件系統
    #rpcinfo -p localhost---NFS端口是隨機的,查看端口
7.NFS服務認證機制的驗證
   服務器創建用戶
      #useradd gentoo
      #chown -R gentoo:gentoo /vhosts/
      #ll -d /vhosts
      #id gentoo    
    客戶端創建用戶;
      #useradd gentoo
      #su -gentoo
      #useradd add -u 503 centos
      #cd /mnt/nfs
      #touch a.txt  ---創建成功
如果服務器創建的用戶和客戶端創建的用戶,他們的UID一樣,則可以在客戶端
的掛載點目錄下創建和刪除文件;要是不一樣,則不能創建文件。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章