實踐分享:如何安全快速地從 Centos遷移到openEuler

語言: CN / TW / HK

去年年底,Centos 8 停止維護更新的消息,在業內掀起極大的關注。遷移CentOS也不是一件簡單的事兒;不僅要對操作系統及其上搭載的應用軟件和業務系統進行替代、適配、遷移和重構等,也要綜合考慮其穩定性、安全性和靈活性,還有一些遷移成本、夥伴生態等等。

在進行一些調研後,我們使用了openEuler。其原因在於,首先操作系統openEuler內核源於Linux,支持場景多樣,比較穩定易用。其次,它有比較完善的兼容評估與分析工具,減少我們部分工作。再有,它的夥伴生態發展比較不錯,處理器、整機、基礎軟件、應用軟件、行業客户等都能覆蓋到,也有十來家主流osv基於 openEuler 操作系統發佈了商業發行版。社區開發者也比較活躍,提及的疑問或需求都能給予一些支持。而且openEuler是開源的,從成本到應用,總體感覺比較不錯。

下面,我來分享下從Centos遷移到openEuler的經驗;希望對大家有幫助。

1.遷移概述

1.1 遷移注意事項

遷移關鍵問題:

CentOS到openEuler,無論是內核、基礎軟件包都有了一定的變化。分析認為OS遷移面臨的關鍵問題有三個:

  1. 已有軟件是否可以在新系統運行,包括軟件安裝與功能是否存在問題
  2. 硬件與新OS是否兼容
  3. 已經做過的相關配置是否可以繼承到新OS

遷移實施注意事項:

  1. 可能對現網業務有影響,請提前規劃時間窗口和資源
  2. 現網數據請注意備份
  3. 建議嚴格按照文中描述的流程執行
  4. 現網業務建議專業人員實施遷移,建議聯繫操作系統廠家運維人員提供技術指導

1.2 遷移方案綜述

操作系統和應用軟件的遷移主要包含如下三步:

① 遷移評估(軟件、硬性、配置)

② 遷移適配(軟件適配、硬性適配、依賴缺失、配置差異)

③ 遷移實施(單機、主備、分佈式)

openEuler社區的遷移工具x2openEuler提供了①遷移評估能力,根據評估結果,如果存在兼容性問題,參照本文中的②遷移適配指導,適配完成後開展③遷移實施;如果無兼容性問題,則直接開展③遷移實施,通用方案包含新增、擴容、原地替換三種場景以及單機、主備、分佈式等軟件形態。

image.png

2.遷移評估

openEuler社區提供的x2openEuler工具從如下角度分析並生成兼容性評估報告:

  • 軟件評估

通過識別應用軟件依賴的軟件包清單信息,對rpm/tar/zip/gzip/jar/py/pyc/sh/bin應用進行掃描評估,並生成.html評估報告。

  • 配置收集與評估

支持對用户環境數據進行收集並生成json格式文件,支持收集硬件配置、配置接口、內核選項配置參數、系統配置參數(sysctl/proc/sys)、環境變量、服務、進程、端口、命令接口、系統調用項和設備驅動接口等信息,並完成配置信息分析評估。

  • 硬件評估

評估運行環境的整機(x86/aarch64)、整機板卡(RAID/NIC/FC/IB/GPU/SSD/TPM)是否在openEuler兼容性清單。

工具詳細使用方法和功能請參考x2openEuler使用指南

2.1 安裝遷移評估工具x2openEuler

根據架構下載最新版本工具

wget https://repo.oepkgs.net/openEuler/rpm/openEuler-20.03-LTS-SP1/contrib/x2openEuler/x86_64/Packages/x2openEuler-2.0.0-430.x86_64.rpm

安裝x2openEuler工具

yum install x2openEuler-x.x-x.x86_64.rpm

2.2 應用軟件兼容性評估

此處以評估read-os-1.0.0-1.el7.aarch64.rpm應用包並輸出軟件評估報告為例,請根據實際情況選擇所需參數並替換為需要掃描的軟件包或軟件包目錄。

x2openEuler scan read-os-1.0.0-1.el7.aarch64.rpm

image.png

根據報告提示,存在不兼容的依賴包和接口,請參考本文3.1-3.2章節完成適配。

2.3 硬件兼容性評估

此處以分析本地硬件資源信息為例,請根據實際情況選擇分析本地硬件資源信息或外部導入硬件信息數據。

x2openEuler hardware-analyse

image.png

根據報告提示,存在不兼容的硬件,請參考本文3.3章節完成硬件適配。

2.4 配置兼容性評估

此處以評估本地配置信息為例,可根據實際情況選擇所需參數並替換為需要進行評估的外部導入數據。

x2openEuler conf-analyse 

image.png image.png

根據報告提示,存在有變化的配置需要檢查,請參考本文3.4章節完成配置適配。

3.遷移適配

遷移適配工作從分析評估報告展開,針對報告裏的錯誤詳情實施不同的適配動作。

3.1 應用軟件移植

以2.2章節read-os-1.0.0-1.el7.aarch64.rpm評估報告為例,從接口層面可知,調用的接口發生了變化,經過分析後該案例由於依賴了“已移除的接口”, image.png

需要聯繫軟件廠家或者自研軟件責任方進行適配。

對於兼容的軟件可直接使用。

3.2 OS軟件包適配

以2.2章節read-os-1.0.0-1.el7.aarch64.rpm評估報告為例,發現依賴軟件包中有缺失的包如下,

image.png

則需要參考軟件兼容性適配流程完成包引入。適配完成後,將軟件包引入至軟件倉庫及根據需要刷新軟件兼容性清單。

對於兼容的軟件可直接使用。

3.3 硬件適配

以2.3章節硬件評估報告為例,“是否在兼容清單”存在“待確認”的硬件類型

image.png

需要參考硬件兼容性測試服務,引導硬件廠家或社區開展適配,適配完成後將適配驅動發佈至軟件所倉庫及刷新兼容性清單。

“是否在兼容清單”為“是”的硬件表示已經過兼容性認證,直接執行下一步。

3.4 配置適配

分析配置評估報告,x2openEuler工具自動將系統配置分成靜態和動態兩種,用户僅需結合自身實際業務訴求和調優策略不同,對各項差異進行對比,選擇需要修改的配置,編寫自動化腳本,實現一鍵配置同步。

4.遷移實施(已有系統替換)

遷移實施前,需要提前熟悉軟件部署架構及部署組網,針對性輸出對應場景的遷移方案。目前 openEuler 提供主流場景的遷移方案,如大數據、分佈式存儲、虛擬化、容器、數據庫軟件,成功支撐多個行業用户完成遷移工作,具體遷移項目支撐請聯繫openEuler運維人員提供技術指導。搬遷實施過程主要包括停止業務、備份隔離、系統部署、配置同步、應用部署、業務割接核心步驟。

4.1停止業務

進行搬遷實施前需申請停機窗口和準備工作,根據業務場景和割接難度評估停機維護窗口。針對遷移實施中常見的單機、主備、分佈式集羣場景,不同應用軟件可以做到短暫中斷業務或完全不中斷,具體場景需結合應用軟件單獨分析,常見的三種場景情況如下:

  1. 單機軟件:業務中斷,停機x小時

  2. 主備軟件:不停機

  3. 分佈式集羣軟件:不停機

4.2備份隔離

為保障搬遷過程業務應用安全性,防止搬遷過程信息的丟失,建議搬遷前做好備份,隔離是為了防止搬遷過程影響其他正常業務運行。針對不同業務場景執行容災備份、網絡隔離等可結合業務軟件具體的特性進行實施,如Mysql數據庫場景可通過xtrabackup等工具進行快速備份還原。

4.3系統部署

系統部署可使用系統部署工具進行自動化批量部署,大幅提升部署效率。部署過程可基於gkit工具搭建pxe服務器,同步配置文件後可快速完成安裝過程:

  1. 配置pxe服務器信息 image.png

  2. 導入配置的模板,點擊安裝,自動配置pxe服務器 image.png

  3. 確認Pxe服務狀態為綠色,表示pxe服務器搭建完成 image.png

  4. 進入服務器kvm,設置服務器從pxe啟動並重啟 image.png

  5. 後續步驟自動完成,同步配置ip,OS安裝完成

4.4配置同步

根據3.4章節完成適配動作,基於x2openEuler集成的配置工具,實現系統參數配置、服務狀態配置等一鍵同步,確保基礎運行環境及狀態信息同步移植,保證業務搬遷後系統運行環境狀態一致。

4.5應用部署

應用部署前可將需要部署的應用打包成RPM包形式,通過編寫應用部署安裝腳本,在實驗環境上進行驗證,確保部署腳本的準確性。進行基礎驗證後,將腳本批量拷貝到待部署的服務器執行,完成自動化應用部署。針對主流的開源軟件,如大數據、數據庫、虛擬化、容器等,openEuler已提供完備的rpm包,可直接應用和部署。

4.6業務割接

業務割接環節需要考慮應用軟件自身特性,做到儘可能小的中斷業務並高效的平滑搬遷。針對單機、主備、分佈式集羣軟件,業務割接過程如下:

  • 單機軟件

該類軟件遷移時,涉及到操作系統切換,基本上會中斷業務,需要充分考慮遷移造成的中斷影響,選擇合適的窗口進行遷移,可考慮藉助備用服務器,割接式遷移。割接完成後保留原節點x天觀察新節點業務運行情況,x天后銷燬原節點。

  • 主備軟件

該類軟件遷移時,可不中斷業務,先備後主,基於主備狀態同步機制,平滑遷移。隔離備節點服務器,在備節點重新部署OS和業務,基於主備同步機制實現主備同步,然後通過主備倒換將升級OS後的備節點倒換成主節點,另一個節點以相同的方式進行OS升級。主備切換後觀察新的主節點業務運行情況,x天后替換備節點。

  • 分佈式集羣軟件

該類軟件遷移時,不中斷業務,可以基於分佈式軟件自帶的伸縮擴容機制,通過滾動替代的方式實現平滑遷移。將需要替換的節點進行隔離,然後重新部署新的OS,再加入到原有集羣中。切換1/3數量節點後觀察新的節點業務運行情況,x天后替換舊節點。

5.遷移實施(新增擴容)

系統部署可使用系統部署工具進行自動化批量部署,大幅提升部署效率。部署過程可基於gkit工具搭建pxe服務器,同步配置文件後可快速完成安裝過程:

  1. 配置pxe服務器信息 image.png

  2. 導入配置的模板,點擊安裝,自動配置pxe服務器 image.png

  3. 確認Pxe服務狀態為綠色,表示pxe服務器搭建完成 image.png

  4. 進入服務器kvm,設置服務器從pxe啟動並重啟 image.png

  5. 後續步驟自動完成,同步配置ip,OS安裝完成

5.2配置同步

根據【遷移適配】章節完成適配動作,基於x2openEuler集成的配置工具,實現系統參數配置、服務狀態配置等一鍵同步,確保基礎運行環境及狀態信息同步移植,保證業務搬遷後系統運行環境狀態一致。

5.3應用部署

應用部署前可將需要部署的應用打包成RPM包形式,通過編寫應用部署安裝腳本,在實驗環境上進行驗證,確保部署腳本的準確性。進行基礎驗證後,將腳本批量拷貝到待部署的服務器執行,完成自動化應用部署。針對主流的開源軟件,如大數據、數據庫、虛擬化、容器等,openEuler已提供完備的rpm包,可直接應用和部署。

6.總結

以上便是我的一些經驗與方法,雖然過程中存在很多疑問,但好在社區開發者很熱情,整體來説比較順暢。分享這篇博客,也是希望能給朋友們帶來一些幫助,一起交流交流。

參考鏈接: https://www.openeuler.org/zh/other/migration/