Linux Cluser (LB, HA)

[TOC]

reference: 馬哥教育視頻

一. 理論

1. 系統(tǒng)擴(kuò)展的方式

scale up: 向上擴(kuò)展 (換主機(jī))

scale out: 向外擴(kuò)展 (加主機(jī))

硬件價(jià)格翻倍, 然而性能卻不一定是翻倍的, 顯然是加主機(jī)更合理一點(diǎn)

2. 集群類型

  • LB: 負(fù)載均衡 load banlancing

  • HA: 高可用性 high availability

? availability: 90%, 95%, 99%, 99.5%, 99.9%, 99.99%, 99.999%

  • HP: 高性能 high performancing

  • 大規(guī)模并行處理集群

3. 對(duì)于一個(gè)穩(wěn)定的系統(tǒng)來(lái)講, 需要注意以下四點(diǎn):

  • 可擴(kuò)展性
  • 可用性
  • 容量 ( 容納量)
  • 性能 (單位時(shí)間內(nèi)的通過(guò)量 --> 響應(yīng)時(shí)間)

4. 系統(tǒng)運(yùn)維的技術(shù)方向:

可用 --> 標(biāo)準(zhǔn)化 --> 自動(dòng)化

5. 構(gòu)建高擴(kuò)展性系統(tǒng)的重要原則:

在系統(tǒng)內(nèi)部盡量避免串行化和交互

6. GSLB與SLB

  • Global Service Load Balancing (全局)
  • Service Load Balancing (本地)

7. 總結(jié)

  • 分層
  • 分割
  • 分布式
    • 分布式應(yīng)用
    • 分布式靜態(tài)資源
    • 分布式數(shù)據(jù)和存儲(chǔ)
    • 分布式計(jì)算 (hadoop)

8. LB集群的實(shí)現(xiàn)

硬件:

  • F5, BIG-IP
  • Citrix --> NetScaler
  • A10 --> A10
  • Array
  • Redware

軟件:

  • lvs
  • haproxy
  • nginx
  • ats (apache traffic server)
  • perlbal

9. 基于工作的協(xié)議層次劃分:

傳輸層:

? lvs, haproxy (mode tcp)

應(yīng)用層:

? haproxy, nginx, ats, perlbal

二. LVS

1. lvs

  • linux virtual server

  • l4: 四層交換, 四層路由

  • 根據(jù)報(bào)文的目標(biāo)ip和port將其轉(zhuǎn)發(fā)至后端主機(jī)集群中的某一臺(tái)主機(jī)(根據(jù)挑選算法)

netfilter:

? PREROUTING --> INPUT (lvs在這一條鏈上做了操作, 強(qiáng)行轉(zhuǎn)發(fā)至POSTROUTING)

? PREROUTING --> FORWARD --> POSTROUTING

? OUTPUT --> POSTROUTING

2. lvs具體實(shí)現(xiàn)

ipvsadm/ipvs

ipvsadm:

? 用戶空間的命令行工具, 用于管理集群服務(wù)

ipvs:

? 工作在內(nèi)核netfilter INPUT鉤子上

如何驗(yàn)證內(nèi)核是否支持lvs功能?

? grep -i -A 10 'ipvs' /boot/config*

支持TCP, UDP, AH, ESP, AH_ESP, SCTP等諸多協(xié)議

3. lvs arch:

? 調(diào)度器: director, dispatcher, balancer

? RS: real server

? 一些簡(jiǎn)稱:

? client ip: CIP

? director virtual ip: VIP

? director ip: DIP

? real server ip: RIP

4. lvs type

  • lvs-nat
  • lvs-tun (ip tunneliing)
  • lvs-fullnat (keepalived)
  • lvs-dr (direct routing)

5. lvs-nat

? 多目標(biāo)的DNAT(iptables)

? 通過(guò)修改請(qǐng)求報(bào)文的ip地址(同時(shí)可能會(huì)修改目標(biāo)端口)至挑選出來(lái)的某real server的RIP地址實(shí)現(xiàn)轉(zhuǎn)發(fā)

? RIP和DIP必須在同一網(wǎng)段

? (1) RS應(yīng)和DIP使用私有地址, 且RS的網(wǎng)關(guān)要指向DIP

? (2) 請(qǐng)求和相應(yīng)的報(bào)文均要經(jīng)由director轉(zhuǎn)發(fā), 在較高負(fù)載均衡中, director可能成為瓶頸

? (3) 支持端口映射

? (4) RS可使用任意OS

? (5) RS的RIP和director的DIP必須在同一網(wǎng)絡(luò)

6. lvs-dr

? direct routing (director與RS必須在同一物理網(wǎng)絡(luò))

? 通過(guò)修改請(qǐng)求報(bào)文的目標(biāo)MAC地址進(jìn)行轉(zhuǎn)發(fā)

? (1) 保證前端路由器將目標(biāo)ip為VIP的請(qǐng)求報(bào)文發(fā)送給director

? 解決方案:

? 靜態(tài)綁定

? arptables

? 修改RS主機(jī)內(nèi)核參數(shù)

? (2) RS的RIP可使用私網(wǎng)或者公網(wǎng)地址

? (3) RS和director必須在同一物理網(wǎng)絡(luò)

? (4) 請(qǐng)求報(bào)文經(jīng)由director調(diào)度, 但響應(yīng)報(bào)文一定不經(jīng)由director

? (5) 不支持端口映射

? (6) RS可以使大多是OS

? (7) RS的網(wǎng)關(guān)不能指向DIP

7. lvs-tun

? 不修改請(qǐng)求報(bào)文的首部, 而是在原有的ip首部 (cip -> vip)之外, 再封裝一個(gè)ip首部 (dip -> rip)

? (1) RIP, DIP, VIP全是公網(wǎng)地址

? (2) RS的網(wǎng)關(guān)不能指向DIP

? (3) 請(qǐng)求報(bào)文必須經(jīng)由director調(diào)度, 但響應(yīng)報(bào)文一定不經(jīng)由director

? (4) 不支持端口映射

? (5) RS的OS必須支持隧道功能

8. lvs-fullnat

? director通過(guò)同時(shí)修改請(qǐng)求報(bào)文的目標(biāo)地址和源地址進(jìn)行轉(zhuǎn)發(fā)

? (1) VIP: 公網(wǎng)地址. RIP和DIP: 私網(wǎng)地址, 且兩者必須在同一網(wǎng)絡(luò)中

? (2) RS接收到請(qǐng)求報(bào)文的源地址為DIP, 因此要相應(yīng)給DIP

? (3) 請(qǐng)求和相應(yīng)都經(jīng)過(guò)director

? (4) 支持端口映射

? (5) RS可使用任意OS

9. http (stateless)

? session保持:

? session綁定:

? source ip hash

? cookie

? session集群(復(fù)制)

? session服務(wù)器 (共享存儲(chǔ), 持久存儲(chǔ))

10. lvs scheduler

靜態(tài)方法:

? 僅根據(jù)算法本身進(jìn)行調(diào)度

  • RR: round robin 輪循
  • WRR: weight round robin 加權(quán)輪循
  • SH: source hash 實(shí)現(xiàn)session保持的機(jī)制(有損負(fù)載均衡)
    • 將來(lái)自同一ip的請(qǐng)求始終調(diào)度至同一RS
  • DH: destination hash
    • 將對(duì)同一個(gè)目標(biāo)的請(qǐng)求始終發(fā)送至同一個(gè)RS

動(dòng)態(tài)方法:

? 根據(jù)算法及RS當(dāng)前的負(fù)載狀態(tài)進(jìn)行調(diào)度

? 當(dāng)前負(fù)載: overhead

  • LC: least connection
    • overhead = active * 256 + inactive
  • WLC: weight least connection
    • overhead = (active * 256 + inactive) / weight
    • weight: 當(dāng)前服務(wù)器的權(quán)重
  • SED: shorted expection delay 最短預(yù)期延遲
    • overhead = (active + 1) * 256 / weight
  • NQ: never queue
    • SED算法的改進(jìn), 類似于 RR + SED
  • LBLC: locality-based LC 基于本地的最少連接
    • 動(dòng)態(tài)的DH算法, 正向代理情況下的cache server調(diào)度
  • LBLCR: locality-based least connection with replication
    • 帶復(fù)制的LBLC算法

11. ipvsadm集群服務(wù):

ipvsadm作用:

  • 管理集群服務(wù)

  • 管理集群中的RS

(1) 一個(gè)ipvs主機(jī)可同時(shí)定義多個(gè)cluser service

? tcp, udp

(2) 一個(gè)cluser service上至少應(yīng)該有一個(gè)real server

? 定義時(shí): 指明lvs-type以及l(fā)vs scheduler

一些基本概念以及命令中的用法:

service-address 集群服務(wù)地址

? tcp: -t ip:port

? udp: -u ip:port

? fwm: -f mark (用作防火墻標(biāo)記)

server-address RS地址

? ip[:port]

lvs-type:

? -g: gateway, dr (默認(rèn))

? -i: ipip, tun

? -m: masquerade, nat

-s scheduler

? 默認(rèn)為WLC

FWM:

# 將兩種集群定義成一個(gè)進(jìn)行調(diào)度(功用: 將共享一組RS的集群服務(wù)器統(tǒng)一進(jìn)行定義):
    # OSTROUTING:
        # -j MARK --set-mark 10
    # ipvs:
        # -A -f 10

# 示例: 在director的netfilter的mangle表的PREROUTING定義"打標(biāo)"規(guī)則
# 先打標(biāo)記:
iptables -t mangle -A PREROUTING -d 192.168.0.10 -p tcp --dport 80 -j MARK --set-mark 10
    # 上面的192.168.0.1為VIP
iptables -t mangle -L -n
# 再定義集群服務(wù):
ipvsadm -A -f 10 -s rr
ipvsadm -a -f 10 -r 172.16.100.21 -g
ipvsadm -a -f 10 -r 172.16.100.22 -g
# 最后:
iptables -t mangle -A PREROUTING -d 192.168.0.10 -p tcp --dport 22 -j MARK --set-mark 10

管理集群服務(wù):

ipvsadm -A|E -t|u|f service-address [-s scheduler]
ipvsadm -D -t|u|f service-address
ipvsadm -C # 清空集群服務(wù)和集群服務(wù)中的RS
ipvsadm -L|l [options]

管理集群服務(wù)中的RS:

ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
ipvsadm -d -t|u|f service-address -r server-address
ipvsadm -C # 清空集群服務(wù)和集群服務(wù)中的RS
ipvsadm -L|l [options]

保存和重載:

ipvsadm -S [-n]
ipvsadm -R

置零計(jì)數(shù)器:

ipvsadm -Z [-t|u|f service-address]
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末酷窥,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子霉猛,更是在濱河造成了極大的恐慌逻谦,老刑警劉巖中符,帶你破解...
    沈念sama閱讀 218,036評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡膊升,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門谭企,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)廓译,“玉大人,你說(shuō)我怎么就攤上這事债查》乔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,411評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵盹廷,是天一觀的道長(zhǎng)征绸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)俄占,這世上最難降的妖魔是什么管怠? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,622評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮缸榄,結(jié)果婚禮上渤弛,老公的妹妹穿的比我還像新娘。我一直安慰自己甚带,他們只是感情好她肯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著欲低,像睡著了一般辕宏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砾莱,一...
    開(kāi)封第一講書(shū)人閱讀 51,521評(píng)論 1 304
  • 那天瑞筐,我揣著相機(jī)與錄音,去河邊找鬼腊瑟。 笑死聚假,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的闰非。 我是一名探鬼主播膘格,決...
    沈念sama閱讀 40,288評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼财松!你這毒婦竟也來(lái)了瘪贱?” 一聲冷哼從身側(cè)響起纱控,我...
    開(kāi)封第一講書(shū)人閱讀 39,200評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎菜秦,沒(méi)想到半個(gè)月后甜害,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,644評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡球昨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評(píng)論 3 336
  • 正文 我和宋清朗相戀三年尔店,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片主慰。...
    茶點(diǎn)故事閱讀 39,953評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嚣州,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出共螺,到底是詐尸還是另有隱情该肴,我是刑警寧澤,帶...
    沈念sama閱讀 35,673評(píng)論 5 346
  • 正文 年R本政府宣布璃谨,位于F島的核電站沙庐,受9級(jí)特大地震影響鲤妥,放射性物質(zhì)發(fā)生泄漏佳吞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評(píng)論 3 329
  • 文/蒙蒙 一棉安、第九天 我趴在偏房一處隱蔽的房頂上張望底扳。 院中可真熱鬧捻勉,春花似錦寥闪、人聲如沸如蚜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,889評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)碳锈。三九已至寓搬,卻和暖如春杂彭,著一層夾襖步出監(jiān)牢的瞬間滥嘴,已是汗流浹背木蹬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,011評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留若皱,地道東北人镊叁。 一個(gè)月前我還...
    沈念sama閱讀 48,119評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像走触,于是被迫代替她去往敵國(guó)和親晦譬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • “自制力還是源于動(dòng)力互广,當(dāng)她心里充滿自信敛腌,有足夠的信心去完成她的學(xué)業(yè)的時(shí)候,就不會(huì)懈怠學(xué)習(xí)了。你女兒已經(jīng)很不...
    靜等花開(kāi)之心路閱讀 459評(píng)論 7 7
  • “快起來(lái)了我親愛(ài)的阿金莎像樊,今天該是我上學(xué)的日子了夸溶,快起來(lái)好嗎!凶硅?”芬多里在她的床邊叫著缝裁。 要說(shuō)她最討厭兒子...
    張靈芝Celine閱讀 545評(píng)論 1 1
  • 嘖嘖嘖嘖嘖哦閱讀 432評(píng)論 2 5
  • Scrapy終端是一個(gè)交互終端,我們可以在未啟動(dòng)spider的情況下嘗試及調(diào)試代碼足绅,也可以用來(lái)測(cè)試XPath或CS...
    小袋鼠cf閱讀 420評(píng)論 0 0