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上面:不能建立檔案,這是想要的結果