Linux下羣集服務簡介&lvs集羣詳解

 Linux下集羣服務簡介&LVS詳解

 Linux下集羣服務簡介:

Cluster

LB:Load Balancing,負載均衡

HA:High Availability ,高可用
HP:High Performance,高性能

負載均衡集羣目的是提供和節點個數成正比的負載能力,這種集羣很適合提供大訪問 量的Web服務。負載均衡集羣往往也具有一定的高可用性特點。

高可用性集羣運行於兩個或多個節點上,目的是在系統出現某些故障的情況下,仍能繼續對外提供服務。高可用性集羣的設計思想就是要最大限度地減少服務中斷時間。這類集羣中比較著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。

      高性能集羣對一種服務而言不具有負載均衡功能,它可以提高整個系統的可靠性,但不能增加負載的能力。當然,高可用性集羣可以運行多種服務,並適當分配在不同節點上,比如節點A提供Oracle服務,同時節點B提供Sybase服務,這也可以看成是某種意義上的負載均衡,不過這是對多種服務的分配而言。 簡單的說,高性能計算(High-Performance Computing)是計算機科的一個分支,它致力於開發超級計算機,研究並行算法和開發相關軟件。
Director:

4層:TCP/IP port(類似DNAT)

應用層:5/7  代理服務器

LVS: Linux Virtual Server(章文嵩)

LVS:ipvsadm/ipvs

1.    定義虛擬服務器

ip1:80  s  rr

2.    ip1:80  -r  server1

ip2:80   -r   server2

HA  高可用性

HA:High Availability ,高可用

一般性:99.9%

關鍵性:99.999%

節點:

2個節點     active -àstandby      active-àactive
RHCS        redhat aluster suite   100個節點     n/m模式
arp 緩存 控制信息     心跳線 (雙絞線 光纖 串行線)

羣集分裂 (split-brain)      

解決方法: stonith(電源交換機,ssh,meatware)fence機器模塊設備

共享存儲:

Ø das : 直接附加存儲  scsi 磁盤櫃

Ø nas : 網絡附加存儲   samba nfs 文件級的共享 效率低

Ø san : 存儲區域網絡   fc-san(光纖) ip-san(iscsi:ip)效率高

羣集文件系統   redhat:gfs2  oracle:ocfs2
故障轉移:

故障轉移域

多個節點:羣集工作票數:quorum   dc

2個節點:仲裁磁盤(100M)心跳線

實現方式:

heartbeat    v1  v2  v3

羣集資源:

羣集ip,服務進程(服務腳本) 存儲

壓力測試工具:ab –c 100 –n 1000 http://172.16.100.1/index.html

 

Linux下集羣服務之LVS詳解:

1.LVS簡介:

LVS是Linux Virtual Server的簡寫,意即Linux虛擬服務器,是一個虛擬的服務器集羣系統。本項目在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟件項目之一。

目前有三種IP負載均衡技術(VS/NAT、VS/TUN和VS/DR);

十種調度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

2.LVS的三種實現技術:

1、        通過NAT實現虛擬服務器(VS/NAT)

特點:

Ø IP DIP必須在同一網段,而且必須爲私有地址

Ø IP爲RIP的default gateway
Ø irector很容易會成爲整個網絡的瓶頸點
Ø IP可支持端口映射

2、        通過直接路由實現虛擬服務器(VS/DR)

特點:

Ø RIP DIP必須在同一網段,都不必是私有地址,

Ø IP直接給CIP回覆,directory只需要處理請求數據,這樣的工作效率將成倍的提高,解決了LVM-NAT的瓶頸問題。不能進行端口映射
Ø IP不支持端口映射。服務必須使用默認的端口
Ø 理員可以直接通過Internet連接到RIP對服務器進行配置。但這裏同時也存在着來自Internet的網絡安全隱患

3、        通過IP隧道實現虛擬服務器(VS/TUN)

特點:

Ø IP DIP 都必須爲公網地址,DIP RIP之間數據通過網絡Internet傳送。

Ø directory和server可以不再同一個網段,可以跨越地區,其他的都和LVM-DR形式的一樣。
Ø 其耗資源,投資較大。

3.LVS的調度算法:

在內核中的連接調度算法上,IPVS已實現了以下十種調度算法:

LVS的算法分爲兩大類:

靜態算法:只是根據算法進行調度並不考慮後端REALSERVER的實際連接情況

* 輪叫調度(Round-Robin Scheduling)(rr)

調度器通過"輪叫"調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。

* 加權輪叫調度(Weighted Round-Robin Scheduling)(wrr)

調度器通過"加權輪叫"調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值

* 目標地址散列調度(Destination Hashing Scheduling)(dh)

"目標地址散列"調度算法根據請求的目標IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

* 源地址散列調度(Source Hashing Scheduling)(sh)

"源地址散列"調度算法根據請求的源IP地址,作爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

動態算法:前端的調度器會根據後端REALSERVER的實際連接情況來分配請求

* 最小連接調度(Least-Connection Scheduling)(LC)

調度器通過"最少連接"調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集羣系統的真實服務器具有相近的系統性能,採用"最小連接"調度算法可以較好地均衡負載。

* 加權最小連接調度(Weighted Least-Connection Scheduling)(WLC) (Default)

在集羣系統中的服務器性能差異較大的情況下,調度器採用"加權最少鏈接"調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。

* 最短預期延時調度(Shortest Expected Delay Scheduling)(SED)
對wlc的改進,在wlc算法的基礎上給權重值加一,主要用來針對某個服務器活動鏈接數值爲0情況
* 不排隊調度(Never Queue Scheduling)(NQ)

基於SED算法的改進,不排隊。Never Queue從不排隊,若第二個要給沒有連接數的服務器,不至於讓另一個服務器特別閒,在權重差別比較大的時候特別有用。

* 基於局部性的最少鏈接(Locality-Based Least Connections Scheduling)(LBLC)

基於本地的最少連接,DH算法的動態算法,會計算緩存上現在處於活動連接的。

* 帶複製的基於局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)(LBLCR)

帶複製的基於本地的最少連接,基於icp協議緩存複製來完成的。

4.IPVS命令用法:

ipvsadm 

-A|E –t|u   vip:port  -s SCHEDULING(方法)

-d -D| -t|u       vip:port

-a | e -t|u  vip:port  -g|i|m  (模式 dr,tun,nat)

ipvsadm -A|E -t|u|f service-address [-s scheduler]

[-p [timeout]] [-M netmask]

ipvsadm -D -t|u|f service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address -r server-address

[-g|i|m] [-w weight] [-x upper] [-y lower]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options]

ipvsadm -Z [-t|u|f service-address]

ipvsadm --set tcp tcpfin udp

ipvsadm --start-daemon state [--mcast-interface interface]

[--syncid syncid]

ipvsadm --stop-daemon state

ipvsadm -h

-A——add-service在內核的虛擬服務器表中添加一條新的虛擬服務器記錄。也就是增加一臺新的虛擬服務器。
-E ——edit-service 編輯內核虛擬服務器表中的一條虛擬服務器記錄。
-D ——delete-service 刪除內核虛擬服務器表中的一條虛擬服務器記錄。
-C ——clear清除內核虛擬服務器表中的所有記錄。
-R
——restore恢復虛擬服務器規則

-S ——save 保存虛擬服務器規則,輸出爲-R 選項可讀的格式
-a ——add-server 在內核虛擬服務器表的一條記錄裏添加一條新的真實服務器記錄。也就是在一個虛擬服務器中增加一臺新的真實服務器
-e ——edit-server 編輯一條虛擬服務器記錄中的某條真實服務器記錄
-d ——delete-server刪除一條虛擬服務器記錄中的某條真實服務器記錄
-L|-l ——list 顯示內核虛擬服務器表

-Z ——zero虛擬服務表計數器清零(清空當前的連接數量等)
——set tcp tcpfin udp 設置連接超時值

——start-daemon啓動同步守護進程。他後面可以是master 或backup,用來說明LVS Router 是master 或是backup.在這個功能上也可以採用keepalived 的VRRP 功能。
——stop-daemon 停止同步守護進程

-h ——help顯示幫助信息其他的選項:-t ——tcp-service service-address 說明虛擬服務器提供的是tcp 的服務[vip:port] or [real-server-ip:port] -u ——udp-service service-address 說明虛擬服務器提供的是udp 的服務[vip:port] or [real-server-ip:port] -f ——fwmark-service fwmark 說明是經過iptables 標記過的服務類型。
-s ——scheduler scheduler 使用的調度算法,有這樣幾個選項rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默認的調度算法是: wlc. -p ——persistent [timeout] 持久穩固的服務。這個選項的意思是來自同一個客戶的多次請求,將被同一臺真實的服務器處理。timeout 的默認值爲300 秒。
-M ——netmask netmask persistent granularity mask

-r ——real-server server-address真實的服務器[Real-Server:port]

-g ——gatewaying指定LVS 的工作模式爲直接路由模式(也是LVS 默認的模式)
-i ——ipip 指定LVS 的工作模式爲隧道模式-m ——masquerading 指定LVS 的工作模式爲NAT 模式-w ——weight weight 真實服務器的權值——mcast-interface interface 指定組播的同步接口-c ——connection 顯示LVS 目前的連接 如:ipvsadm -L -c——timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L ——timeout——daemon 顯示同步守護進程狀態——stats 顯示統計信息——rate 顯示速率信息——sort 對虛擬服務器和真實服務器排序輸出——numeric -n 輸出IP 地址和端口的數字形式

壓力測試工具:ab –c 100 –n 1000 http://172.16.100.1/index.html 

LVS-DR模型

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章