LVS +Keepalived 高可用群集

目錄

  • 前言
    • 一. Keepalived 雙機熱備基礎知識
      • 1. Keepalived 概述及安裝
        • (1)Keepalived 的熱備方式
        • (2)Keepalived 的安裝與服務控制
      • 2. 使用Keepalived 實現雙機熱備
        • (1)主服務器的配置
        • (2)備用服務器的配置
        • (3)測試雙機熱備功能
          • ①:連通性測試
          • ②:Web訪問測試
          • ③:查看日志記錄
    • 二. 使用 Keepalived 實現雙機熱備
      • 1. 基礎環境配置
      • 2. 配置主調度器
      • 3. 配置從調度器
      • 4. 配置 Web 節點服務器
      • 5. 測試 LVS+keepalived 高可用群集

前言

在這個高度信息化的 IT 時代,企業的生產系統、業務運營、銷售和支持,以及日常管理等環節越來越依賴于計算機信息和服務,對高可用(HA)技術的應用需求不斷提高,以便提供持續的、不間斷的計算機系統或網絡服務。本章將學習如何使用 Keepalived 實現雙機熱備,包括針對 IP 地址的故障切換,以及在LVS 高可用群集中的熱備應用

一. Keepalived 雙機熱備基礎知識

Keepalived 起初是專門針對 LVS 設計的一款強大的輔助工具,主要用來提供故障切換(Failover)和健康檢査(Health Checking)功能–判斷 LVS 負載調度器、節點服務器的可用性,當 master 主機出現故障及時切換到 backup節點保證業務正常,當 master 故障主機恢復后將其重新加入群集并且業務重新切換回 master 節點

1. Keepalived 概述及安裝

Keepalived 的官方網站位于 http://www.keepalived.org/,本章將以 YUM方式講解 Keepalived 的安裝、配置和使用過程。在非 LVS 群集環境中使用時,Keepalived 也可以作為熱備軟件使用

(1)Keepalived 的熱備方式

Keepalived 采用 VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協議)熱備份協議,以軟件的方式實現Linux 服務器的多機熱備功能。VRRP是針對路由器的一種備份解決方案–由多臺路由器組成一個熱備組,通過共用的虛擬IP地址對外提供服務;每個熱備組內同一時刻只有一臺主路由器提供服務,其他路由器處于冗余狀態。若當前在線的路由器失效,則其他路由器會自動接替(優先級決定接替順序)虛擬IP地址,以繼續提供服務

熱備組內的每臺路由器都可能成為主路由器,虛擬路由器的IP地址(VIP)可以在熱備組內的路由器之間進行轉移,所以也稱為漂移IP地址。使用Keepalived 時,漂移地址的實現不需要手動建立虛接口配置文件(如 ens33 :0),而是由 Keepalived 根據配置文件自動管理

在這里插入圖片描述

操作系統配置IP服務
OpenEuler242C4G192.168.10.101Keepalived,apache
OpenEuler242C4G192.168.10.102Keepalived,apache
(2)Keepalived 的安裝與服務控制

在0penEuler24系統中,使用DNF方式安裝keepalived.x86642.2.8-1.oe2403sp1,會自動安裝 Keepalived 所需的軟件包。除此之外,在 LVS群集環境中應用時,也需要用到ipvsadm 管理工具

[root@localhost ~]# dnf install -y keepalived ipvsadm 

2. 使用Keepalived 實現雙機熱備

基于 VRRP的熱備方式,Keepalived 可以用作服務器的故障切換,每個熱備組可以有 多臺服務器–當然,最常用的就是雙機熱備了。在這種雙機熱備方案中,故障切換主要針對虛擬IP地址的漂移來實現,因此能夠適用于各種應用服務器(不管是 Web、FTP、Mail,還是 SSH、DNS·)
本小節將通過一個簡單的案例來說明 Keepalived 雙機熱備的配置方法。其中,主、備服務器的IP地址分別為192.168.10.101和 192.168.10.102,基于漂移地址 192.168.10.100 提供 Web 服務主、備服務器中都需要安裝 Keepalived,使用 YUM 方式安裝 httpd 提供Web 服務。下面僅講解與 Keepalived 相關的配置及測試過程

在這里插入圖片描述

(1)主服務器的配置

Keepalived 服務的配置目錄位于/etc/keepalived/。其中keepalived.conf 是主配置文件。另外包括一個子目錄 samples/,提供了許多配置樣例作為參考

在 Keepalived 的配置文件中,使用“global defs {…}”區段指定全局參數,使用“vrrp instance 實例名稱{…}”區段指定 VRRP 熱備參數,注釋文字以“!”符號開頭

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/keepalived
[root@localhost keepalived]# cp keepalived.conf.sample keepalived.conf
[root@localhost keepalived]# vim keepalived.confsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_R1vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_instance VI_1 {state MASTERinterface ens160virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100}
}

確認上述配置無誤,然后啟動 Keepalived 服務。實際狀態為 MASTER 的主服務器將為 ens33 接口自動添加 VIP 地址,通過 ip 命令可以查看。注意:ifconfig 命令看不到

[root@localhost ~]# systemctl restart keepalived
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:39:a6:11 brd ff:ff:ff:ff:ff:ffinet 192.168.10.101/24 brd 192.168.10.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet 192.168.10.100/32 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe39:a611/64 scope link noprefixroute valid_lft forever preferred_lft forever
(2)備用服務器的配置

在同一個 Keepalived 熱備組內,所有服務器的 Keepalived 配置文件基本相同,包括虛擬路由器的 ID 號、認證信息、漂移地址、心跳頻率等。不同之處主要在于路由器名稱、熱備狀態、優先級。

  • 路由器名稱(router id):建議為每個參與熱備的服務器指定不同的名稱
  • 熱備狀態(state):至少應有一臺主服務器,將狀態設為MASTER;可以有多臺備用的服務器,將狀態設為BACKUP
  • 優先級(priority):數值越大則取得 VIP控制權的優先級越高,因此主服務器的優先級應設為最高;其他備用服務器的優先級可依次遞減,但不要相同,以免在爭奪 VIP 控制權時發生沖突

配置備用服務器(可以有多臺)時,可以參考主服務器的keepalived.conf配置文件內容,只需修改路由器名稱、熱備狀態、優先級

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/keepalived/[root@bogon keepalived]# cp keepalived.conf.sample keepalived.conf
[root@localhost keepalived]# vim keepalived.confnotification_email_from Alexandre.Cassen@firewall.locsmtp_server 192.168.200.1smtp_connect_timeout 30router_id LVS_R2vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}
vrrp_instance VI_1 {state BACKUPinterface ens160virtual_router_id 51priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100

確認配置無誤,一樣需要啟動Keepalived 服務。此時主服務器仍然在線,VIP地址實際上仍然由主服務器控制,其他服務器處于備用狀態。因此,在備用服務器中將不會為 ens33 接口添加 VIP 地址

[root@localhost ~]# systemctl restart keepalived
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host noprefixroute valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000link/ether 00:0c:29:0b:df:52 brd ff:ff:ff:ff:ff:ffinet 192.168.10.102/24 brd 192.168.10.255 scope global noprefixroute ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fe0b:df52/64 scope link noprefixroute valid_lft forever preferred_lft forever
(3)測試雙機熱備功能

Keepalived 的日志消息保存在/var/log/messages 文件中,在測試主、備故障自動切換功能時,可以跟蹤此日志文件來觀察熱備狀態的變化。以針對連通性和web 服務的測試為例

①:連通性測試

在客戶機中執行“ping -t 192.168.10.100”命令,能夠正常、持續 ping 通,根據以下操作繼續觀察測試結果
① 停止啟用主服務器的 Keepalived 服務,發現 ping 測試只中斷了 1或2個包即恢復正常,說明已有其他服務器接替 VIP地址,并及時響應客戶機請求
② 重新啟用主服務器的 Keepalived 服務,發現 ping 測試再次中斷1或2個包即恢復正常,說明主服務器已恢復正常,并奪回VIP地址的控制權

重啟主服務器的keepalived,測試連通性

在這里插入圖片描述

在這里插入圖片描述

②:Web訪問測試

在 keepalived 運行的主機上啟動 nginx 服務并寫入不通的測試頁面內容

在客戶機中訪問 http://192.168.10.100/,將看到由主服務器 192.168.10.101提供的網頁文檔。① 停止啟用主服務器的 Keepalived 服務,再次訪問上述 Web 服務,將看到由備用服務器 192.168.10.102 提供的網頁文檔,說明 VIP 地址已切換至備用服務器
② 重新啟用主服務器的 Keepalived 服務,再次訪問上述 Web 服務,將看到重新由主服
務器 192.168.10.101 提供的網頁文檔,說明主服務器已重新奪取 VIP 地址

(1)安裝兩臺測試網站

在這里插入圖片描述

在這里插入圖片描述

(2)為兩臺網站創建測試文件

在這里插入圖片描述

在這里插入圖片描述

(3)關閉主keepalived,測試環游地址測試文件為web2

在這里插入圖片描述

在這里插入圖片描述

③:查看日志記錄

在執行主、備服務器故障切換的過程中,分別觀察各自的/var/log/messages日志文件,可以看到 MASTER、SLAVE 狀態的遷移記錄
① 主服務器中,Keepalived 服務狀態先變為“stop”,移除 VIP 地址,恢復后重新變為 MASTER

② 備用服務器中,狀態先切換為MASTER,待主服務器恢復后再交回控制權

通過上述測試過程,可以發現雙機熱備已經正常。客戶機只要通過VIP地址就可以訪問服務器所提供的 Web 等應用。其中,任何一臺服務器失效,另一臺服務器將會立即接替服務,從而實現高可用性。實際應用時,注意主、備服務器所提供的 Web 服務內容要保持一致

在這里插入圖片描述

二. 使用 Keepalived 實現雙機熱備

Keepalived 的設計目標是構建高可用的 LVS 負載均衡群集,可以調用ipvsadm 工具來創建虛擬服務器、管理服務器池,而不僅僅用作雙機熱備。使用Keepalived 構建 LVS 群集更加簡便易用,主要優勢體現在:對 LVS 負載調度器實現熱備切換,提高可用性;對服務器池中的節點進行健康檢查,自動移除失效節點,恢復后再重新加入

在基于 LVS+Keepalived 實現的 LVS 群集結構中,至少包括兩臺熱備的負載調度器,三臺以上的節點服務器。本節將以 DR模式的 LVS 群集為基礎,增加一臺從負載調度器,使用 Keepalived 來實現主、從調度器的熱備,從而構建兼有負載均衡、高可用兩種能力的 LVS 網站群集平臺

在這里插入圖片描述

使用 Keepalived 構建 LVS 群集時,也需要用到 ipvsadm 管理工具。但大部分工作會由Keepalived 自動完成,不需要手動執行 ipvsadm(除了查看和監控群集以外)。下面主要講解 Keepalived 的服務器池設置,關于 NFS 共享服務的配置、Keepalived 的熱備配置等在此不再詳細闡述

資源列表

操作系統配置主機名IP服務
OpenEuler242C4Glb01192.168.10.101Keepalived,ipvsadm
OpenEuler242C4Glb02192.168.10.102Keepalived,ipvsadm
OpenEuler242C4Gweb01192.168.10.103apache
OpenEuler242C4Gweb02192.168.10.104apache
OpenEuler242C4Gnfs-server192.168.10.105rpcbind,nfs-utils

1. 基礎環境配置

四臺服務器關閉防火墻,Selinux安全機制,并設為開機自關閉

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service".
Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service".
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux

2. 配置主調度器

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# ls
keepalived.conf.sample
[root@localhost keepalived]# cp keepalived.conf.sample keepalived.conf
[root@localhost keepalived]# vim keepalived.conf

①:全局配置、熱備配置

在這里插入圖片描述

②:Web 服務器池配置

在這里插入圖片描述
在這里插入圖片描述

③:重啟服務,測試環游地址

在這里插入圖片描述

3. 配置從調度器

[root@localhost ~]# cd /etc/keepalived/
[root@localhost keepalived]# ls
keepalived.conf.sample
[root@localhost keepalived]# cp keepalived.conf.sample keepalived.conf
[root@localhost keepalived]# vim keepalived.conf

①:全局配置、熱備配置

在這里插入圖片描述

②:Web 服務器池配置

在這里插入圖片描述

③:重啟服務,測試環游地址

在這里插入圖片描述

4. 配置 Web 節點服務器

①:安裝web服務器

在這里插入圖片描述

②:為網站制作測試網頁

在這里插入圖片描述

在這里插入圖片描述

③:為網站設置VIP地址

在這里插入圖片描述

④:添加ARP參數

在這里插入圖片描述
在這里插入圖片描述

⑤:檢測環回地址

在這里插入圖片描述

在這里插入圖片描述

5. 測試 LVS+keepalived 高可用群集

打開客戶端測試

在這里插入圖片描述

掛起keepalived01和103網站,測試高可用

在這里插入圖片描述

在這里插入圖片描述

;,;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/84405.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/84405.shtml
英文地址,請注明出處:http://en.pswp.cn/web/84405.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Go語言基礎】對齊邊界與內存填充

文章目錄 一、內存對齊的核心概念二、Go語言的內存對齊規則三、內存對齊示例示例1&#xff1a;字段順序影響對齊示例2&#xff1a;指針與切片的對齊 四、如何查看內存對齊&#xff1f;五、內存對齊的優化建議六、總結&#xff1a;內存對齊的核心要點 在計算機科學中&#xff0c…

網絡核心 - CNI、Service 與 Ingress/Gateway API 解析

網絡核心 - CNI、Service 與 Ingress/Gateway API 解析 Kubernetes 的強大之處在于它極大地簡化了容器化應用的部署和管理,但其網絡模型的靈活性和復雜性也常常讓初學者感到困惑。作為 SRE,我們需要撥開迷霧,理解流量在 K8s 集群內部以及進出集群時,到底是如何流轉的。 Po…

20.jsBridge多頁面交互與原生事件監聽沖突問題

一、問題描述 ? 安卓原生頁面調起 H5A 頁面&#xff1b; ? H5A 頁面跳轉到 H5B 頁面&#xff1b; ? 在 H5B 頁面點擊“附件上傳”&#xff0c;通過 JS Bridge 調用安卓的附件上傳功能&#xff0c;彈出附件彈窗&#xff1b; ? 然后 返回 到 H5A 頁面&#xff0c;附件上傳彈窗…

產品經理的自我救贖

思考自己的商業模式 很多人可能會奇怪&#xff0c;作為一個產品經理&#xff0c;為什么要思考商業模式呢&#xff1f;這個問題有點繞&#xff0c;但看完這一小節肯定大家就明白了。 首先&#xff0c;我們做產品經理&#xff0c;一般來說是為了掙錢&#xff0c;從掙一個月的錢…

DeepSeek提示詞指南:從基礎到高階的全面解析

引言 在人工智能技術迅猛發展的今天&#xff0c;DeepSeek作為新一代智能大模型&#xff0c;正在為各行各業帶來革命性的變革。而要充分發揮DeepSeek的潛力&#xff0c;掌握其提示詞的使用技巧是關鍵。本指南旨在為用戶提供一份全面、系統、實用的DeepSeek提示詞指南&#xff0…

Linux tail 命令

Linux 的 tail 命令是一個非常實用的工具&#xff0c;用于查看文件的末尾內容&#xff0c;默認顯示文件的最后 10 行。它在系統管理和日志監控中尤為常用&#xff0c;以下是其核心功能和用法總結&#xff1a; 一、基本語法 tail [選項] [文件]二、常用選項 選項功能示例-n 或…

【案例拆解】米客方德 SD NAND 在車聯網中(有方模塊)的應用:破解傳統 TF 卡振動脫落與壽命短板

&#x1f468;?&#x1f393;博主簡介 &#x1f3c5;CSDN博客專家 ??&#x1f3c5;云計算領域優質創作者 ??&#x1f3c5;華為云開發者社區專家博主 ??&#x1f3c5;阿里云開發者社區專家博主 &#x1f48a;交流社區&#xff1a;運維交流社區 歡迎大家的加入&#xff01…

中泰制造企業組網新方案:中-泰企業國際組網專線破解泰國工廠訪問國內 OA/ERP 卡頓難題

在東南亞開廠的中國制造企業&#xff0c;估計都遇到過這個糟心事&#xff1a;泰國工廠的員工想訪問國內總部的 OA、ERP 系統&#xff0c;結果頁面加載半天沒反應&#xff0c;文件傳輸慢得像蝸牛&#xff0c;視頻會議還時不時卡成 PPT。以前大家常用的 MPLS 專線&#xff0c;雖然…

【二進制安全作業】250617課上作業4 - start

文章目錄 前言一、使用環境二、pwndbg介紹1. 命令介紹2. 界面介紹 三、反匯編分析四、Shellcode五、解題思路六、編寫EXP結語 前言 作業3遇到了很嚴重的問題&#xff0c;一直沒搞定&#xff0c;先略過了&#xff0c;要講的東西也一起放到這里講吧。 這道題是 pwnable 的第一道…

【vivado中實現時序仿真】

這里寫自定義目錄標題 如何在vivado中實現時序仿真準備工作設計輸入與管理綜合與實現仿真與調試IP核與重用硬件編程與配置設計分析與優化跨平臺支持與兼容性編寫測試激勵代碼運行時序仿真查看和分析結果高級技巧 如何在vivado中實現時序仿真 在Vivado中進行時序仿真&#xff0…

運維常用命令

目錄 一、系統監控與性能分析 vmstat命令 一、命令語法及核心參數 二、輸出字段解析&#xff08;關鍵列&#xff09; 三、工作場景案例 1. 排查 CPU 瓶頸 2. 內存不足導致 Swap 頻繁 3. 磁盤 I/O 性能問題 4. 系統卡頓實時監控 5. 高級用法&#xff1a;統計內存事件 …

代碼隨想錄day10棧和隊列1

文章目錄 數組模擬棧棧的應用 單調棧棧(stack) 數組模擬隊列隊列stl(queue)雙端隊列stl(deque)滑動窗口單調隊列 232.用棧實現隊列225. 用隊列實現棧20. 有效的括號1047. 刪除字符串中的所有相鄰重復項 數組模擬棧 題目鏈接 #include <iostream> #include <cstdio&g…

Unity 把廣告收入(revenue)上報到AppsFlyer

文章目錄 第一步第二步 官方文檔 第一步 升級版本 如果你的AppsFlyer版本大于文檔中要求的6.15以上&#xff0c;即可跳過第一步 在unity這里可以看到AppsFlyer版本 下載最新版本地址 在這個位置&#xff0c;單獨下載這個unitypackage包就行 如果是用srict-mode(嚴格模式)…

2023年藍橋杯青少第十四屆藍橋杯Scratch省賽中級組真題——小狗避障

小伙伴們&#xff0c;7月的全國信息素養大賽復賽準備得怎么樣了&#xff1f;推薦到家做完信息素養大賽的歷年真題后&#xff0c;可以有選擇性的做做藍橋杯青少的編程題&#xff0c;質量還是蠻好的&#xff5e; 下面這道是&#xff1a; 2023年藍橋杯青少第十四屆藍橋杯Scratch…

為復雜iOS應用實施多重安全保護:從Ipa混淆到加密的完整安全方案

在現代移動應用的開發過程中&#xff0c;尤其是那些涉及用戶隱私、支付或企業敏感數據的應用&#xff0c;安全問題早已成為不可忽視的核心問題。iOS系統由于其相對封閉的生態和嚴格的審核機制&#xff0c;通常被認為具有較高的安全性。然而&#xff0c;隨著破解技術的發展&…

docker 如何優化容器啟動時間

優化 Docker 容器啟動時間&#xff0c;尤其在大規模部署、CI/CD 或微服務架構中非常關鍵。啟動慢會影響響應時間、彈性擴縮容和用戶體驗。以下是從鏡像構建、容器運行、依賴管理等多個方面整理的 容器啟動加速方案&#xff1a; 一、優化鏡像構建&#xff08;啟動慢 ≈ 鏡像臃腫…

基于 Python Django 框架的寵物醫院管理系統設計與實現

摘要 本研究針對傳統寵物醫院管理模式存在的效率低下、信息不共享、服務流程繁瑣等問題&#xff0c;設計并實現了一個基于 Python Django 框架的寵物醫院管理系統。系統采用 B/S 架構&#xff0c;整合了客戶管理、寵物管理、醫生管理、診療管理、藥品管理、庫存管理、財務管理…

6612345(Web打印瀏覽器) 開發歷程

6612345(Web打印瀏覽器) 開發歷程 2022年7月,由于chrome新版本的限制, HttpPrinter(Web打印插件) 從http協議轉為websocket協議. 為了提前預防chrome后續版本(至于哪個版本,我們也不知道)無法和本地插件通信,我們重新定制了一款chrome瀏覽器.繞過通訊限制. 首個版本,基于微軟…

信安實驗室CTF writeup

文章目錄 1、白給簽到2、Welcome3、Get4、Post5、滴滴滴6、每逢佳節7、Bacon8、古典變奏9、affine10、affine-revenge11、Random_encrypt12、easy_re13、re114、ez_xor15、maze16、easy_php17、easy_bypass18、Autumn19、easy_Cookie20、[白給] 連上就給flag21、小兔子22、我在…

【入門級-基礎知識與編程環境:NOI以及相關活動的歷史】

NOI 及相關活動的歷史如下&#xff1a; 1984 年&#xff1a;鄧小平同志提出 “計算機的普及要從娃娃抓起”。為響應這一號召&#xff0c;中國計算機學會&#xff08;CCF&#xff09;于當年自主創建了面向中學生的 “全國青少年程序設計競賽”&#xff0c;當年參加競賽的有 8000…