Linux下集羣服務簡介&LVS詳解html
Linux下集羣服務簡介:前端
Clusterlinux
LB:Load Balancing,負載均衡算法
負載均衡集羣目的是提供和節點個數成正比的負載能力,這種集羣很適合提供大訪問 量的Web服務。負載均衡集羣每每也具備必定的高可用性特色。後端
高可用性集羣運行於兩個或多個節點上,目的是在系統出現某些故障的狀況下,仍能繼續對外提供服務。高可用性集羣的設計思想就是要最大限度地減小服務中斷時間。這類集羣中比較著名的有Turbolinux TurboHA、Heartbeat、Kimberlite等。緩存
4層:TCP/IP port(相似DNAT)安全
應用層:5/7 代理服務器服務器
LVS: Linux Virtual Server(章文嵩)網絡
LVS:ipvsadm/ipvsoracle
ip1:80 s rr
2. ip1:80 -r server1
ip2:80 -r server2
HA 高可用性
通常性:99.9%
關鍵性:99.999%
節點:
羣集分裂 (split-brain)
解決方法: stonith(電源交換機,ssh,meatware)fence機器模塊設備
Ø das : 直接附加存儲 scsi 磁盤櫃
Ø nas : 網絡附加存儲 samba nfs 文件級的共享 效率低
Ø san : 存儲區域網絡 fc-san(光纖) ip-san(iscsi:ip)效率高
故障轉移域
多個節點:羣集工做票數:quorum dc
實現方式:
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的三種實現技術:
一、 經過NAT實現虛擬服務器(VS/NAT)
特色:
Ø IP DIP必須在同一網段,並且必須爲私有地址
二、 經過直接路由實現虛擬服務器(VS/DR)
特色:
Ø RIP DIP必須在同一網段,都沒必要是私有地址,
三、 經過IP隧道實現虛擬服務器(VS/TUN)
特色:
Ø IP DIP 都必須爲公網地址,DIP RIP之間數據經過網絡Internet傳送。
3.LVS的調度算法:
在內核中的鏈接調度算法上,IPVS已實現瞭如下十種調度算法:
靜態算法:只是根據算法進行調度並不考慮後端REALSERVER的實際鏈接狀況
調度器經過"輪叫"調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而無論服務器上實際的鏈接數和系統負載。
調度器經過"加權輪叫"調度算法根據真實服務器的不一樣處理能力來調度訪問請求。這樣能夠保證處理能力強的服務器處理更多的訪問流量。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值
"目標地址散列"調度算法根據請求的目標IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。
"源地址散列"調度算法根據請求的源IP地址,做爲散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,不然返回空。
動態算法:前端的調度器會根據後端REALSERVER的實際鏈接狀況來分配請求
調度器經過"最少鏈接"調度算法動態地將網絡請求調度到已創建的連接數最少的服務器上。若是集羣系統的真實服務器具備相近的系統性能,採用"最小鏈接"調度算法能夠較好地均衡負載。
在集羣系統中的服務器性能差別較大的狀況下,調度器採用"加權最少連接"調度算法優化負載均衡性能,具備較高權值的服務器將承受較大比例的活動鏈接負載。調度器能夠自動問詢真實服務器的負載狀況,並動態地調整其權值。
基於SED算法的改進,不排隊。Never Queue從不排隊,若第二個要給沒有鏈接數的服務器,不至於讓另外一個服務器特別閒,在權重差異比較大的時候特別有用。
基於本地的最少鏈接,DH算法的動態算法,會計算緩存上如今處於活動鏈接的。
帶複製的基於本地的最少鏈接,基於icp協議緩存複製來完成的。
4.IPVS命令用法:
-A|E –t|u vip:port -s SCHEDULING(方法)
-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恢復虛擬服務器規則
-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模型