天天看點

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/目錄,均可以建立檔案沒問題

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

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

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