1、騰訊云騰訊云 CentOSCentOS 替代白皮書替代白皮書1.1.為什么要替換為什么要替換 CentOSCentOSCentOSCentOS 停服背景停服背景CentOS 作為一款開源且與 Red Hat Enterprise Linux(RHEL)高度兼容的 Linux 發行版,曾在操作系統市場中占據顯著地位。據相關數據統計,在全球范圍內,有超 35 萬家公司在使用 CentOS,其中營收規模在 5000 萬美元以下的中小型企業的 CentOS 使用占比達 69%。在中國市場,CentOS 在服務器操作系統領域同樣具有舉足輕重的地位,大量企業的業務系統搭建在 CentOS 之上,涵蓋金融、
2、能源、制造等多個重要行業,據統計,2022 年 CentOS在大多重要行業的部署量超過 50%。2020 年 12 月 08 日,CentOS 官方宣布了停止維護 CentOS 項目,并推出了 CentOSStream 項目,并表示后續都會投入到 CentOS Stream 項目中。其中,各 CentOS 版本的停服時間點如下:CentOS 6 已于 2020 年 11 月 30 日 停止維護 CentOS 7 已于 2024 年 06 月 30 日 停止維護 CentOS 8 已于 2021 年 12 月 31 日 停止維護停服后相關操作系統的上下游關系變化如下圖所示:帶來的影響帶來的影響C
3、entOS 停止服務主要的影響包括:安全風險加劇 漏洞暴露:停服后,官方不再推送安全補丁,系統存在的安全漏洞如高風險的 CVE漏洞無法得到修復,這為黑客攻擊提供了可乘之機,可能導致數據泄露、系統癱瘓等嚴重后果,使企業的業務安全得不到有效保障。惡意攻擊增加:沒有官方的安全更新支持,企業的 CentOS 系統會成為黑客重點攻擊目標,因為黑客知道這些系統存在未修復的漏洞,容易被利用來獲取企業敏感信息或破壞業務系統。技術支持缺失 問題解決困難:企業在使用 CentOS 系統過程中遇到技術問題時,無法獲得官方的專業技術支持和維護。只能依靠自身技術團隊或尋求第三方支持,但這可能會增加技術難度和解決問題的成
4、本,且第三方支持的專業性和及時性也難以保證,影響業務的連續性。技術發展受限:由于 CentOS 停服,不再有新版本軟件包發布,缺乏對新功能、新架構的支持,企業的系統發展會陷入停滯,難以跟上技術發展的步伐,可能影響企業在市場中的競爭力。應用兼容性挑戰 軟件適配問題:隨著技術的發展,新的應用程序可能不再支持舊版本的 CentOS,企業需要對應用程序進行升級或重新開發,以使其在新的操作系統上正常運行,這需要投入大量的時間和資源。同時,已停更版本上的應用和驅動程序可能不能在新系統上進行有效銜接和適配,影響應用系統的穩定運行。硬件兼容性問題:如果企業需要更新硬件設備,新硬件可能與停服的 CentOS 系
5、統存在兼容性問題,導致硬件無法發揮最佳性能或無法正常工作,進而影響企業的業務運營。雖然 CentOS 社區建議用戶切換到 CentOS Stream,但 CentOS Stream 社區支持相對薄弱,難以快速提供全面解決方案,且紅帽對其支持策略存在不確定性,同時滾動更新模式致使系統版本持續變動,企業難以確定固定、可靠版本,備份、恢復與升級操作難度增大,這些現狀都意味著 CentOS Stream 并不適合企業的核心關鍵應用??偟膩碚f,CentOS 停止服務后,繼續使用 CentOS,將給企業的業務運行帶來極大的隱患,需要盡快實現 CentOS 的替換,規避風險。2.2.替代模式和重要關注點替代
6、模式和重要關注點2.1.2.1.3 3 種替代模式種替代模式替換方案的制定,以保障業務系統可靠運行為主,目前業內主要有以下 3 種替代實施模式:原地替換原地替換原地替換是目前替換工作中應用最多的一種替換模式,是指通過替換工具,直接將線上運行的 CentOS 或者其他兼容操作系統(Oracle Linux、RHEL)切換成目標操作系統的替換模式,替換過程將進行操作系統的系統軟件包的替換,替換后,從內核態到用戶態均切換為相對應版本的 TencentOS Server。原地替換的優劣勢如下:優勢:替換過程簡單,不需要重新對操作系統進行配置,不需要重新部署應用,實施周期短。劣勢:在替換復雜環境的操作系
7、統時,可能會遇到替換失敗的情況,替換失敗可以通過系統回滾來恢復業務系統正常運行。新增替換新增替換新增替換是指在替換資源,例如 ARM、C86 或者是其他架構芯片的服務器上,全新部署目標操作系統,部署應用程序,完成測試后,進行應用系統割接,替換現有環境。新裝替換的優劣勢如下:優勢:替換后系統運行在“完整”的目標操作系統上,同時,替換過程可以先充分測試驗證后再割接到生產,變更時間可控,對業務影響可控。劣勢:需要與業務系統變更周期吻合,需要額外的硬件資源投入,對業務系統集群特性有所要求,相對替換周期較長,同時業務系統割接會有割接風險。托管服務托管服務托管服務是不對現有的環境進行任何的替換動作,業務仍
8、然保持現有的運行狀態,服務供應商針對現有運行環境提供支持服務,例如安全補丁修復、技術支持等。主要適用的場景包括:操作系統版本老舊,替換意義不大,例如 CentOS6 以及更早的版本 業務系統無法提供替換窗口,不適用其他兩種替換模式 業務層軟件對目標操作系統不兼容,或替換后不承諾維保支持2.2.2.2.替代實施階段替代實施階段為了保障替換過程中的生產可用,替代通常需要包含以下幾個項目實施階段:(1)生產環境調研開展生產環境替換工作之前,需要充分調研應用系統情況,包括具體應用系統名稱、版本、集群情況等信息,為后續的替換方案初步制定以及替換項目過程提供依據。(2)替換方案確定針對所收集的生產環境信息
9、,確定每個系統采用的初步替換模式,包括新增替換、原地替換以及托管服務。針對新增替換和原地替換,需要根據實際的生產環境情況,與業務團隊共同確定替換的操作方式以及替換過程,同時需要確定替換后的業務驗證方法,便于替換后對業務的可用性和正確性進行驗證。(3)替換測試為了保證生產系統替換的順滑,在正式替換前,建議搭建測試環境,對方案中制定的每一種替換模式進行測試,測試的目的一方面是驗證替換方案的可用性,另一方面,也讓替換團隊中各方對替換流程、替換工具的使用等進行熟悉,從而確保正式替換時的可靠性。(4)系統替換根據所制定的替換方案以及替換過程,在生產系統中進行逐步實施,其中原地替換建議通過批量替換平臺進行
10、批量實施。(5)替換后驗證和跟蹤替換完成后,對業務進行可用性和正確性驗證,對發生的異常進行快速響應,通常這一步驟需要業務運維團隊以及替換實施團隊的密切配合。2.3.2.3.替代過程中的關注重點替代過程中的關注重點存量應用的適配兼容存量應用的適配兼容存量應用是在替代項目中最讓實施團隊煩惱的事情,幾乎所有的企業都存在著數十、數百套正在運行的業務系統,這些業務系統很難在進行 CentOS 替代的時候進行升級、換代,特別是一些已經上線超過 5 年的業務軟件、平臺軟件。這時候在替代過程中,降低這些存量應用的適配兼容風險,就是一個需要關注的重點。這其中又包括了:原地替換時存量業務是否能夠無縫的兼容新的操作
11、系統平臺。當發生跨平臺替換的時候,存量業務是否能夠平滑的轉換到新的架構平臺上。替代方案的低風險實施替代方案的低風險實施生產環境對于企業的重要性不言而喻,它是企業核心業務運行的基礎,直接關系到企業的運營效率、客戶滿意度和經濟效益。從生產環境的重要性維度來看,替代方案的低風險實施是非常必要的,這里面又包括了:替換過程的業務連續性:替換過程應該是能夠盡量低的對現有業務運行產生影響,停機窗口越小越好。替換后的系統穩定性:穩定性與操作系統的兼容性、技術能力等都有很大關系,特別是兼容性,這一風險的規避與存量應用的適配兼容有極大的相關性。替換后系統性能:特別是在原地替換項目中,替換后的操作系統應該具有不低于
12、原系統的性能。替換后的運維管理:三分建設,七分運維,大多企業的 IT 系統都有各種運維技能和運維工具的沉淀,是否能夠平滑的接管新的操作系統,也是一個重要的風險點。替代方案的低成本實施替代方案的低成本實施在替代項目中,成本也是需要重點考慮的部分,替代成本主要包括軟件成本、適配成本、實施成本,其中最重要的也是相對變數較大的就是適配成本和實施成本,而這些成本在項目中通常需要用戶自行承擔,形成“成本黑洞”。適配成本:這是在替代項目中最重要的組成部分,也是主要的風險點,上層應用軟件的兼容性主要和操作系統的核心組件有關,例如 glibc、gcc、openssl、jdk 等,如果替換后的操作系統能夠提供與
13、CentOS 完全兼容的版本,將極大程度的降低適配難度和適配成本。而在跨平臺替換中,例如更換為 ARM、C86 服務器,這是有有些業務系統軟件需要重新編譯,而完全兼容的核心庫也能充分減少編譯工作量和遇到的問題。實施成本:替代實施過程是否足夠簡單,能否由初級工程師來承擔,能否盡可能的大批量執行,能否進行預評估從而降低與業務團隊的溝通成本,這些都是有效降低實施成本的方法。3.3.騰訊云騰訊云 CentOSCentOS 替代實踐替代實踐3.1.3.1.騰訊云騰訊云 LinuxLinux 服務器操作系統服務器操作系統騰訊云 Linux 服務器操作系統 V3(TencentOS Server V3)是騰
14、訊云基于 Linux 內核自主研發設計的服務器 Linux 操作系統,支持 ARM、LoongArch、MIPS、SW64、x86 架構的CPU,可運行于龍芯系列,飛騰系列,申威系列,兆芯系列、鯤鵬系列、海光系列等多種不同CPU 架構的服務器設備,支持主流的國產數據庫和主流的國產中間件等軟件,支持國產主流虛擬化/云平臺。騰訊云 Linux 服務器操作系統 V3 通過了財政部質量測試-操作系統政府采購需求標準(2023 年版),通過了安全可靠測評。騰訊云 Linux 服務器操作系統 V3 基于 5.4 內核,用戶態與 RHEL/CentOS 同源兼容,支持現存業務系統的 CentOS 原地替換,
15、在穩定性、性能、容器基礎設施等核心能力方面做了全面的增強和優化,能為企業提供穩定高可用的服務,滿足業務嚴苛負載需求。3.2.3.2.與與 CentOSCentOS 的用戶態二進制兼容的用戶態二進制兼容TencentOS Server 在自研內核的基礎上,用戶態組件部分保持與 CentOS 同源并兼容(均源自相同的上游開源軟件倉庫,重新構建、打包,形成發行版,保持北向軟件生態的 100%兼容)。原有運行于 CentOS 環境的應用可以直接運行于 TencentOS Server 之上,無需額外適配。同時,TencentOS Server 還提供了完整的遷移工具套件,可輔助實現 CentOS 的原
16、地遷移,最大程度降低遷移風險和成本,相關工具套件也已經經過大規模實踐和應用。3.3.3.3.替代場景及案例分享替代場景及案例分享3.3.1.3.3.1.某省政務云底座某省政務云底座 CentOSCentOS 替代項目替代項目項目背景項目背景XX 省政務云原底座操作系統采用 CentOS 系統,隨著安全要求的提高,在政務云專區需要替換為安全可靠的服務器操作系統,為云平臺中提供的 PAAS 服務,如數據庫 TDSQL、TBase和 TBDS 等 PAAS 服務替代挑戰替代挑戰政務云服務需要保持 7*24 的高可用性,在進行底座操作系統替換的同時,需要保證上層PAAS 服務的連續性以及數據的安全性,
17、替換的時間窗口短,替換可靠性要求高。實施方案實施方案針對存量業務評估遷移條件,滿足遷移條件的進行國產化 OS 原地替換,不滿足遷移條件的系統持續提供維保服務,新增集群節點直接采用 TencentOS Server,基于 TencentOS 和CentOS 的用戶態兼容,可以使用相同版本的 PAAS 層組件,從而實現新老節點集群融合項目收益項目收益針對客戶新擴容集群,使用 TencentOS 作為底座支撐上層數據庫、大數據、容器等業務,保障操作系統層面的軟件包與原系統的一致,從而實現了業務快速擴容和改造。針對存量 CentOS 業務,提供操作系統原地替換工具,完成操作系統國產化替換;對于不適合替
18、換的業務,持續提供維保支持,協助業務定位和解決多個老舊操作系統可用性問題。3.3.2.3.3.2.某部級單位核心業務系統某部級單位核心業務系統 CentOSCentOS 原地替代項目原地替代項目項目背景項目背景某部級單位,存量 CentOS 約 3000 套,運行的業務系統比較復雜,例如軟件平臺中包括了由于 CentOS 停服的原因,為了保障系統安全和欣欣安全,需要盡快完成 CentOS 遷移,規避 CentOS 停服風險替代挑戰替代挑戰應用環境復雜,包括自主軟件、還包括大量的開源軟件以及傳統商業軟件核心業務的連續性、穩定性要求高,對替換時間要求苛刻,要求風險規避能力強實施方案實施方案使用 T
19、OSAM 集中原地替換平臺實現集中批量替換采用同源兼容 TencentOS,保證對現有業務的兼容性充分的預檢機制,確保極短的替換時間窗口和一次性替換成功率充分回滾機制確保業務安全項目收益項目收益實施簡單快速,首批服務器約 400 套,涉及近十余個業務系統,10 天完成原地替換和業務驗證,第二批服務器 1500 臺左右,涉及業務系統近百個,3 個月內完成原地替換和業務驗證替換窗口短,平均替換過程小于 15 分鐘遷移成功率高,按計劃遷移成功率接近 100%3.3.3.3.3.3.某大型城市地鐵系統某大型城市地鐵系統 CentOSCentOS 替代替代項目背景項目背景該客戶收到 Red Hat 律師
20、函,提示現有上百臺正在使用 Red Hat 操作系統存在合規風險,同時,該客戶還有大量的 CentOS 操作系統,省相關主管部門發文提示重大安全威脅,要求將CentOS 替換為國產服務器操作系統。替代挑戰替代挑戰管理復雜度:多種操作系統(redhat/centos)、多版本(6.5、7.X、8.X)并行,管理復雜度高,當出現 0day 漏洞時,補丁排查與安裝困難業務連續性:關系民生的系統,對連續性要求非常高,停機時間窗口短,替換過程要求絕對可靠,數據安全級別高實施方案實施方案針對較早版本的 RHEL/CentOS,例如 6.x 版本,利用應用集群的高可用能力,分批重新部署到 TencentOS
21、 Server V3 上現有運行的 RHEL/CentOS 7.x、8.x,直接使用 TOSAM 批量原地替換工具進行原地替換到 TencentOS Server V3 上。在進行遷移/替換前,搭建測試環境驗證業務與 TencentOS Server 的兼容性針對原地替換的系統,提前做好系統備份以出現意外時進行回滾,快速恢復業務提前對系統進行替換評估和預驗證,這樣能夠盡量縮短替換的窗口,最短替換窗口為 15 分鐘左右項目收益項目收益按照既定計劃完成了現有環境中的 RHEL/CentOS 的遷移和替換工作,共 30 余項核心業務、400 余套系統的平滑遷移,關鍵指標全面優化:安全合規:全面替換為
22、通過安全測評的 TencentOS Server,徹底規避法律風險,構建業務安全屏障。遷移迅速:TencentOS 對 CentOS 的完全兼容性成為遷移核心優勢。經實踐驗證,原地替換方案使遷移成功率近 100%,無需復雜調整,最大程度降低遷移成本與風險,保障業務連續性。降本增效:統一操作系統環境簡化運維流程。統計顯示,替換后運維成本降低約 30%,資源利用效率大幅提升,實現真正的降本增效4.4.關于原地替代關于原地替代4.1.4.1.概述概述騰訊云原地替換遷移方案通過可視化的全自動遷移平臺實現,包括 2 個主要模塊:TOSAM 自動化平臺 migrate2tencentos 遷移工具遷移過程
23、利用 TOSAM 平臺管理所有的被遷移主機,在被遷移主機上部署和執行migrate2tencentos 遷移工具實現遷移遷移架構如下圖所示:遷移過程不需要在被遷移機器上部署任何 Agent,通過標準的 SSH 訪問,實現無侵入的替換遷移工作4.2.4.2.支持的支持的 CentOSCentOS 系統系統Tencent 原地替換遷移方案支持 CentOS 7 和 CentOS8 的原地替換遷移,同時也支持對應的 RHE L7、RHEL8、Oracle Linux7、Oracle Linux8 的原地替換遷移4.3.4.3.遷移流程遷移流程遷移過程需要 Tencent 與用戶業務團隊充分配合,根據
24、遷移的工作安排,遷移流程如下圖所示:4.4.4.4.TOSAMTOSAM 自動化平臺自動化平臺4.4.1.4.4.1.概述概述TOSAM(Tencent OS Auromation Management)自動化平臺是一個自動化運維平臺,具備的主機管理、模版管理、發布管理等操作,采用 Web 方式進行訪問,能夠在被管理主機上通過 ssh 方式執行需要的任務,通過 TOSAM,能夠對待遷移環境進行批量管理和批量遷移,大大的降低了遷移的復雜度,提升了遷移效率。TOSAM 登陸后的首頁如下圖所示:4.4.2.4.4.2.主機管理主機管理TOSAM 支持將待遷移主機通過主機管理加入到主機列表中,增加主機
25、如下圖所示:在添加主機的時候,可以設置主機分組,便于對不同的業務系統進行管理第一次添加主機時,需要輸入該主機的登陸密碼并進行驗證,驗證后系統會配置對應的 sshkey,后續的連接將使用 ssh key 進行訪問主機添加可以直接用 excel 格式的模版進行批量的主機導入,模版內容如下:完成主機添加后,可以在主機管理中看到被管理的主機:為了便于遷移過程中的管理,在 TOSAM 中提供了基于 Web 的 ssh 終端,可以點擊右上角的“Web 終端”直接訪問對應主機的 ssh 端口進行 Debug 調試。在添加主機時,如果驗證成功,系統將讀取主機的基本信息并,點擊其中一臺主機,能夠看到這些基本信息
26、:4.4.3.4.4.3.批量執行批量執行TOSAM 能夠在目標主機/主機組上批量執行命令或者腳本,批量執行主要用于一次性即時發出的任務執行(1)模版管理能夠執行的任務,可以是 shell 腳本或者 python 腳本,可以將一些常用的任務編寫成模版,后續在執行的時候,直接引入模版即可編輯模版的時候,為了滿足多樣的需求,模版支持引入變量功能(2)執行任務點擊執行任務,可以對目標主機執行任務,任務可以從模版中直接選取(3)文件分發當需要將某些文件批量分發到多臺服務器的時候,可以使用文件分發功能,被分發的文件,可以是本地上傳的文件,也可以是已經位于 TOSAM 主機上的文件4.4.4.4.4.4.
27、應用發布應用發布在 TOSAM 中,一個復雜的工作將以“應用”的方式進行管理,例如一次 CentOS7 的遷移包含多個任務,這些任務進行編排后,變稱為一個“應用”,利用應用發布的方式來管理應用的運行(1)發布配置可以新建一個發布配置,一個發布配置可以是一個發布類型,例如 CentOS 遷移,然后在這個發布類型中,新建若干個發布,每個發布可以對應一些具體的發布工作,如下圖所示:在配置發布時,需要設置該發布涉及到的所有主機,在后面進行發布申請的時候,可以在進行刪減(2)發布申請構建發布配置后,可以創建一個發布申請在發布申請中,可以選擇定時發布,也可以不選擇時間,這樣可以在界面中直接點發布便可立刻發
28、布創建完發布可以看到創建的發布任務,狀態為“待發布”,可以點擊發布進行發布點擊發布后,進入發布流程,可以看到發布過程中的每一個子任務的執行情況和執行信息:4.4.5.4.4.5.任務計劃任務計劃可以新建任務計劃,實現定時的/有條件觸發的工作,例如可以在遷移前,統一設定對系統進行遷移工具的部署以及系統軟件包的備份4.5.4.5.migrate2tencentosmigrate2tencentos 遷移工具遷移工具4.5.1.4.5.1.概述概述migrate2tencentos 遷移工具是進行 CentOS 遷移時的軟件包,以 rpm 方式進行部署,需要在被遷移服務器上進行安裝,安裝后提供以下工
29、具:操作系統包備份EasyBackup操作系統包恢復EasyRestore操作系統遷移EasyMigration4.5.2.4.5.2.單獨執行能力單獨執行能力migrate2tencentos 遷移工具可以不依賴于 TOSAM 單獨執行,所以,當用戶在遷移過程中已經有自動化平臺,能夠實現軟件包的安裝、遠程命令/腳本的執行、任務編排等能力,可以直接利用現有的自動化平臺進行遷移,實現完全無侵入的操作系統遷移4.5.3.4.5.3.操作系統包備份和恢復操作系統包備份和恢復操作系統的備份命令:#EasyBackup(-d dir)備份的默認目錄為/mnt/backup,也可通過-d 選項指定目錄進行
30、備份,備份的空間需求與操作系統的部署模式和用戶態軟件體量有關,需要保證有足夠空間。備份過程將執行操作系統軟件包的分析,然后將所有涉及到的系統文件進行壓縮備份,備份的過程不會涉及到用戶數據,備份過程會自動計算系統的 CPU 核數,對所有的備份任務按照CPU 核數進行切分,進行多線程備份操作系統的恢復命令:#EasyRestore-d dir恢復需要指定目錄讀取之前的備份內容,然后進行解壓縮恢復,恢復過程只涉及操作系統的系統文件,對用戶數據沒有任何影響。TencentOS Server 遷移工具的備份和恢復的優點:不借助第三方備份和恢復工具備份和恢復的過程不涉及到用戶數據,遷移完成后如果遇到問題,
31、在進行遷移回滾時,不會影響到遷移后的運行中產生的新數據。4.5.4.4.5.4.操作系統遷移工具操作系統遷移工具操作系統遷移的命令為 EasyMigration,如下:相關參數說明:-v 選擇遷移的目標,2.4 表示遷移到 Tencent OS 2.4 版本,適用于 CentOS 7;3.1 表示遷移到 Tencent OS 3.1 版本,適用于 CentOS 8,-g 選擇遷移的軟件包集合,minimal 表示遷移系統用戶態的核心包,server 表示遷移group server 的包,默認為遷移所有的包-inpkgs 通常配合-g 使用,表示除了遷移制定的 group 外,還遷移指定的包-
32、outpkgs 表示不遷移什么包,在遷移過程中,通常會碰到由于依賴或者兼容性問題無法遷移一些包導致遷移失敗,可以通過該參數將這些包排出,參數可以是直接的包名,例如-outpkgs gnome-shell,也可以是一類包,通過通配符進行匹配,例如-outpkgs.i386*.i686,排出所有的 32 位包-d 選擇遷移中使用的 TencentOS Server 軟件源,默認為 local,使用本地的 ISO 光盤配置的本地 yum 源;可以設置為 remote 使用 tencent 官方鏡像,也可以直接給出自定義 yum源 URL 地址,使用自定義 yum 源-k 在遷移的過程中,會安裝 Te
33、ncent OS 的 TK4 內核,在不使用-k 參數是,系統遷移后仍然會使用 CentOS 現有的內核運行系統,使用-k 參數,系統重啟后將使用 Tencent OSTK4 內核運行系統-check 不執行任何遷移動作,僅僅做遷移的可行性檢查-level 命令行,choice:1,2,3-level 1:只替換相同版本軟件包;-level 2:替換相同版本和將升級的軟件包;-level 3(默認):全部同步。-checkcontinue 該參數用于遷移操作,直接使用前面預遷移檢查 check 的結果進行遷移,使用 checkcontinue 時不可使用-level 1 或 2;4.6.4.6
34、.CentOSCentOS 原地替換實施原地替換實施4.6.1.4.6.1.遷移平臺環境需求遷移平臺環境需求(1)資源需求TencentOS Server 遷移方案的部署和實施需要一臺獨立機器通過 ISO 裝機(該獨立機器可以是 windows vmware 虛擬機、linux kvm 虛擬機或者物理機),裝機完成后會自動部署TOSAM 管理平臺以及搭建 TencentOS Server Yum 源,獨立機器資源需求為:CPU:4 核內存:16GB硬盤:100GB(2)防火墻設置被遷移服務器=TOSAM8080/TCP開放 yum 源的訪問22/TCP目標遷移機器上傳遷移日志到 TOSAM 機
35、器TOSAM=被遷移服務器22/TCP開放 ssh 端口,用于 TOSAM 執行遷移任務操作終端=TOSAM8080/TCP測試 yum 源的訪問80/TCP訪問 TOSAM 的 Web 界面22/TCP訪問 ssh 端口用于平臺的部署以及文件上傳4.6.2.4.6.2.TOSAMTOSAM 部署部署部署說明部署說明TOSAM 部署基于 docker compose 安裝,共 2 個 container,一個為 Mysql,另一個為spug,spug 內部基于 django 后臺+react 前端實現的 Web 訪問以及管理邏輯建議 TOSAM 服務器的配置為 4C 16GB,磁盤大小為 10
36、0GB,操作系統為 Tencent OSServer 2.4(TK4),可在公有云上申請或私有化部署準備準備 dockerdocker composecompose 環境環境安裝 docker-ce 和 docker-compose-plugin(請使用物料中的 docker-ce rpm 包進行安裝,確保版本為 docker-ce-24.0.6)docker-ce-repo.tgz、TS2.4 everything iso、tosam_0.4_images-v2.tar.gz、tosam-data-demo-v3.tar.gz 上傳/root 目錄下;local.repo 上傳到/etc/y
37、um.repos.d此處宿主機為 TS2.4,使用 TS2.4 everything iso 構建 yum 源(根據實際環境確保 dockerrpm 成功安裝即可);roottosam-server#mount/root/TencentOS-Server-2.4-TK4-x86_64-everything-2408.2.iso/mntroottosam-server#cd/rootroottosam-server#tar-zxvf docker-ce-repo.tgz去掉舊 yum 源配置,并添加/etc/yum.repos.d/local.repo 文件作為新 yum 源配置:roottos
38、am-server#mkdir/etc/yum.repos.d/bakroottosam-server#mv/etc/yum.repos.d/*.repo/etc/yum.repos.d/bak/etc/yum.repos.d/local.repo 內容如下:ts2.4name=TS2.4baseurl=file:/mnt/gpgcheck=0enabled=1docker-ce-stablename=docker-ce-stablebaseurl=file:/root/docker-ce-stable/gpgcheck=0enabled=0docker-ce-7-stablename=doc
39、ker-ce-7-stablebaseurl=file:/root/docker-ce-7-stable/gpgcheck=0enabled=1安裝 docker-ce、docker-compose-plugin:roottosam-server#yum clean allroottosam-server#yum makecacheroottosam-server#yum install docker-ce docker-compose-plugin-yroottosam-server#systemctl enable docker-nowImage 文件需要本地化直接導入,下載 maridb
40、 和 tosam 的 docker image,壓縮包名稱為tosam_0.4_images-v2.tar.gz,上傳該壓縮包到服務器,解壓并 load 到 docker 中可以在微盤下載 tosam_0.4_images-v2.tar.gz:roottosam-server#ls-l tosam_0.4_images-v2.tar.gz-rw-r-r-1 root root 646711355 May 7 14:37 tosam_0.4_images-v2.tar.gzroottosam-server#gzip-d tosam_0.4_images-v2.tar.gzroottosam-se
41、rver#docker load-i tosam_0.4_images-v2.tarroottosam-server#docker imagesREPOSITORYTAGIMAGE IDCREATEDSIZEtosam0.47d7aabf041b85 months ago1.46GBmariadb10.8.251adad759c742 years ago414MB部署部署 TOSAMTOSAM編輯 docker compose 文件#vidocker-compose.ymlversion:3.3services:db:image:mariadb:10.8.2container_name:tos
42、am-dbrestart:alwayscommand:-port 3306-character-set-server=utf8mb4-collation-server=utf8mb4_unicode_civolumes:-/data/tosam/mysql:/var/lib/mysqlenvironment:-MYSQL_DATABASE=tosam-MYSQL_USER=tosam-MYSQL_PASSWORD=tosam.io-MYSQL_ROOT_PASSWORD=tosam.iotosam:image:tosam:0.4container_name:tosamprivileged:tr
43、uerestart:alwaysentrypoint:/entrypoint.shvolumes:-/data/mnt:/mntports:-80:80environment:-PYTHONIOENCODING=utf-8-MYSQL_DATABASE=tosam-MYSQL_USER=tosam-MYSQL_PASSWORD=tosam.io-MYSQL_HOST=db-MYSQL_PORT=3306depends_on:-db注:tosam container 的 volume 設置了/data/mnt 到容器內/mnt 的映射,該映射不是必須,這里主要是為了能夠方便的傳文件到容器內部,可
44、用于修改頁面文件等操作啟動容器roottosam-server#docker compose up-d+Running 3/3 Network root_default Created0.1s Container tosam-dbStarted0.0s Container tosamStarted0.0s查看運行的容器roottosam-server#docker psCONTAINER IDIMAGECOMMANDCREATEDSTATUSPORTSNAMESca46c3732425tosam:0.4/entrypoint.sh33 seconds agoUp 32 seconds0.0.0
45、.0:80-80/tcp,:80-80/tcptosam1dec5081a9edmariadb:10.8.2docker-entrypoint.s33 seconds agoUp 32 seconds3306/tcptosam-db初始化數據庫并創建管理員,設置管理員賬號為 admin,密碼為 Tencent1roottosam-server#docker exec-e LANG=en_US.UTF-8-ti tosam init_spug admin Tencent1.初始化/更新成功創建用戶成功登陸服務器登陸服務器登陸前確保防火墻開放了 80 端口訪問 http:/輸入用戶名 admin
46、和剛才設置的密碼 Tencent1,登陸系統運用模版運用模版刪除舊 tosam 配置文件,解壓新 tosam 模版配置文件:roottosam-server#docker compose down+Running 3/3 Container tosamRemoved2.4s Container tosam-dbRemoved0.4s Network root_default Removedroottosam-server#rm-rf/data/tosamroottosam-server#tar-xfC/dataroottosam-server#docker compose up-d+Runni
47、ng 3/3 Network root_default Created0.0s Container tosam-dbStarted0.0s Container tosamStarted重新登錄 tosam 系統,訪問 http:/4.6.3.4.6.3.初始化初始化 TOSAMTOSAM 環境環境設置環境變量設置環境變量TOSAM 平臺點擊“配置中心/應用配置”,出現如下界面:點擊“centos 遷移-工具部署”記錄后面的“配置”,出現如下界面:將上圖中紅框中的 IP 地址修改為 tosam 機器 IP,分別點擊記錄后面的“編輯”按鈕進行修改。ts2_tool_version 變量需要根據實際
48、情況進行調整,此處設置為 1.08-3.tl2;設置目標主機遷移腳本設置目標主機遷移腳本依次點擊 TOSAM 界面中“應用發布發布配置”,點擊“centos 遷移”前面的“+”,點擊展開的“編輯”:彈出如下界面:點擊“下一步”按鈕,進入如下界面:上圖中,點擊目標主機動作 2 至目標主機動作 8 后面移除按鈕,只留目標主機動作 1 即可,并將目標主機動作 1 的名稱改為“遷移”,將目標主機動作 1 的執行內容替換為 tosam_migrate.sh文件內容,點擊“提交”按鈕,才能生效;4.6.4.4.6.4.添加目標遷移機器添加目標遷移機器在在 TOSAMTOSAM 中添加被遷移的服務器中添加被
49、遷移的服務器點擊“主機管理”,選擇“Deafult”根分組下的“生產環境”,出現如下界面:頁面右側點擊“新建”,新建主機注:新建主機支持用 Excel 導入,Excel 模版如下圖,可以在 Excel 添加的時候,下載模版并準備主機信息填寫信息添加主機表格中獨立密鑰,可以不填寫,這樣會使用全局密鑰,可以在“系統設置”/“密鑰設置”中自行設置,如果沒有設置,系統初次添加主機的時候,會自動生成一個;點擊“驗證”按鈕,出現如下界面:輸入密碼,密碼會被保存,之后會通過密鑰實現免密登陸。密碼輸入后會對登陸進行校驗,校驗成功后主機被加入,不成功需要排查 root 密碼以及是否允許登陸目標主機批量執行命令目
50、標主機批量執行命令打開“批量執行”/“執行任務”,出現如下界面:點擊上圖右側紅框記錄,命令會出現在執行命令編輯框;點擊“添加目標主機”,選中需要執行的主機,然后執行測試的 shell 命令:點擊“開始執行”,可以看到執行結果WEBWEB 終端登錄目標機器終端登錄目標機器在“主機管理”中,點擊右上角的“Web 終端”,可以在 Web 界面連接所添加的主機,打開shell 進行管理或故障排查可以參照以上,加入遷移涉及到的主機,并根據遷移邏輯放到不同的分組中系統將讀取主機的基本信息并,點擊其中一臺主機,能夠看到這些基本信息:目標機器目標機器 IPIP 添加到候選列表添加到候選列表點擊“應用發布/發布
51、配置”,出現如下界面:點擊應用名稱為“centos 遷移”記錄前面“+”號,出現如下界面:點擊“centos 遷移”應用展開的“生產環境”后面的“編輯”,彈出如下窗口:點擊“選擇主機”,在彈出的窗口中勾選目標遷移機器(可以多選),點擊確定,回到上圖中,點擊“下一步”,出現如下界面:點擊“提交”按鈕,即完成了目標遷移機器添加到候選列表的過程,可以查看到當前關聯目標遷移機器的臺數;4.6.5.4.6.5.執行遷移動作執行遷移動作概述概述進入遷移窗口,并且業務團隊根據需求完成業務數據備份,并根據需要停止業務(也可以不停止業務,但遷移時會對性能產生影響,建議在業務壓力低時進行,同時,重啟服務器中業務會
52、暫停),然后根據遷移流程進行以下操作進行遷移創建一個發布申請,然后進行發布,便可執行對應的遷移動作針對一個 CentOS 7 全量遷移的過程,包括以下遷移動作:遷移之前的操作 部署遷移工具 進行系統備份 進行遷移預檢查 執行全量遷移遷移之后的操作:重啟 系統信息檢查遷移之前的操作遷移之前的操作遷移之前的操作包括:安裝遷移工具、系統備份、遷移預檢查、全量遷移;進入“應用發布/發布申請”,點擊“新建申請”選擇對應的“centos 遷移”填寫本次發布的標題,可以填寫發布的版本號,可以在選擇主機中刪選,然后點擊確定點擊“發布”,選擇“全量”,進行發布;此時會在目標遷移機器上部署遷移工具、系統備份、預遷
53、移檢查、全量遷移等操作;其中系統備份操作會在/mnt/backup 目錄下以當前時間創建一個目錄,用于存放本次備份數據,請確保/mnt 目錄下至少有 10G 空閑空間;預遷移檢查信息如下:2024-08-19 23:25:41 INFO:*the generalize of the migration:2024-08-19 23:25:41 INFO:*the number of packages migrated:1842024-08-19 23:25:41 INFO:*the number of packages retained:1192024-08-19 23:25:41 INFO:*
54、the number of packages missed in yum of target os:22024-08-19 23:25:41 INFO:*the detail info in directory/tmp/migrateinfo/表示,在接下來的遷移中,可以遷移的包數量為 184,保留現狀不遷移的包是 119 個,有 2個包在 TencentOS Server 中未提供(可能是第三方包),也不進行遷移如果想看到詳細的每一種包的列表,可以到/etc/migrateinfo/目錄中查看:migrate.log遷移工具日志,可以用于 debugmiss_packages.json缺少的
55、包列表retain_packages.json因依賴或兼容性原因不進行遷移的包sync_packages.json將會進行遷移的包全量遷移信息如下:目標遷移機器重啟目標遷移機器重啟由于服務器的重啟屬于風險操作,不建議在作業中批量對服務器進行重啟,可以手工逐臺重啟。進入“主機管理”點擊右上角“Web 終端”進入 Web 終端后,雙擊需要重啟的服務器,將會連接進入 ssh 終端,然后直接輸入 reboot命令重啟即可;檢查重啟后的系統信息檢查重啟后的系統信息點擊“批量執行/執行任務”,出現如下界面:點擊上圖右側紅框記錄,命令會出現在執行命令編輯框;點擊“添加目標主機”,選中需要執行的主機,然后執行
56、測試的 shell 命令:點擊“開始執行”,可以看到執行結果備注:多臺機器同時重啟與檢查系統信息,均可在“批量執行/執行任務”界面中實現:4.6.6.4.6.6.異常時系統恢復異常時系統恢復當遷移操作出現遷移異常時,進行系統恢復操作;修改環境變量修改環境變量點擊“配置中心/應用配置”,出現如下界面:點擊“系統恢復”后面的“配置”,出現如下界面:默認 restore_point 為空,則使用最近一次備份的數據進行系統恢復操作,推薦此操作;如果有多次備份數據,且希望手動指定從哪個目錄讀取數據來恢復,則需要點擊restore_point 后面的“編輯”,將 value 改為前面備份過程中/mnt/b
57、ackup/目錄下生成的目錄,比如“/mnt/backup/2024-08-19-193739”;目標機器目標機器 IPIP 添加到候選列表添加到候選列表此步驟可參考 4.4.4 節,將目標機器 IP 添加到應用名稱“系統恢復”下的“生產環境”;執行恢復操作執行恢復操作進入“應用發布/發布申請”,點擊“新建申請”選擇“系統恢復”,出現如下界面:點擊“選擇主機”,勾選需要恢復的機器 IP,點擊上圖“確定”按鈕,出現系統恢復發布申請記錄:點擊系統恢復記錄后面的“發布”,進行恢復操作:重啟查看系統信息重啟查看系統信息查看系統信息;5.5.TencentOSTencentOS ServerServer
58、 兼容性和生態兼容性和生態5.1.5.1.TencentOSTencentOS ServerServer 兼容性說明兼容性說明TencentOS Server 2.4 與 CentOS7 在用戶態程序上保持版本兼容和 ABI 兼容TencentOS Server3.1 與 CentOS8 在用戶態程序上保持版本兼容和 ABI 兼容在執行遷移的時候,如果應用與對應的 CentOS 版本兼容,可以認為與遷移后對應的TencentOS Server 版本也是兼容的5.2.5.2.TencentOSTencentOS ServerServer 生態認證生態認證硬件認證硬件認證TencentOS Server 支持主流的國內硬件平臺,包括兆芯、瀾起、鯤鵬、海光、飛騰等 CPU平臺,通過了雙向認證,國內主流硬件兼容性列表可以從以下官方網站獲得:https:/ Server 支持主流的國內商業軟件,并通過了雙向認證,國內商業軟件兼容性列表可以從以下官方網站獲得:https:/