1. 程式人生 > >【Linux】LVS+Keepalived實現高可用負載均衡(Web群集)

【Linux】LVS+Keepalived實現高可用負載均衡(Web群集)

一、Keepalived概述

keepalived是一個類似於layer3,4,5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepalived的作用是檢測web伺服器的狀態,如果有一臺web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的web伺服器從系統中剔除,當web伺服器工作正常後Keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的web伺服器。
Layer3,4&5工作在IP/TCP協議棧的IP層,TCP層,及應用層,原理分別如下:Layer3:Keepalived使用Layer3的方式工作式時,Keepalived會定期向伺服器群中的伺服器傳送一個ICMP的資料包(既我們平時用的Ping程式),如果發現某臺服務的IP地址沒有啟用,Keepalived便報告這臺伺服器失效,並將它從伺服器群中剔除,這種情況的典型例子是某臺伺服器被非法關機。Layer3的方式是以伺服器的IP地址是否有效作為伺服器工作正常與否的標準。Layer4主要以TCP埠的狀態來決定伺服器工作正常與否。
如webserver的服務埠一般是80,如果Keepalived檢測到80埠沒有啟動,則Keepalived將把這臺伺服器從伺服器群中剔除。Layer5:Layer5就是工作在具體的應用層了,比Layer3,Layer4要複雜一點,在網路上佔用的頻寬也要大一些。Keepalived將根據使用者的設定檢查伺服器程式的執行是否正常,如果與使用者的設定不相符,則Keepalived將把伺服器從伺服器群中剔除。

二、LVS概述

LVS叢集採用IP負載均衡技術,屬於IP層的交換(L4)具有很好的吞吐率。排程器分析客戶端到伺服器的IP報頭資訊,將請求均衡地轉移到不同的伺服器上執行,且排程器自動遮蔽掉伺服器的故障,從而將一組伺服器構成一個高效能的、高可用的虛擬伺服器。主要包含四大部分:

負載排程器(loadbalancer),它是整個叢集對外面的前端機,負責將客戶的請求傳送到一組伺服器上執行,而客戶認為服務是來自一個IP地址上的。當客戶請求到達時,排程器只根據負載情況從伺服器池中選出一個伺服器,將該請求轉發到選出的伺服器,並記錄這個排程;

伺服器池(serverpool),是一組真正執行客戶請求的伺服器,執行的任務有WEB、MAIL、FTP和DNS等。伺服器池的結點數目是可變的,當整個系統收到的負載超過目前所有結點的處理能力時,可以在伺服器池中增加伺服器來滿足不斷增長的請求負載

後端儲存(backend storage),它為伺服器池提供一個共享的儲存區,這樣很容易使得伺服器池擁有相同的內容,提供相同的服務


Graphic Monitor是為系統管理員提供整個集群系統的監視器,它可以監視系統中每個結點的狀況。

LVS+keepalived架構圖

測試環境:

名稱 作業系統 IP地址
LVS-Master Centos7.2-x86_64 192.168.137.100
LVS-Backup Centos7.2-x86_64 192.168.137.110
WebserverA Centos7.2x86_64
192.168.137.120
WebserverB Centos7.2x86_64 192.168.137.130
Client Windows7x86_64 192.168.137.210

三、編譯安裝keepalived

1)安裝所需的軟體 (以下是Master操作

# yum install -y openssl-devel popt-devel

2)在LVS叢集環境中應用時,也需要用到ipvsadm管理工具。

# yum install -y ipvsadm

3)正式編譯安裝keepalived

# tar zxf keepalived-1.2.13.tar.gz 
[[email protected] ~]# cd keepalived-1.2.13/
[[email protected] keepalived-1.2.13]# ./configure --prefix=/  && make && make install

4)執行完make install之後會自動生成/etc/init.d/keepalived指令碼檔案,但是需要手動新增為系統服務,如下:

# ls -l /etc/init.d/keepalived 
-rwxr-xr-x. 1 root root 1308 Oct 28 19:28 /etc/init.d/keepalived
[[email protected] keepalived-1.2.13]# chkconfig --add keepalived
[[email protected] keepalived-1.2.13]# chkconfig keepalived on

到這裡我們的keepalived正式安裝完畢

Master安裝完成後backup的安裝和master的安裝過程是一模一樣的,這裡我就不做演示。大家在backup上安裝keepalived的時候可以翻到上面開始安裝backup即可。

四、配置主排程器

安裝完成後主配置檔案目錄:/etc/keepalived/keepalived.conf中,開啟主配置修改如下:

# vim /etc/keepalived/keepalived.conf 

web地址池如下:

2)配置從排程器,其實從和主的主配都差不多一樣,那麼接下來我直接把我主上面的主配置拷貝到從伺服器上然後在做修改就好了。

# scp /etc/keepalived/keepalived.conf [email protected]:/etc/keepalived/keepalived.conf

然後配置從排程器的主配置檔案,修改如下:


 

修改完成後,master和backup的主配置檔案到這裡已經結束了。接下來啟動keepalived,檢視IP地址

以上圖中可以看到vip地址已經承載到了這塊網絡卡上,接下來啟動從伺服器檢視IP地址

以上圖中可以看到從伺服器上面沒有vip地址的,那麼就是正常的,因為它是老二,是一個備用伺服器,啥時候等主伺服器掛了那麼它就會自動繼承主伺服器該做的事情。

3)接下來在主伺服器檢視節點的狀態

# ipvsadm -L -n


從上圖中可以看到,就一個VIP地址,不是要負載後端的兩臺web嗎為什麼沒有,這是因為我們還沒有配置web伺服器,所以接下來安裝httpd服務。這裡我就不做安裝的演示了,相信大家是沒問題的。

為了測試所以我們匯入兩個不同的測試頁並將vip地址新增到網絡卡

webA如下:

WebB如下:

啟動web伺服器後,關閉master&backup&httpA&B的selinux以及防火牆(測試)

關閉selinux以及防火牆後,我們再次檢視主伺服器的節點狀態,檢視是否有webA&B

從上圖中可以看到當前的負載情況,那麼證明我們之前的操作是沒有問題的。

4)訪問webA和webB測試是否可以訪問到我們寫入的測試頁

5)訪問VIP地址不斷重新整理,出來以下介面說明我們的負載已經搞定了

最後我們測試雙擊熱備,在這裡我們先看一下master和backup的ip資訊。

主伺服器ip資訊

從伺服器ip資訊

這時候我們把master的ip地址幹掉,就是故意摧毀掉它,再次檢視backup的ip資訊

此時主伺服器已經宕機,檢視從伺服器IP地址

我們可以看到vip地址成功的讓backup接管,這就是我們前面說的這句話:

如果有一臺web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的伺服器。這就實現了我們的高可用。然後在次測試

目前master處於宕機狀態我們嘗試修復master然後檢視master的IP地址狀態

我們發現master修復完成後VIP地址自動會跑到master伺服器上,從而提供正常的服務,這還是上邊的那句話當web伺服器工作正常後Keepalived自動將web伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工干涉,需要人工做的只是修復故障的web伺服器。

檢視從伺服器IP地址

此時master繼續提供服務

希望對您有所幫助,再見再見

相關推薦

LinuxLVS+Keepalived實現可用負載均衡Web群集

一、Keepalived概述 keepalived是一個類似於layer3,4,5交換機制的軟體,也就是我們平時說的第3層、第4層和第5層交換。Keepalived的作用是檢測web伺服器的狀態,

LVS+Keepalived實現可用負載均衡

lvs+keepalived 高可用 負載均衡 用LVS+Keepalived實現高可用負載均衡,簡單來說就是由LVS提供負載均衡,keepalived通過對rs進行健康檢查、對主備機(director)進行故障自動切換,實現高可用。1. LVS NAT模式配置準備三臺服務器,一臺director, 兩

LVS+Keepalived 實現可用負載均衡叢集

LVS+Keepalived  實現高可用負載均衡叢集     隨著網站業務量的增長,網站的伺服器壓力越來越大?需要負載均衡方案!商業的硬體如 F5 ,Array又太貴,你們又是創業型互聯公司如何有效節約成本,節省不必要的浪費?同時還需要實現商業硬體一樣的高效能高可

利用lvs+keepalived實現可用負載均衡環境的部署

http://wangwq.blog.51cto.com/8711737/1852212 ,執行即可(注意指令碼的VIP,不同的realserver對應不同的VIP) 1 2 3 4 5 6

LVS+Keepalived 實現可用負載均衡

## 前言 在業務量達到一定量的時候,往往單機的服務是會出現瓶頸的。此時最常見的方式就是通過負載均衡來進行橫向擴充套件。其中我們最常用的軟體就是 Nginx。通過其反向代理的能力能夠輕鬆實現負載均衡,當有服務出現異常,也能夠自動剔除。但是負載均衡服務自身也可能出現故障,因此需要引入其他的軟體來實現負載均衡服

LVS-DR+keepalived實現可用負載均衡

介紹 LVS是Linux Virtual Server的簡寫,意即Linux虛擬伺服器,是一個虛擬的伺服器集群系統。本專案在1998年5月由章文嵩博士成立,是中國國內最早出現的自由軟體專案之一。 Keepalived 主要用作RealServer的健康狀態檢查以及Load

nginx+keepalived實現可用負載均衡

其中 centos7.3 9.png IT 配置文件 bsp 是我 add nginx 環境: centos7.3虛擬機A 10.0.3.46 centos7.3虛擬機B 10.0.3.110 虛擬機A和B都需要安裝nginx和keepalived(過程省略,其中keepa

centos7.2 MYSQL雙主+半同步+keepalived實現可用負載均衡

這兩天瞭解了一下mysql的叢集方案,發現有很多解決方案,有複雜的也有簡單的,有興趣的參考下面網址:http://www.cnblogs.com/Kellana/p/6738739.html 這裡,我使用中小企業最常用也是較簡單的方案,用keepalived提供一個vip(

利用saltstack自動化運維工具結合keepalived實現可用負載均衡

在上次實驗“saltstsck自動化運維工具實現負載均衡”的基礎上,也就是在server3端配置實現server4端的httpd和server5端的nginx負載均衡,繼續進行操作實現高可用: (本文所有主機ip均為172.25.17網段,主機名和ip相對應。

Haproxy + Pacemaker 實現可用負載均衡

Pacemaker server1 和 server2 均安裝pacemaker 和 corosync server1 和 server2 作相同配置 [root@server1 ~]# yum install -y pacemaker coros

LVS-keepalived實現可用

keepalived前言: LVS是基於內核實現負載均衡的,在小編的上一篇演示中我們已經實現了LVS的NAT模式和DR模式,但是企業中只有負載均衡是不行的,如果一臺負載均衡器楚翔了故障,那麽就會導致整個集群的不可用,所以這裏結合LVS我們通過keepalived這個神器來實現高可用。 高可用:通常來描

LVS+Keepalived實現可用

LVS;KeepaliveLVS可以實現負載均衡,但是不能夠進行健康檢查,比如一個rs出現故障,LVS 仍然會把請求轉發給故障的rs服務器,這樣就會導致請求的無效性。keepalive 軟件可以進行健康檢查,而且能同時實現 LVS 的高可用性,解決 LVS 單點故障的問題,其實 keepalive 就是為 L

keepalived+lvs實現可用負載均衡集群

keepalived+lvs實現高可用LVS實戰篇第1章 環境準備1.1 系統環境1.1.1 系統版本[root@lb01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@lb01 ~]# uname -r 2.6.32-696.el6

Linux企業實戰-搭建可用WEB群集全過程

大家好,今天給大家帶來web高可用,其中服務包括(Nginx,PHP,MySQL,Memcached,zabbix,keepalived以及Xcahce外掛等; 其中包含:               Nginx (Nginx的安裝及Nginx反向代理配置,對Ngin

lvs+keepalived實現可用群集配置詳解

https://www.linuxzen.com/lvskeepalivedshi-xian-gao-ke-yong-qun-ji-pei-zhi-xiang-jie.html lvs是一個開源的軟體,由畢業於國防科技大學的章文嵩博士於1998年5月創立(中國人的專案

Keepalived+Nginx實現可用負載均衡集群

連接 靜態 adf -1 rip mail fff hostname dex 一 環境介紹 1.操作系統CentOS Linux release 7.2.1511 (Core) 2.服務keepalived+lvs雙主高可用負載均衡集群及LAMP應用keepalived-1

docker下用keepalived+Haproxy實現可用負載均衡叢集

先記錄下遇到的坑,避免之後忘了; 花時間最多去解決的一個題是:在docker下啟動haproxy服務後在這個docker服務內安裝keepalived無法ping通的問題,雖然最後也是莫名其妙就好了,但是加強了不少對docker的理解和還需深入學習的地方。 為什麼要用

keepalived+httpd+tomcat實現可用負載均衡

一、環境 centos 6.5 keepalived keepalived-1.2.19.tar.gz httpd httpd-2.4.12.tar.gz tomcat apache-tomcat-7.0.63.tar.gz 二、部署 安裝 http

Keepalived+Haproxy可用負載均衡群集

刷新 rfi opened width col vim router 一個 .com 介紹 HAProxy提供高可用性、負載均衡以及基於TCP和HTTP應用的代理,支持虛擬主機,它是免費、快速並且可靠的一種解決方案。HAProxy特別適用於那些負載特大的web站點,

HAProxy+Varnish+LNMP實現可用負載均衡動靜分離集群部署

else 應用服務器 bash == 開機啟動 多少 heal 啟用 4.0 轉自http://bbs.hfteams.com/forum.php?mod=viewthread&tid=11&extra=page%3D1 HAProxy+Varnish+LN