httpd+nfs 簡單的檔案系統共享
host1:192.168.1.2 nfs server
host2:192.168.1.3 httpd server
- 設定shared Storage
建立檔案共享目錄:
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上面:不能建立檔案,這是想要的結果