1. 程式人生 > 其它 >|NO.Z.00022|——————————|^^ 構建 ^^|——|檔案儲存之NFS|----------------------------------------|2臺server|

|NO.Z.00022|——————————|^^ 構建 ^^|——|檔案儲存之NFS|----------------------------------------|2臺server|



[Applications:檔案儲存之NFS]                                                                          [Applications.LBC&HAC$HPC] [網路儲存叢集|儲存|檔案儲存之NFS|2臺server]








一、NFS簡介:
### --- NFS發展史
~~~     NFS(Network File System)即網路檔案系統,是FreeBSD支援的檔案系統中的一種,
~~~     它允許網路中的計算機之間通過TCP/IP網路共享資源,
~~~     在NFS的應用中,本地NFS的客戶端應用可以透明地讀寫位於遠端NFS伺服器上的檔案,
~~~     就像訪問本地檔案一樣
~~~     NFS最早是由Sun公司發展出來的,後被逐漸完整及整合至Linux核心

### --- 功能:
~~~     它就是是可以透過網路,讓不同的主機,不同的作業系統可以共享儲存
### --- 原理

~~~     NFS在檔案傳送或資訊傳送過程中依賴於RPC(遠端過程呼叫,NFS用的是RPC協議的傳輸,
~~~     NFS只是在進行RPC協議的控制,不負責傳輸,以及檔案系統的控制或者提供)協議,
~~~     遠端過程呼叫(Remote Procedure Call)是能是客戶端執行其他系統中程式的一種機制
~~~     NFS檔案系統
### --- NFS優點:

~~~     節省本地儲存空間,將常用的資料存放在一臺NFS伺服器上且可以通過網路訪問,
~~~     那麼本地終端將可以自身儲存空間的使用
~~~     使用者不需要在網路中的每個機器上都建有Home目錄,
~~~     Home目錄可以放在NFS伺服器上且可以在網路上被訪問使用
~~~     一些儲存裝置CDROM和Zip等都可以在網路上被別的機器使用。
~~~     這可以減少整個網路可以移動介質裝置的數量;
~~~     很多裝置是不可以進行CDROM的共享的,而NFS是可以的。
二、NFS構建
### --- 系統硬體環境規劃

~~~     HA-server1:10.10.10.11:部署nfs主程式包
~~~     HA-server2:10.10.10.12:作為驗證client
三、NFS構建:實驗專題
### --- 在HA-server1下配置
### --- 安裝nfs主程式包

[root@server11 ~]# yum install -y rpcbind nfs-utils
[root@server11 ~]# mkdir  /nfs1                                             // 建立共享點:nfs1
[root@server11 ~]# mkdir  /nfs2                                             // 建立共享點:nfs2
[root@server11 ~]# chown -R nobody:nobody /nfs1/ /nfs2 
### --- 修改配置檔案

[root@server11 ~]# vim /etc/exports
/nfs1 10.10.10.12(rw,async,no_root_squash)
/nfs2 10.10.10.0/24(ro,async,no_root_squash)            
[root@server11 ~]# service rpcbind restart                                  // 重啟一下rpcbind讓其讀取一下當前的資訊
Stopping rpcbind:                                          [  OK  ]
Starting rpcbind:                                          [  OK  ]
[root@server11 ~]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS quotas:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS quotas:                                       [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ] 
[root@server11 ~]# showmount -e 10.10.10.11                                 // 檢視10.10.10.11共享了那些服務
Export list for 10.10.10.11:
/nfs2 10.10.10.0/24
/nfs1 10.10.10.12
### --- 驗證:在HA-server2下操作
 
[root@server12 ~]# showmount -e 10.10.10.11                                 // 在10.10.10.12主機是哪個也是可以查詢到的
Export list for 10.10.10.11:
/nfs2 10.10.10.0/24
/nfs1 10.10.10.12   
[root@server12 ~]# mkdir /nfsmount1/                                        // 掛載點:nfs1
[root@server12 ~]# mkdir  /nfsmount2/                                       // 掛載點:nfs2
[root@server12 ~]# chown -R nobody:nobody /nfsmount1/ /nfsmount2/
[root@server11 ~]# cp -a nfs1-HA-server1 /nfs1/
[root@server11 ~]# cp -a nfs2-HA-server2 /nfs2/ 
~~~     掛載
 
[root@server12 ~]# mount -t nfs 10.10.10.11:/nfs1/ /nfsmount1/
[root@server12 ~]# mount -t nfs 10.10.10.11:/nfs2/ /nfsmount2/
[root@server12 ~]# mount
10.10.10.11:/nfs1/ on /nfsmount1 type nfs (rw,vers=4,addr=10.10.10.11,clientaddr=10.10.10.12)
10.10.10.11:/nfs2/ on /nfsmount2 type nfs (rw,vers=4,addr=10.10.10.11,clientaddr=10.10.10.12)
[root@server12 ~]# ll /nfsmount1/
-rw-r--r-- 1 root root 26 Jan 23 03:02 nfs1-HA-server1
[root@server12 ~]# ll /nfsmount2/
-rw-r--r-- 1 root root 0 Jan 23 02:53 nfs2-HA-server2
~~~     在nfs1中配置是rw可以正常儲存退出,沒有問題。
[root@server12 ~]# vim /nfsmount1/nfs1-HA-server1
this is HA server2 write
 
~~~     在nfs中配置是ro,只可讀,不可寫,所以寫入失敗:告警:你正在修改一個只讀檔案。
~~~     在HA-server11下也是可以看到修改記錄後的檔案內容。
[root@server12 ~]# vim /nfsmount2/nfs2-HA-server2 
this is write false

附錄一:NFS安裝: 1、NFS安裝:
### --- 程式說明
~~~     nfs-utils: 這個是NFS服務主程式(包含rpc.nfsd、rpc.mountd、daemons)
~~~     rpcbind:這個是CentOS6.x的RPC主程式(CentOS5.X的為portmap)

### --- server端安裝並開啟的服務
yum install -y rpcbind nfs-utils
/etc/init.d/rpcbind status                                              // 檢視rpcbind當前狀態
### --- NFS server配置程式碼記錄

LANG=en                                                                 // 檢視當前語言
lsof -i :111    
rpcinfo -p localhost    
/etc/init.d/nfs status          
lsof  -i :2049
2、配置說明
### --- 配置檔案說明:

~~~     /etc/exports是NFS程式的配置檔案
~~~     /etc/exports檔案的配置格式為:
~~~     NFS共享目錄NFS客戶端地址1(引數1,引數2,引數3......)客戶端地址2(引數1,引數2,引數3......)
~~~     NFS共享目錄NFS客戶端地址(引數1,引數2,引數3......)
shuwmount -e ip                                                         // 檢視掛載情況
mount -t nfs ip:/file /filel
### --- 許可權

~~~     rw:read-write,可讀寫,注意,僅僅這裡設定成讀寫客戶端還是不能正常寫入,還要正確設定共享目錄的許可權
~~~     ro:read-only,只讀
~~~     sync:檔案同時寫入硬碟和記憶體
~~~     async:檔案暫存於記憶體,而不是直接寫入記憶體
~~~     no_root_squash:NFS客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,也擁有root許可權,顯然開啟這項是不安全的。
~~~     root_squash:NFS客戶端連線服務端時如果使用的是root的話,那麼對服務端分享的目錄來說,擁有匿名使用者許可權,通常他將使用nobody或nfsnobody身份
~~~     all_squash:不論NFS客戶端連線服務端時使用什麼使用者,對服務端分享的目錄來說都是擁有匿名使用者許可權
~~~     anonuid:匿名使用者的UID值,通常是nobody或nfsnobody可以在此處自行設定
~~~     anongid:匿名使用者的GID值








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)