




摘" 要:針對智慧枸杞園服務端在數據量積累、并發數驟增以及服務器系統停服的情況下,會出現的處理響應能力下降、系統故障、數據丟失等問題,文章進行了高可用集群構建、系統遷移、前后一致性可用性驗證等方面的研究,以達到提升服務端高可用性及負載均衡能力、保障其穩定運行及可持續迭代更新的目的,同時也為后續分步驟、分階段進行應用及數據的全面遷移奠定基礎。
關鍵詞:系統遷移;智慧枸杞園;高可用;負載均衡
中圖分類號:TP393" " 文獻標識碼:A" 文章編號:2096-4706(2024)21-0119-05
Exploration of a High Availability Cluster of Smart Goji Berry Orchards Supporting System Migration
WU Dan1, CAO Mengchuan1, PEI Xinfeng2
(1.Ningxia Polytechnic, Yinchuan" 750021, China; 2.Ningxia Xintong Network Technology Co., Ltd., Yinchuan" 750002, China)
Abstract: Aiming at the problems of decreased processing response ability, system failure, and data loss that may occur in the case of data accumulation, sudden increase in concurrency, and server system shutdown in the smart goji berry orchard server, this paper conducts research on high availability cluster construction, system migration, and before and after consistency availability verification, so as to achieve the aims of improving the high availability and load balancing ability of the server, and ensuring its stable operation and sustainable iterative updates. At the same time, it lays the foundation for subsequent step-by-step and phased comprehensive migration of applications and data.
Keywords: system migration; smart goji berry orchard; high availability; load balancing
0" 引" 言
寧夏是我國枸杞原產地及主產區,擁有著世界最大枸杞屬種質資源庫,當前,全國范圍內所有枸杞產區90%以上的枸杞種苗均為從寧夏引進,地區產業優勢明顯,為自治區六特產業之一;科技興杞是產業發展核心要素,特別是近年來枸杞科技工作有較大進展,但從產業可持續發展的要求來看,仍有許多不相適應之處,枸杞產業發展不僅要著眼于突破創新,更要探索可持續的穩步上升之路。
在本地智慧枸杞園項目建設中,枸杞園服務平臺主要包括服務端和前端[1]。服務端是服務的后臺和數據倉庫,服務端的一個重要的部分數據存儲系統,主要是通過部署田間環境因子智能采集儀自動采集空氣溫度、濕度、降雨量、光照強度、風速、風向、土壤溫度、濕度等數據,實時傳送至數據存儲系統,用于前端調用展示,以及后續研究中基于海量數據集進行數據分析預測,訓練模型形成咨詢庫,從而達到為種植者提供科學、精準指導的目標。
1" 擬解決的問題
智能采集儀每間隔15分鐘進行一次數據采集,由于數據量不斷累積以及數據分析、模型訓練需頻繁進行讀寫操作,將會導致訪問服務器頻率及并發數不斷增加。前期數據主要用于展示,單節點基本可以滿足需求,但是當并發數驟增,單點數據處理能力、響應性能都會急劇下降,一旦該節點故障系統就陷入癱瘓。同時,由于服務器所用操作系統CentOS 7在2024年6月30日已停止服務支持,繼續使用可能會面臨系統故障、數據丟失等諸多問題。
為了解決以上問題,提升智慧枸杞園服務平臺的高可用性及負載均衡能力,保障其穩定運行及可持續迭代更新的能力,研究主要針對高可用集群的構建、系統遷移、遷移前后一致性可用性的驗證等多方面進行初步探索,確認可支持系統遷移的智慧枸杞園高可用集群的可行方案,并為后續分步驟、分階段逐步進行應用及數據的全面遷移奠定基礎。
2" 可支持系統遷移的高可用集群架構
2.1" 需求分析
可通過分布式架構來實現系統高可用性[2-3],即在不同位置部署多個節點構成集群來取代單節點模式,所有節點都可以進行讀寫操作,當其中某個節點失效時,集群仍然能夠正常工作;采用負載均衡軟件來管理集群,將操作分發到多個節點執行,來提高性能、承載更高訪問量[4]。同時,針對目前服務器操作系統停服的現狀,需將系統遷移到性能穩定、可持續迭代更新的操作系統上,并保證遷移前后各節點的可用性。
2.2" 整體架構
通過搭建高可用架構、使用負載均衡軟件及系統遷移工具實現,圖1為可支持系統遷移的高可用集群架構。
2.2.1" Galera Cluster架構
Galera Cluster架構[5]為多主特性的multi-master高冗余集群架構,性能較為穩健,在保證數據一致性、完整性和高性能方面有一定優勢,實驗中使用的是MariaDB Cluster,集群包含三個節點且均為對等關系的主節點,節點均可讀寫且不需要主從復制,客戶端讀寫數據時連接任何節點無差異且新數據會自動快速同步到其他節點;當任一節點出現故障時會被自動從集群中去除。對多個節點的管理,通常需要搭建中間層來建立連接、管理連接池、負責負載均衡。
2.2.2" HAProxy負載均衡軟件
HAProxy負載均衡軟件[6]是作為中間層管理Galera Cluster集群的,HAProxy可以處理大量并發連接并檢測服務器的健康狀態,如果某個服務器出現故障,它可以自動將流量轉移到其他健康的服務器,從而保證服務的高可用性,并且支持多種負載均衡算法如輪詢、最少連接數等,會自動根據設置進行節點選擇。
2.2.3" x2openEuler遷移工具
x2openEuler是一款將源操作系統遷移到目標操作系統的工具套件,具有批量化原地升級能力[7]。實驗中,根據服務平臺系統的實際需求、高可用架構已部署運行的實際情況、需替換新操作系統的目標,確定對應遷移場景為存量替換,制定遷移方案為原地升級方案,即將原有的操作系統直接升級到目標操作系統,系統配置及業務數據等不再重新部署可直接復用。實驗中具體的是通過x2openEuler工具將源CentOS升級至國產開源系統openEuler[8-9]。
客戶端是通過HAProxy節點來訪問整個集群的,HAProxy通過心跳檢測判斷各節點是否故障,并且根據策略將客戶端發出的讀寫請求轉發至Galera Cluster集群內某個節點。
3" 具體實施
實驗中,首先進行高可用集群的構建,再對集群內各節點進行系統遷移,最后對系統遷移完成情況及遷移后集群應用的一致性及可用性進行驗證。
3.1" 節點規劃
整體共包含5個節點,分別是Galera Cluster三個節點(node1、node2、node3),HAProxy節點,x2openEuler節點,各節點IP及主機名規劃如表1所示。
3.2" 安裝配置
各節點均以centos-7-x86_ 64-DVD-2009.iso鏡像文件部署系統,配置網絡地址,設置主機名,并在/etc/hosts文件內添加各節點主機名與IP地址的映射,同時使用centos-7-x86_ 64-DVD-2009.iso鏡像文件制作本地yum倉庫。
3.2.1" 基礎配置
對node1、node2及node3節點分別使用命令yum install mariadb" mariadb-server -y安裝數據庫并進行初始化及密碼設置;使用ssh-keygen命令對三個節點設置相互之間的免密訪問;三節點均使用命令systemctl stop firewalld、systemctl disable firewalld來關閉防火墻并設置開機不自啟,使用命令setenforce 0以及命令sed -i 's/enforcing/disabled/g'/etc/selinux/config命令來關閉SELinux。
3.2.2" Galera Cluster配置
修改/etc/my.cnf.d/server.cnf文件,在[galera]內配置:通過設置wsrep_on值為ON,啟動 Galera 集群及同步復制功能;定義Galera復制庫文件路徑為/lib64/galera/libgalera_smm.so,其中,核心庫libgalera_smm.so主要用于處理同步復制和集群通信;定義節點地址列表為gcomm://node1,node2,node3,gcomm://是Galera的組通信協議,同時定義集群參與復制節點為node1、node2、node3;設置二進制日志為行格式即binlog_format為row;設置InnoDB自動增量鎖模式innodb_autoinc_lock_mode為2(即交錯模式),以減少集群中自動增量列沖突并提高并發性能。
設置完成后在node1節點使用命令/bin/galera_new_cluster啟動集群;通過scp命令將node1文件etc/my.cnf.d/server.cnf跨節點分發到node2、node3節點,重啟各節點數據庫服務后登錄,輸入show status like 'wsrep_ready'顯示wsrep_ready為ON且輸入show status like 'wsrep_cluster_size'顯示wsrep_cluster_size為3,表示MariaDB" Galera Cluster集群配置完成。
3.2.3" 負載均衡軟件安裝配置
使用命令yum install haproxy -y在HAPproxy節點安裝haproxy軟件,修改/etc/haproxy/haproxy.cfg文件,端口9000綁定監聽;定義后端服務器并設置三節點權重分別為1、2、4:
server node1 192.168.1.116:3306 weight 1
server node2 192.168.1.117:3306 weight 2
server node3 192.168.1.118:3306 weight 4
當客戶端連接192.168.1.119:3307時,HAProxy節點將連接分發到node1、node2或node3,權重越高節點分配到的連接數越多。訪問http://192.168.1.119: 9000/stats可看到HAProxy控制臺實時統計信息,包括當前連接數、流量等,如圖2所示。
3.3" 系統遷移
3.3.1" CentOS 7.9到openEuler22.03-LTS-SP3遷移
采用存量遷移對node1、node2及node3進行原地升級,將CentOS 7.9系統直接升級到openEuler22.03-LTS-SP3系統[10],完成后系統配置及業務數據可直接復用。具體過程如下:下載x2openEuler遷移工具,在x2openEuler節點(IP地址為192.168.1.115)上安裝并配置;通過回顯交互信息完成對服務的啟動配置,包括對數據庫、用戶x2openEuler密碼、SSH身份驗證、Web Server IP地址、HTTPS默認18082端口以及GUNICORN默認18080端口;訪問https://192.168.1.115:18082進行用戶管理和系統配置,選擇SSH服務及批量方式完成對node1、node2及node3的系統遷移。
3.3.2" 系統遷移可行性及集群性能驗證
訪問https://192.168.1.115:18082,以x2openEu-lerAdmin用戶身份登錄查詢遷移結果,可看到三個節點node1、node2及node3均已完成系統遷移,圖3為節點node1的詳細信息(node2、node3顯示結果均完全相同,此處以node1節點截圖說明)。在升級完整性檢查報告中查看詳細信息可看到,源系統為CentOS linux release 7.9 2009(Core),目標操作系統為openEuler22.03-LTS,進度為升級成功。
通過訪問http://192.168.1.119:9000/stats控制臺頁面,可看到HAProxy服務的狀態,且在遷移前HAProxy的版本為1.5.18,隨著系統遷移也已升級為了HAProxy version 2.2.16,如圖4所示,HAProxy管理的三個節點均為可用狀態。
由于在對node1、node2及node3三個節點進行數據庫服務配置時已設置了三個節點的server_id分別為116、117、118。經過在客戶端輸入mysql -h 192.168.1.119 -P 3307 -uroot -p000000 -e “show variables like ‘server_id’”可以看到server_id存在變化,也反映出HAProxys是依據權重分配來訪問負載節點的;同時,當我們在三個節點中任意一個節點的數據庫內寫入或者刪除數據,其他兩個節點都會自動同步地寫入或者刪除數據,而無須手動備份。
通過以上驗證可得出結論:各節點系統遷移已完成,且遷移后不需要重新進行集群應用部署可直接使用,遷移前后集群的高可用性及負載均衡能力是保持一致的。
4" 結" 論
本文主要基于枸杞園服務平臺的實際需求構建了高可用負載均衡集群,初步探索了集群系統從CentOS到openEuler的遷移過程,并對遷移前后應用的可用性一致性進行了驗證,確認了方案的可行性。在后續研究中將持續監控集群的運行情況,并在本實驗的基礎上進行對枸杞園數據的全面遷移及性能調優方面的探索。
參考文獻:
[1] 曹夢川,伍丹,杜朋軒.基于機器學習的枸杞生長預測服務端接口設計與實現 [J].現代信息科技,2022,6(24):62-65.
[2] 孫樂樂.分布式環境下空間矢量大數據存儲模型及高性能分析關鍵技術研究 [D].昆明:云南師范大學,2023.
[3] 許彪,王湘渝,朱愛梅.基于Mariadb Galera的高可用數據庫集群技術 [J].信息技術與信息化,2021(10):25-27.
[4] 廖卓,姚敏,余筱,等.基于Keepalived和Mycat的MySQL數據庫高可用性設計與實現 [J].現代信息科技,2022,6(11):27-29+33.
[5] 劉洋,高鵬,徐娟,等.基于Mycat的分布式技術在收集與分發系統中的應用 [J].氣象研究與應用,2021,42(1):90-95.
[6] 朱哲哲,趙振海,李鵬,等.分布式關系型數據庫研究與金融行業應用 [J].計算機系統應用,2021,30(6):75-81.
[7] POLEPALLY V,CHATRAPATI K S. Dragonfly Optimization and Constraint Measure-based Load Balancing in Cloud Computing [J].Cluster Computing,2019,22(1):1099-1111.
[8] 吳蔚.國產操作系統創新突破筑基智能時代 [N].經濟參考報,2023-12-21(5).
[9] openGauss開源社.遷移方案 [EB/OL].[2024-03-16].https://www.openeuler.org/zh/migration/guidance/.
[10] openEuler開源社區文檔.安裝指南 [EB/OL].[2024-03-19].https://docs.openeuler.org/zh/docs/20.03_LTS/docs/Installation/installation.html.
作者簡介:伍丹(1983—),女,漢族,寧夏銀川人,講師,碩士,研究方向:云計算、大數據;曹夢川(1990—),男,漢族,寧夏銀川人,助教,碩士,研究方向:人工智能、大數據;裴鑫峰(2003—),男,漢族,寧夏中衛人,運維工程師,研究方向:云計算、K8s運維。
基金項目:智慧枸杞園關鍵技術集成創新示范及采收機械配套研究課題4(2021BEF02001)