1. 程式人生 > >httpd+nfs 簡單的檔案系統共享

httpd+nfs 簡單的檔案系統共享

host1:192.168.1.2     nfs  server

host2:192.168.1.3   httpd server

  • 設定shared   Storage 
目標主機:host1

建立檔案共享目錄:

        mkdir  -pv   /data/nfs

         vim /etc/exports

           /data/nfs     192.168.1.0/24(rw,no_root_squash)

啟動服務

      systemctl  start   nfs-utils.service

      systemctl   start    nfs-server.service

檢視埠nfs服務的2049是否成功監聽:

   ~]#ss -tnl
    State       Recv-Q Send-Q                                                               Local Address:Port                                                                 Peer Address:Port 
    LISTEN      0      64     

  • 掛載共享儲存                                                                          *:2049                            

目標主機:host2:

掛載儲存:

      mount  -t   nfs   192.168.1.2:/data/nfs

  • 測試

host1:

    vim   /data/nfs/index.html

          <h1>  this   is   from   nfs   sharing</h1>

host2:

    cat  /var/www/html/index.html

應用場景:

作業系統:CentOS6

要求:客戶端:10.129.55.30   將目錄: /home/weblogic/respages/, /home/weblogic/hideupload/掛載nfs,要求這兩個目錄的許可權為weblogic,對weblogic可讀寫,對nginx 10.129.58.70只可讀

一、nfs服務端: 10.129.56.90

1.安裝服務端:yum -y  install nfs-utils 

要啟動 NFS 我們必須要有兩個套件才行,分別是:
nfs-utils 與 nfs-utils-clients (有時後僅有一個)   ///這裡我只安裝了nfs-utils,可能是版本的原因
portmap   ///安裝的這個版本里面沒有

 ~]# rpm -qa nfs-utils
nfs-utils-1.2.3-36.el6.x86_64


2.建立weblogic賬戶: 

useradd weblogic

並且保證uid,gid和客戶端的weblogic的相同,均為500

 ~]# id weblogic
uid=500(weblogic) gid=500(weblogic) groups=500(weblogic)

mkdir  /nfs/{respages,hideupload}  -pv

3.建立與客戶端相同的兩個目錄,並修改屬組屬主為weblogic

 mkdir  /home/weblogic/{respages,hideupload}  -pv

chown weblogic.    /home/weblogic/respages/

chown weblogic.   /home/weblogic/hideupload/

4.設定nfs的配置文件,/etc/exports這一個文件就可以搞定了,這個文件不存在,得自己建立

 ~]# vi /etc/exports

#/nfs/hideupload 10.129.55.0/24(rw,all_squash,anonuid=500,anongid=500)
#/nfs/hideupload 10.129.58.0/24(rw,all_squash,anonuid=500,anongid=500)    ///註釋掉的這兩行也可以,下面的是後來別人改掉,由於生產環境,也就沒動了

/nfs/hideupload 10.129.55.0/24(rw,insecure,async,all_squash,anonuid=500,anongid=500)
/nfs/hideupload 10.129.58.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500)
/nfs/respages 10.129.55.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500)   //不知道為何repages是ro的許可權,在weblogic上面,weblogic使用者依然可以寫檔案
/nfs/respages 10.129.58.0/24(ro,insecure,async,all_squash,anonuid=500,anongid=500)

引數說明:

rw:可擦寫的許可權;
ro:只讀的許可權;
no_root_squash:登入 NFS 主機使用分享目錄的使用者,如果是 root 的話,那麼對於這個分享的目錄來說,他就具有 root 的許可權!這個專案『極不安全』,不建議使用!
root_squash:在登入 NFS 主機使用分享之目錄的使用者如果是 root 時,那麼這個使用者的許可權將被壓縮成為匿名使用者,通常他的 UID 與 GID 都會變成 nobody 那個系統賬號的身份;
all_squash:不論登入 NFS 的使用者身份為何,他的身份都會被壓縮成為匿名使用者,通常也就是 nobody 啦!
anonuid:前面關於 *_squash 提到的匿名使用者的 UID 設定值,通常為 nobody,但是您可以自行設定這個 UID 的值!當然,這個 UID 必需要存在於您的 /etc/passwd 當中!
anongid:同 anonuid ,但是變成 group ID 就是了!
sync:資料同步寫入到記憶體與硬碟當中;
async:資料會先暫存於記憶體當中,而非直接寫入硬碟!

insecure:允許從這臺機器過來的非授權訪問

NFS 的套件結構

 NFS 這個咚咚真的是很簡單,上面我們提到的 NFS 套件中,設定檔只有一個,執行檔案也不多,記錄檔案也三三兩兩而已吶!趕緊先來看一看吧! ^_^
o /etc/exports:這個檔案就是 NFS 的主要設定檔了!不過,系統並沒有預設值,所以這個檔案『不一定會存在』,所以您必須要使用 vi 主動的建立起這個檔案喔!我們等一下要談的設定也僅只是這個檔案而已吶!
o /usr/sbin/exportfs:這個是維護 NFS 分享資源的指令,我們可以利用這個指令重新分享 /etc/exports 變更的目錄資源、將 NFS Server 分享的目錄解除安裝或重新分享等等,這個指令是 NFS 系統裡面相當重要的一個喔!至於指令的用法我們在底下會再介紹。
o /usr/sbin/showmount:這是另一個重要的 NFS 指令。exportfs 是用在 NFS Server 端,而 showmount 則主要用在 Client 端。這個 showmount 可以用來察看 NFS 分享出來的目錄資源喔!
o /var/lib/nfs/xtab:這個檔案則是主要的 NFS 的紀錄檔案咯!當我們的 NFS 分享出目錄資源後,到底有哪些 Client 端曾經連線上我們的 NFS 主機呢?呵呵!就是看這個檔案的內容即可囉! 

二、客戶端,為weblogic中介軟體:

在weblogic和nginx上面:

1.確保weblogic和nfs server的uid,gid一致

~]# id weblogic
uid=500(weblogic) gid=500(weblogic) groups=500(weblogic)

2.目錄已建立:

/home/weblogic/respages/, /home/weblogic/hideupload/

3.同樣需要安裝nfs-utils,這個版本的,貌似客戶端也在這個套件裡面了,因此客戶端也要安裝:

yum install -y nfs-utils

su - weblogic

 mount -t nfs 10.129.56.90:/nfs/hideupload /home/weblogic/hideupload/

mount -t nfs 10.129.56.90:/nfs/respages /home/weblogic/respages/

4.驗證:

在weblogic上面

cd  /home/weblogic/hideupload/  和 /home/weblogic/respages/目錄,均可以建立檔案沒問題


在nginx上面:不能建立檔案,這是想要的結果