天翼云為尤拉社群貢獻首個C++熱補丁 加速推進聯創技術落地應用
天翼雲與尤拉社群開展關鍵技術聯合創新 熱補丁實現主機崩潰線上修復
天翼雲與尤拉社群共研支援 aarch64及x86平臺libcareplus熱補丁功能
近日,中國電信天翼雲基礎架構技術團隊與 openEuler社群合作共研了全面支援aarch64及x86平臺的libcareplus熱補丁功能,併為尤拉社群貢獻首個C++熱補丁,實現主機崩潰線上修復。這是天翼雲與尤拉社群聯合開展關鍵技術創新取得的又一成果。
之前雙方已成功研發了基於 Libcareplus工具的Qemu熱補丁功能。據天翼雲科技有限公司副總經理兼技術長廣小明在今年4月尤拉大會上介紹,Qemu熱補丁功能使主機分批序列升級轉變為並行同步升級,支撐現網補丁實施週期由月縮減到周,極大縮短了補丁的實施週期。
目前,新研熱補丁工具普適性已得到極大提升,應用場景更廣泛。而作為落地應用之一,天翼云為尤拉社群貢獻的首個 C++熱補丁實現了雲主機不用重啟修復bug的能力,保障客戶業務不中斷,真正做到“為飛行中的飛機更換髮動機”。
熱補丁技術能夠在不影響現網業務的情況下完成程式修復、適用於需要快速響應的場景,可謂是短小精悍。其中 libcareplus熱補丁技術更是集萬千寵愛於一身。
據瞭解, ibcareplus熱補丁技術是基於上游社群libcare獨立發展的分支,由openEuler社群進行自主孵化,主要包括熱補丁製作、補丁管理和補丁加/解除安裝等。相比於上游社群的libcare,libcareplus作為一個使用者態程式熱補丁框架,可以在不重啟程式的情況下,支援對x86和aarch64架構中Linux系統上執行的目標程式進行熱補丁操作。同時,libcareplus全面支援openEuler Qemu元件,支援函式級過濾、增量補丁、以及補丁檔案解析等。
此次天翼雲聯合尤拉社群打造的 libcareplus熱補丁功能,可以應用於CVE漏洞修復,也可應用於不中斷應用服務的緊急bug修復。
而且在合 作 研 發 過程中,天翼雲基礎架構技術團隊還針對全域性變數、區域性靜態變數等熱補丁功能缺失的痛點進行深度研發。 以前增加全域性變數補丁會導致目標程式崩潰,只能採用分配記憶體等方式規避,經最佳化後增強了補丁程式碼的易修改和易維護性。這些功能成功適配多個主流 Q emu版本,大大提高了libcareplus熱補丁工具的適用性,為大規模批次應用奠定了堅實的基礎。
同時 在實際業務應用場景中,天翼雲發現 libcareplus在處理g++高版本生成的彙編檔案時,在彙編檔案比對和生成過程中,程式碼塊結構劃分異常,進而導致生成的彙編檔案無法被as彙編器正確解析。天翼雲聯合尤拉社群針對該場景進行最佳化創新,基於尤拉社群libcareplus 擴充套件增加支援g++8特性,實現libcareplus支援C++軟體熱補丁製作及管理能力 。
目前 ,該 特性原始碼及單元測試用例已貢獻到尤拉社群,並在尤拉社群虛擬化SIG組進行技術分享,相關特性已被尤拉社群收錄至22.03 LTS發行版。
新研熱補丁工具普適性增強,應用場景更加廣泛
經過 天翼雲基礎架構技術團隊與openEuler社群共同最佳化後,libcareplus熱補丁工具的應用場景得到了極大的擴充套件。
1.為單函式修改製作單個補丁
2.為多個函式修改製作多個補丁
3.新增函式
4.新增全域性變數
5.TLS變數
6.冷熱塊重排
加速聯創技術落地 天翼云為尤拉社群貢獻首個 C++熱補丁
對很多使用者來說,最怕在業務辦理過程中突然中斷、等待修機,但這種現象卻不時發生。當尤拉系統下的雲主機出現 Qemu崩潰時, 通常情況下該問題可以透過重啟雲主機冷補丁方式進行修復 ,但會帶來客戶業務出現短暫的中斷。
為了解決線上部分 Q emu crash導致雲主機重啟問題,中國電信天翼雲彈性儲存技術團隊深入程式碼分析,發現原生librbd存在嚴重的程式碼bug。為了保證客戶雲上業務連續不中斷,提供更高的雲端儲存可用性 , 中國電信天翼雲彈性儲存技術團隊 透過 不斷反覆驗證和實驗 , 利用libcareplus C++熱補丁技術,librbd熱補丁程式碼在不進行換行、不新增介面的情況下,透過程式碼資料結構,計算變數在記憶體中的地址偏移的方式對程式碼進行修復,最終在記憶體中更新librbd補丁,實現不 需 重啟虛擬機器打librbd熱補丁能力 ,即 雲主機不用重啟 也能 修復bug的能力, 既 保 障客戶 雲上業務連續性 又 大大縮短運維時間 ,真正 做到了 “ 為 飛行中的飛機更換髮動機 ”。
目前,該項熱補丁技術成為了尤拉社群第一個 C++熱補丁,已在南寧、昌吉、蘭州等資源池正式上線,部署超過10萬臺雲主機,覆蓋金融、醫療、政企等眾多行業客戶。
未來,天翼雲 將與 尤拉開源社群持續合作,開展更多聯合創新, 包括 在提升雲主機資源利用效率方面,開展虛擬機器高低優先順序混部、容器線上離線混部創新;在可信雲主機方面,開展機密計算創新;在DPU解除安裝上,開展分散式儲存解除安裝、容器網路解除安裝創新;在雲原生全棧方面,開展安全容器、KubeEdge 邊雲協同創新 等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70014251/viewspace-2900354/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 創新的力量 天翼雲推動科技創新技術實踐落地
- 為開源社群做貢獻
- 首個能源區塊鏈應用落地推動清潔能源互聯共享區塊鏈
- 技術貢獻解讀 浪潮雲海OpenStack X版本技術貢獻中國第一
- 企業物聯網技術應用推進規劃
- 熱更新應用--熱補丁Hotfix學習筆記筆記
- 《金融電子化》2021 金融業新技術應用創新突出貢獻獎。
- 再次登頂,浪潮雲海OpenStack Y版本社群技術貢獻中國第一
- 安卓App熱補丁動態修復技術介紹安卓APP
- AllThingsD:黑莓應用商一開發者貢獻47000+個應用
- EBS opatch 補丁應用
- 渝中區:找準場景應用,區塊鏈技術加速落地區塊鏈
- 如何向 Mozilla 開源社群做貢獻
- 為何《貢獻者許可協議》不利於開源社群?協議
- Android熱修復技術——QQ空間補丁方案解析(3)Android
- 平凱星辰獲評 《金融電子化》2021 金融業新技術應用創新突出貢獻獎
- 博睿APM獲《金融電子化》2021年金融業新技術應用創新突出貢獻獎
- 補發的團隊貢獻分分配
- 為抗擊新肺炎貢獻一份技術力量-App研發APP
- 微信 Android 熱補丁實踐演進之路Android
- 微信Android熱補丁實踐演進之路Android
- 零起點的開源社群貢獻指南
- 加速機器人產業落地 思嵐科技榮獲 “抗議先鋒卓越貢獻獎”機器人產業
- 樹莓派使用入門:如何為樹莓派社群做出貢獻樹莓派
- 訓練營 | 如何成為一名開源社群貢獻者?
- NULS社群為了承載商業應用落地所累積的區塊鏈技術思維 - 模組篇區塊鏈
- 雅虎選擇亞馬遜雲科技作為廣告技術業務的首選公有云供應商亞馬遜
- 大模型基礎應用框架(ReACTSFTRAG)技術創新及零售業務落地應用大模型框架React
- 乾貨!天翼雲DPU技術解碼
- 天翼雲混合雲容災技術解析
- 如何為PHP貢獻程式碼PHP
- 如何為 PHP 貢獻程式碼PHP
- 【補丁】Oracle補丁的知識及術語Oracle
- 用 C++ 開啟技術創業之旅C++創業
- TCL選擇亞馬遜雲科技為首選雲服務供應商,加速推進AIxIoT戰略亞馬遜AI
- 為什麼要貢獻開源
- 2012年蘋果iOS應用經濟為美國貢獻8萬個就業機會蘋果iOS就業
- Apache SeaTunnel 4月回顧:明星貢獻者與技術突破Apache