天天看點

LVS基本概念雜記

HA:

centos6.4 之後引入keepalived

LB常用的解決方案:

F5 BIG-IP

思傑公司的 Netscaler

A10 

array

linux :LVS

linux virtual server

ipvs ---netfilter

ipvs:架構,需要依賴于規則完成轉發

lvs工作在核心中實作的,不到達使用者空間;client請求到達vritual server後進入input鍊,input鍊基于ipvs轉發規則,做postouting到後端指定伺服器,

LVS:四層交換、四層路由

Cip---->Vip---->Dip---->Rip

lvs類型:

NAT

DR

TUN

FULLNAT(需要給核心打更新檔,原生态的不支援)

LVS的nat類型相當于DNAT,IP改為背景real server中的1台

LVS NAT的特性:

1、real server 應該使用私有位址(但不是必須的)

2、real server 的網關必須指向DIP.

3、Rip和Dip 必須在同一網段内;

4、請求和相應的保溫都得經過Director,請求封包由director完成後目标位址轉換,響應封包由Director完成源位址轉換.

    5、支援端口映射.

    6、RS可以使用任意支援叢集服務的OS.

LVS DR的特性:

1、讓前端路由将請求發往VIP,隻能是Director上都得VIP;

解決方案:

靜态位址綁定.

未必有路由器的配置權限;

Director調用時靜态位址綁定将難以使用:

arptables

修改Linux核心參數,将RS上的VIp配置為lo接口的别名,限制Linux僅對對應接口的ARP請求做響應.

LVS DR類型的特性:

1、RS可以使用私有位址;但也可以使用公網位址,此時可以直接通過網際網路連入RS以實作配置、監控等。

2、RS的網關一定不能指向DIP。

3、RS跟Directory要在同一實體網絡内。(不能由路由器分割)

4、請求封包經過Directory,但響應封包一定不經過Directory。

5、不支援端口映射.(請求哪個端口就用哪個端口響應)

6、RS可以使用大多數的作業系統.

LVS TUN類型:IP隧道

1、RIP/DIP/VIP都得是公網位址。

2、RS的網關不會指向也不可能指向DIP。

3、請求封包經過Directory,但響應封包一定不經過Directory:

4、不支援端口映射;

5、RS的OS必須得支援隧道功能:

LVS的排程算法:10種 

靜态方法:僅根據算法本身進行排程

rr:Round Robin

wrr:Weighted RR

sh:source hashingh

sh:destination hashing

動态方法:根據算法及RS目前負載狀況

lc:Least Contenction

Overhead =Active *256 + Inactive

結果最小者勝出;

wlc :Weighted LC

Overhead = (Active*256+ Inactive)/weight

sed :Short Expect Delay

Overhead=(Active+1)*256/weight

nq : Nerver Queue

Session持久機制:

1、session綁定:始終将同一個請求者的連接配接定向至同一個RS(第一次請求時仍由排程方法選擇);沒有容錯能力,有損均衡效果。

2、session複制:在RS之間同步session,是以,每個RS叢集中所有的session;對于大規模叢集環境不适用;

3、session伺服器:利用單獨部署的伺服器來統一管理session;

#檢視核心支援哪些ipvs的選項

grep -i "ipvs" /boot/config-2.6.32-431.el6.x86_64

ipvsadm 指令參數:

-A :添加一個叢集服務

-t : tcp

-u : udp

-f : forewall mark 通常用于将兩個或以上的服務綁定為一個服務進行處理時使用.

service-address:

-t IP:port

-u IP:port

-f firewall_mark

 -s 排程方法,預設為wlc

 -E 修改叢集服務

 -p timeout : 逾時時間

RS相關

-a :向指定的CS中添加RS

-r : 指定RS,可以包含IP:port

LVS類型:

-g: Gateway ,DR

-i:ipip,TUN

-m:位址僞裝

指定RS權重:

- w

    -e :修改指定RS的屬性

    -d: 從指定的叢集服務中删除RS

    -D:删除指定的叢集服務

    -C 清空所有的叢集服務

 儲存規則:(使用輸出重定向)

 ipvsadm-save = ipvsadm -S

 載入指定的規則:(使用輸入重定向)

 ipvsadm-restore = ipvsadm -R

檢視ipcs規則:

-L 

-n :數字顯示ip位址

-c:顯示連接配接數相關資訊

--statts: 顯示統計資料

--rate:速率

--exact:顯示統計資料的精确值

-Z:計數器清零

本文轉自青衫解衣 51CTO部落格,原文連結:http://blog.51cto.com/215687833/1942183