1.什麼是nfs,具體能幹什麼及使用環境?
nfs network file system網路檔案系統,能為不同主機之間,實現檔案共享,在集群架構中使用。
2.nfs能解決什麼問題及注意事項?
功能:1.解決多台機器靜態資源一致性問題
2.解決多台機器資源共享
3.解決磁碟空間浪費
2.cdn
3.nfs實現原理解析
本地檔案操作1.當使用者執行mkdir命令,bashshell無法完成該命令操作,會將其翻譯給核心
2.kernel核心解析完成後會驅動對應的磁碟裝置,完成檔案目錄的建立
nfs實現原理 1.nfs客戶端執行增、刪等操作,客戶端會使用不同的函式對該操作進行封裝。(windows linux mac)
2.nfs客戶端會通過tcp/ip的方式傳遞給nfs服務端。(可靠)
3.nfs服務端接收到請求後,會先呼叫portmap程序進行埠對映。
4.nfsd程序用於判斷nfs客戶端是否擁有許可權連線nfs服務端。
5.rpc.mount程序判斷客戶端是否有對應的許可權進行驗證。讀 寫
6.idmap程序實現使用者對映和壓縮。
7.最後nfs服務端會將客戶端的函式轉換為本地能執行的命令,然後將命令傳遞至核心,由核心驅動硬體
注意:rpc是乙個遠端過程呼叫,那麼使用nfs必須有rpcbind服務
7.安裝配置nfs服務
1.安裝
[root@nfs ~]# yum install nfs-utils -y
2.配置
[root@nfs ~]# vim /etc/exports
/data 172.16.1.0/24(rw,all_squash,anonuid=666,anongid=666)
3.根據配置初始化環境
[root@nfs data]# groupadd -g 666 www
[root@nfs data]# useradd -u666 -g666 www
[root@nfs data]# id www
uid=666(www) gid=666(www) groups=666(www)
[root@nfs data]# chown -r www.www /data/
4.啟動
[root@nfs ~]# systemctl enable nfs #加入開機自啟動
[root@nfs ~]# systemctl start nfs #啟動服務
5.客戶端
[root@backup ~]# yum install nfs-utils -y
[root@backup ~]# showmount -e 172.16.1.31
export list for 172.16.1.31:
/data 172.16.1.0/24
[root@backup ~]# showmount -e 172.16.1.31 #檢視
export list for 172.16.1.31:
/data 172.16.1.0/24
客戶端使用(一定要與服務端使用的匿名使用者一致
[root@web01 ~]# groupadd -g 666 www
[root@web01 ~]# useradd -u666 -g666 www
[root@web01 ~]# mount -t nfs 172.16.1.31:/data/ /media/ #掛載,服務端ip位址為172.16.1.31
6.nfs相關的配置引數
nfs共享引數 引數作用
rw* 讀寫許可權 (最多)
ro 唯讀許可權 (只希望看,不希望寫)
root_squash 當nfs客戶端以root管理員訪問時,對映為nfs伺服器的匿名使用者nfsnobody(不常用)
no_root_squash 當nfs客戶端以root管理員訪問時,對映為nfs伺服器的root管理員(不常用)
no_all_squash 無論nfs客戶端使用什麼賬戶訪問,都不進行使用者壓縮 ( 後面講雲計算課程會用上 )
all_squash 無論nfs客戶端使用什麼賬戶訪問,均對映為nfs伺服器的匿名使用者(常用)
sync* 同時將資料寫入到記憶體與硬碟中,保證不丟失資料
async 優先將資料儲存到記憶體,然後再寫入硬碟;這樣效率更高,但可能會丟失資料
anonuid* 配置all_squash使用,指定nfs的使用者uid,必須存在系統
anongid* 配置all_squash使用,指定nfs的使用者uid,必須存在系統
7.nfs如何共享多個檔案
[root@nfs ~]# cat /etc/exports
/data 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
/data_2 172.16.1.0/24(rw,sync,all_squash,anonuid=666,anongid=666)
ps:客戶端分別掛載在不同目錄下
8.nfs優缺點,侷限性及應用建議
優點:1.nfs簡單易用,方便部署,資料可靠,服務穩定,滿足中小企業的需求
2.nfs的資料都在檔案系統之上,所有的資料都是能看的見的
侷限性:1.存在單點故障,本身nfs不支援高可用,也不支援集群
2.nfs資料都是明文,並不對資料做任何校驗,也沒有密碼驗證(建議內網使用)
應用建議:1.生產場景應將靜態資料(jpg\png\mp4\**i\css\js)盡可能放置cdn場景進行環境,以此來減少後端儲存壓力
2.如果沒有快取或架構,**等,本身歷史遺留的問題太大,再多儲存也沒意義
9.實現開機自動掛載(因為伺服器不重啟)
[root@web01 ~]# cat /etc/fstab
172.16.1.31:/data /media nfs defaults 0 0
常見錯誤:
ps: 如果nfs服務端出現問題: 客戶端重啟則會無法啟動成功
1.等待1分38s 自動進入系統
2.進入單使用者模式,注釋開機自啟動nfs
3.將nfs恢復正常
錯誤的示範
#訪問被拒絕 (沒有允許該網段訪問)
[root@backup ~]# mount -t nfs 10.0.0.31:/data /media/
mount.nfs: access denied by server while mounting 10.0.0.31:/data
#能夠連線,但是許可權被拒絕
[root@backup mnt]# touch file
touch: cannot touch 『file』: permission denied
ps:ls /var/lib/nfs/etab 檢視nfs許可權路徑
Linux集群架構
高可用集群通常為2臺伺服器 功能和角色是一樣的 一台在工作,另一台作為冗餘。當提供服務的機器宕機,冗餘將接替繼續提供服務,這樣就可以提供系統可用的效率。高可用集群的衡量標準要保證集群服務100 時間永遠完全可用,幾乎可以說是一件不可能完成的任務。比如,在這幾年雙十一剛開始的時候,一下子進來買東西的人...
linux集群架構 keepalived高可用
1.什麼是高可用,為什麼要設計高可用?兩台機器啟動著相同的業務系統時,當有一台宕機,另外一台伺服器能快速的接管,對於訪問的使用者是減少系統不能提供服務的時間 2.高可用使用什麼工具來實現?硬體還是軟體?軟體 keepalived 3.keepalived如何實現高可用?通過vrrp協議實現,虛擬路由...
Mycat集群架構
架構圖集群總共需要有8臺機子,mysql需要4臺,mycat需要2臺,負載均衡和高可用需要2臺。之所以mycat需要集群這樣的架構,是為了避免mycat單點失效的情況,mysql主機有4臺 db1 db4 其中db1和db3是組一 主主複製 db2和db4是組二 主主複製 之所以需要主主複製是因為m...