首頁 運維 linux運維 如何在Linux中部署高可用架構

如何在Linux中部署高可用架構

Jun 18, 2023 pm 12:21 PM
linux 架構 高可用

隨著大數據時代的到來,越來越多的公司和組織開始使用Linux作業系統作為他們的伺服器平台。為了確保應用程式的可用性和穩定性,高可用架構已經成為了Linux伺服器中不可或缺的一部分。本文將介紹如何在Linux中部署高可用架構。

什麼是高可用架構?

高可用架構(High Availability,簡稱HA)是指當系統故障時,仍能持續提供服務的系統架構。 HA可以透過多種技術實現,例如:負載平衡、冗餘備份、故障轉移等。對於企業級應用程式來說,保持高可用性至關重要,因為它可以確保應用程式在意外情況下能夠繼續正常運作。

在Linux中部署高可用架構的步驟

  1. 網路規劃

首先,需要對網路進行規劃。要確保高可用性,應該為叢集中的每個節點分配一個獨立的IP位址,並將它們組合成一個虛擬IP位址。此外,還需要為叢集配置網路存儲,以便在節點之間共用資料。

  1. 安裝軟體

在安裝軟體之前,在每個節點上安裝必要的軟體包,例如:heartbeat、corosync和pcs軟體包。可以使用以下指令在CentOS上安裝:

sudo yum install corosync pcs pacemaker resource-agents
登入後複製
  1. 設定Corosync和Heartbeat

接下來,需要設定Corosync和Heartbeat,以實現兩個節點之間的通信。這是確保高可用性的關鍵步驟之一。在設定檔中設定節點的IP位址、通道名稱和通道連接埠。在此配置過程中,請確保下列資訊的配置:

  • bindnetaddr:用於指定節點之間通訊的網路介面位址。
  • mcastaddr:用於指定多播位址。
  • mcastport:用於指定多播通道的連接埠號碼。
totem {
        version: 2
        secauth: off
        interface {
                ringnumber: 0
                bindnetaddr: 192.168.50.0
                mcastaddr: 226.94.1.1
                mcastport: 5405
        }
        transport: udpu
}

logging {
        to_logfile: yes
        logfile: /var/log/corosync/corosync.log
        to_syslog: yes
}
登入後複製

在heartbeat的設定檔中,需要設定節點的IP位址和虛擬IP位址。確保在虛擬IP位址上提供服務的應用程式已經安裝。

#设定hacluster集群名称
cluster hacluster
#设定故障探测时间间隔 必须<ping的-send值
keepalive 2
#每次探测(waitting)会加入2秒
deadtime 10
#装备ping用的参数,每次等待10秒
warntime 10
initdead 20
udpport 694
#主服务节点IP,可多行填写
node node1.example.com
node node2.example.com
#关联的主节点为node1,次节点为node2
crm respawn
#virtual_ip是虚拟IP
#Ethernet Bridge 和IP假设设为192.168.0.1/24
primitive virtual_ip ocf:heartbeat:IPaddr2 
        params ip="192.168.0.5" cidr_netmask="24" 
        op monitor interval="10s"
#IP暂停服务后强制迁移
location virtual_ip-primary virtual_ip 
        rule $id="virtual_ip-rule" inf: virtual_ip
登入後複製
  1. 設定叢集管理工具

安裝pcs工具,這是一個用於設定Pacemaker叢集管理軟體的命令列工具。可使用下列指令安裝:

sudo yum install pcs
sudo systemctl enable pcsd.service && sudo systemctl start pcsd.service
登入後複製

設定防火牆,確保任何節點上的防火牆都允許通訊。在CentOS7 上,可以使用以下命令:

sudo firewall-cmd --add-service=high-availability --permanent
sudo firewall-cmd --reload
登入後複製

在每個節點上,建立hacluster 使用者並將其新增至pcsd 群組中,以便將來管理Pacemaker 叢集:

sudo useradd hacluster
sudo passwd hacluster
sudo usermod -aG pcsd hacluster
登入後複製

要啟用pcsd服務,請使用以下命令:

sudo systemctl enable pcsd
sudo systemctl start pcsd
登入後複製

使用以下命令在Pacemaker 上配置authkey ,使用相同的選項將authkey 複製到所有其他節點上:

sudo pcs cluster auth <node1.example.com> <node2.example.com> -u hacluster -p <password> --force
登入後複製
  1. #配置負載平衡

安裝和設定HAproxy,它是一個基於TCP和HTTP應用程式的高可用性負載平衡工具。可使用下列指令在CentOS上安裝:

sudo yum -y install haproxy
sudo systemctl enable haproxy
登入後複製

在haproxy的設定檔中,需要設定負載平衡的演算法、後端伺服器的IP位址和連接埠號碼。

global
    log         127.0.0.1 local2
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon      # Enables HAProxy in daemon mode

defaults
    log         global
    mode        http
    option      httplog
    option      dontlognull
    retries     3
    option      redispatch
    maxconn     2000
    contimeout  5000
    clitimeout  50000
    srvtimeout  50000

frontend web
    bind *:80
    mode http
    default_backend web-backend

backend web-backend
    mode http
    balance roundrobin
    option httpchk HEAD / HTTP/1.1
Host:localhost
    server node1 10.0.0.2:80 check
    server node2 10.0.0.3:80 check
登入後複製
  1. 測試高可用架構

最後,測試高可用性。斷開其中一個節點的連接,確保虛擬IP會自動轉移到另一個節點。確認在其它節點上的應用程式已經在虛擬IP下正常運行,從而確保高可用性。

結論

在Linux中部署高可用性架構,可確保企業應用程式在面對意外故障時的穩定性和可用性。使用基於Corosync和Heartbeat的HA架構,可以透過虛擬IP位址和負載平衡演算法,將應用程式分配到不同的伺服器節點上,從而確保其高可用性和效能。

以上是如何在Linux中部署高可用架構的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vscode需要什麼電腦配置 vscode需要什麼電腦配置 Apr 15, 2025 pm 09:48 PM

VS Code 系統要求:操作系統:Windows 10 及以上、macOS 10.12 及以上、Linux 發行版處理器:最低 1.6 GHz,推薦 2.0 GHz 及以上內存:最低 512 MB,推薦 4 GB 及以上存儲空間:最低 250 MB,推薦 1 GB 及以上其他要求:穩定網絡連接,Xorg/Wayland(Linux)

Linux體系結構:揭示5個基本組件 Linux體系結構:揭示5個基本組件 Apr 20, 2025 am 12:04 AM

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

notepad怎麼運行java代碼 notepad怎麼運行java代碼 Apr 16, 2025 pm 07:39 PM

雖然 Notepad 無法直接運行 Java 代碼,但可以通過借助其他工具實現:使用命令行編譯器 (javac) 編譯代碼,生成字節碼文件 (filename.class)。使用 Java 解釋器 (java) 解釋字節碼,執行代碼並輸出結果。

vscode 無法安裝擴展 vscode 無法安裝擴展 Apr 15, 2025 pm 07:18 PM

VS Code擴展安裝失敗的原因可能包括:網絡不穩定、權限不足、系統兼容性問題、VS Code版本過舊、殺毒軟件或防火牆干擾。通過檢查網絡連接、權限、日誌文件、更新VS Code、禁用安全軟件以及重啟VS Code或計算機,可以逐步排查和解決問題。

git怎麼查看倉庫地址 git怎麼查看倉庫地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 倉庫地址,請執行以下步驟:1. 打開命令行並導航到倉庫目錄;2. 運行 "git remote -v" 命令;3. 查看輸出中的倉庫名稱及其相應的地址。

vscode終端使用教程 vscode終端使用教程 Apr 15, 2025 pm 10:09 PM

vscode 內置終端是一個開發工具,允許在編輯器內運行命令和腳本,以簡化開發流程。如何使用 vscode 終端:通過快捷鍵 (Ctrl/Cmd ) 打開終端。輸入命令或運行腳本。使用熱鍵 (如 Ctrl L 清除終端)。更改工作目錄 (如 cd 命令)。高級功能包括調試模式、代碼片段自動補全和交互式命令歷史。

vscode在哪寫代碼 vscode在哪寫代碼 Apr 15, 2025 pm 09:54 PM

在 Visual Studio Code(VSCode)中編寫代碼簡單易行,只需安裝 VSCode、創建項目、選擇語言、創建文件、編寫代碼、保存並運行即可。 VSCode 的優點包括跨平台、免費開源、強大功能、擴展豐富,以及輕量快速。

vscode 可以用於 mac 嗎 vscode 可以用於 mac 嗎 Apr 15, 2025 pm 07:36 PM

VS Code 可以在 Mac 上使用。它具有強大的擴展功能、Git 集成、終端和調試器,同時還提供了豐富的設置選項。但是,對於特別大型項目或專業性較強的開發,VS Code 可能會有性能或功能限制。

See all articles