linux運維學(xué)習(xí)筆記:集群系列之01:linux集群基礎(chǔ)概念
作者:周少言
2018年 1月,于北京
聲明:本博客是本人周少言在某培訓(xùn)機(jī)構(gòu)學(xué)習(xí)期間所寫云芦,其中參考借鑒了他人的博客俯逾,本文將會選擇性給出相關(guān)鏈接,如有侵權(quán)舅逸,懇請告知桌肴。本文如有錯誤,懇請告知琉历,歡迎交流坠七。
一、集群的類型:
1善已、scale on :向上擴(kuò)展 意思就是將我們的服務(wù)器的內(nèi)存容量調(diào)大和cpu數(shù)量增加些.
缺點:在一定的范圍之內(nèi)它的性能是上升的趨勢,但是超出范圍之后就是下降的趨勢灼捂。
因為隨著它的cpu的個數(shù)增加我們需要給我們的cpu仲裁。而且隨著cpu個數(shù)的增加資源競爭性越大换团。
2、scale out :向外擴(kuò)展 意思就是一臺服務(wù)器應(yīng)付不過來,我們就再增加一臺服務(wù)器.
優(yōu)點:增減服務(wù)器很方便宫蛆、而且沒有向上擴(kuò)展隨著增加性能下降艘包。
向外擴(kuò)張的工作模式:當(dāng)客戶端向服務(wù)器端發(fā)送請求,服務(wù)器端只拿出來一臺服務(wù)器來相應(yīng)我們的客戶端的請求耀盗。
(1)LB:load balancing:負(fù)載均衡集群
負(fù)載均衡集群中有一個分發(fā)器或者叫調(diào)度器想虎,我們將其稱之為Director,它處在多臺服務(wù)器的上面叛拷,分發(fā)器根據(jù)內(nèi)部鎖定義的規(guī)則或調(diào)度方式從下面的服務(wù)器群中選擇一個以此來響應(yīng)客戶端發(fā)送的請求舌厨。
調(diào)度的方式:
rr:round robin: 輪調(diào) 輪流的使用
wrr:weight round robin :加權(quán)
(2)HA:highavailability 高可用
意思就是服務(wù)的可用性比較高,當(dāng)我們某臺服務(wù)器死機(jī)后不會造成我們的服務(wù)不可用忿薇。其工作模式則是將一個具有故障的服務(wù)轉(zhuǎn)交給一個正常工作的服務(wù)器裙椭,從而達(dá)到服務(wù)不會中斷。
health check:健康檢查
一般來說我們集群中工作在前端(分發(fā)器)的服務(wù)器都會對我們的后端服務(wù)器做一個健康檢查署浩,如果發(fā)現(xiàn)我們服務(wù)器宕機(jī)就不會對其再做轉(zhuǎn)發(fā)揉燃。
(3)HP:Hight Performance 高性能
高性能的集群是當(dāng)某一個任務(wù)量非常大的時候,我們做一個集群共同來完成這一個任務(wù)筋栋。這種 處理方式我們稱為并行處理集群炊汤,并行處理集群是將大任務(wù)劃分為小任務(wù),分別進(jìn)行處理的機(jī)制。一般這樣子的集群用來科研工作方面∏栏現(xiàn)在比較火的Hadoop就是使用的并行處理集群姑曙。
小結(jié):負(fù)載均衡和高可用區(qū)別:
負(fù)載均衡著重在于提供服務(wù)并發(fā)處理能力的集群,高可用以提升服務(wù)在線的能力的集群迈倍。高性能著重用于處理一個海量任務(wù)渣磷。
二、LB:負(fù)載均衡集群之LVS.
1授瘦、實現(xiàn)負(fù)載均衡的類別:
從Hardware分類:
F5 : BIG IP
Citrix公司: NetScaler
A10 :
從Software分類;
四層:LVS(國人開發(fā)的)
七層:Nginx 醋界、haproxy
2、LVS:Linux Virtual Server的解釋:
一般來說提完,LVS采用三層結(jié)構(gòu):負(fù)載調(diào)度器形纺、服務(wù)器池、共享存儲徒欣。工作在TCP/IP協(xié)議的四層逐样,其轉(zhuǎn)發(fā)是依賴于四層協(xié)議的特征進(jìn)行轉(zhuǎn)發(fā)的,由于其轉(zhuǎn)發(fā)要依賴于協(xié)議的特征進(jìn)行轉(zhuǎn)發(fā)打肝,因此需要在內(nèi)核的TCP/IP協(xié)議棧進(jìn)行過濾篩選脂新,可想而知,這就需要在內(nèi)核的模塊來完成粗梭,而這樣的過濾轉(zhuǎn)發(fā)規(guī)則又是由管理員進(jìn)行定義的争便,所以,LVS就是兩段式的架構(gòu)設(shè)計断医,在內(nèi)核空間中工作的是"ipvs"滞乙, 而在用戶空間中工作的,用來定義集群服務(wù)規(guī)則的是"ipvsadm"鉴嗤。這就很容易想到iptables斩启。LVS工作在input鏈上.
3、LVS中每個主機(jī)IP地址的定義:
VIP:Director用來向客戶端提供服務(wù)的IP地址
RIP:集群節(jié)點(后臺真正提供服務(wù)的服務(wù)器)所使用的IP地址
DIP:Director用來和RIP進(jìn)行聯(lián)系的IP地址
CIP:公網(wǎng)IP醉锅,客戶端使用的IP兔簇。
4、LVS的三種轉(zhuǎn)發(fā)模式:
LVS-NAT:網(wǎng)絡(luò)地址轉(zhuǎn)換 Network address translation
LVS-DR:直接路由 Direct routing
LVS-TUN:IP隧道 IP tunneling
5硬耍、LVS的三種轉(zhuǎn)發(fā)模式特點:
NAT:
集群節(jié)點跟director必須在同一個網(wǎng)段上面.
RIP通常是私有地址,僅用于個集群
支持口映射
realsever可以使用任意OS(操作系統(tǒng))
較大規(guī)模應(yīng)用場景中director已成為系統(tǒng)瓶頸.
DR:
集群節(jié)點跟director必須在同一個物理網(wǎng)絡(luò)中;
RIP可以使用公網(wǎng)地址.實現(xiàn)便捷的遠(yuǎn)程控制服務(wù)器
director只負(fù)責(zé)處理入站請求,相應(yīng)報文則有RealServer直接發(fā)往客戶端
RealServer不能將網(wǎng)關(guān)指向DIP;
director不支持端口映射;
TUN:
各集群節(jié)點可以跨越不同的網(wǎng)絡(luò)
RIP必須是公網(wǎng)地址
director只負(fù)責(zé)處理入站請求,相應(yīng)報文則有realserver直接發(fā)往客戶端
realserver網(wǎng)管不能指向director
只有支持隧道共跟那個的os才能用戶realserver
不支持端口映射
6垄琐、LVS的調(diào)度算法:
固定調(diào)度:不考慮server服務(wù)器是否空閑.
rr : round robin :輪叫,輪詢
wrr: weight round robin :加權(quán)輪叫
sh : source hashing : 源地址hash 實現(xiàn)會話綁定session affinity
dh : destination hashing : 將同樣的請求發(fā)送給同一個server
動態(tài)調(diào)度:
lc :leash-connection 最少連接 active256+inactive 誰的小調(diào)誰.
wlc : 加權(quán)最少連接 (active256+inactive)/weight 誰的小調(diào)誰.
sed : 最少期望延遲 (active+1)*256/weight 誰的小調(diào)誰.
nq : never queue 永不排隊
LBLC :基于本地的最少連接
LBLCR:基于本地的帶復(fù)制功能的最少連接
LVS默認(rèn)調(diào)度算法是 wlc
7、定義集群服務(wù)規(guī)則的ipvsadm命令的實用:
管理集群服務(wù)
添加
ipvsadm -A -t|u|f server-adddress [-s scheduler]
-t :tcp協(xié)議的集群 service-address后面必須寫成ip:port
-u :udp協(xié)議的集群 service-address后面必須寫成ip:port
-f :fwm 防火墻的標(biāo)記 service-address后面必須寫成mark number
修改
ipvsadm -E -t|u|f server-adddress
刪除
ipvsadm -D -t|u|f server-adddress
管理集群服務(wù)中的realserver
添加
ipvsadm -a -t|u|f server-adddress -r server-address [-g|i|m] [-w weight]
-t|u|f service-address 實現(xiàn)定義好的某集群服務(wù)
-r server-address 某rs的地址在nat模型中可使用ip:port實現(xiàn)端口映射
[-g|i|m] lvs類型:
-g : DR
-i : TUN
-m : NAT
[-w weight]
修改
ipvsadm -e -t|u|f server-adddress
刪除
ipvsadm -d -t|u|f server-adddress
查看
ipvsadm -L | ipvsadm -l ....
-n 顯示主機(jī)地址和端口為數(shù)字格式
--stats 顯示進(jìn)出站數(shù)據(jù)
--rate 顯示速率
--timeout 顯示每一個tcp tcpfin udp 的超時時間值
--deamon 顯示進(jìn)程信息
--sort 顯示排序規(guī)則 默認(rèn)是升序的
-c 顯示多少個客戶連接進(jìn)來
刪除所有集群服務(wù):
清空ipvs規(guī)則
ipvsadm -C
保存定義的規(guī)則:
service ipvsadm save
ipvsadm -S > /path/to/somefile
載入此前的規(guī)則
ipvsadm -R
ipvsadm -R < /path/to/somefile