鯤鵬經典直播征文】+openEuler內核熱升級,業務不停機

      網友投稿 1330 2022-05-30

      一、openEuler21.03簡介

      從狹義OS到廣義OS

      OpenStack ls Ready

      聯通貢獻的?OpenStack Victoria 進入openEuler正式版本中,標志著 openEuler 第一次完整的支持 OpenStack 基礎設施。

      全新內核,全新開始

      從21.03之后完整支持 兆芯 和?RISC V,詳見下圖。

      計算,存儲,網絡等支持與優化

      1. 計算:內存擴展;處理器增強隔離;MPAM ARM NMI支持。

      2. 存儲:io_uring支持;SCM文件系統。

      3. 網絡:XDP支持;更多網絡設備支持;1822智能網卡支持。

      內核熱升級

      華為內部已可以在封閉場景中使用,現開放出來使得能夠在開放場景中和合作伙伴共同協作。

      內存新介質技術探索(etmem framework)

      共享資源利器-MPAM

      HA高可用軟件

      漂亮的圖形界面

      二、openEuler社區發展綜述

      社區SIG組發展的新趨勢

      SIG組數量已經超過80個,開始從純技術引導轉變為業務引導。其中一個典型例子為 BIO(生化計算),它體現了openEuler應用范圍到了專業的領域,同時發現有人通過社區來構建相關的生態,同時能提出了新的應用模型以及對于芯片的需求是什么。

      合規性SIG

      Aarch32 SIG組

      三、openEuler21.03社區技術展望

      新的處理器廠商加入社區

      openEuler for Embedded 加入

      用云原生的思路重新定義OS,打造━整套“開箱即用”的云原生基礎設施

      secGear機密計算

      stratoVirt虛擬化

      四、內核熱升級技術簡介

      背景

      Linux kernel有許多代碼且代碼還在增加,os代碼質量良莠不齊,因此會出現許多cve漏洞之類的問題,針對這種問題大體有兩種解決辦法:熱補丁和熱遷移。

      熱補丁無法處理Kapi改變或者內聯函數,邏輯等改變比較大的情況,熱補丁多的話還會引起維護困難。熱遷移主要用于虛擬機的遷移上,會有比較大的遷移成本,引入比較大的遷移拷貝。為更好地解決這些問題,內核熱升級應運而生,就是為了做到內核升級而無感知。

      熱升級流程

      大體流程如下圖所示。

      1. Keep Memory

      Dump出來的snapshot文件巨大,導致時間增長,無法忍受故引入了keep memory這么個概念。

      2. Pin application memory

      pin 優化原理:讓應用數據保持在內存中,待內核熱升級后,將帶有應用數據的內存重新映射到升級內核后的應用進程當中。

      用戶態pin流程圖:

      內核態pin流程圖:

      3. Kernel Fast Reboot

      CPU Park

      Preload and decompress kexec images

      Memory defer and parallelize initialization

      Deferring device driver probe/ initialization

      4. Keep Device State

      從軟件層面重新加載內核,不涉及硬件的改動,但是內核加載后還是會把硬件重新加載,這就導致一些問題。比如:切換內核加載時間長,連接狀態發生改變等。故從PCI設備狀態保持和驅動狀態保持分析。

      Keep PCI Device

      1) Skip PCl Enumeration

      1. Not PowerManager suspend/restore

      2. Restore PCl tree from old kernel

      3. Don’t read/write HW registers

      4. Skip HW reset and device init

      2) Keep device alive

      1. Reload irq and DMA config from old kernel

      2. Reload memory and io mapping

      Keep Driver State

      1. part 1

      【鯤鵬經典直播征文】+openEuler內核熱升級,業務不停機

      1) Add driver suspend/restore API

      1. Not PowerManager suspend/restore

      2. Save driver state info into pined memory at suspend

      3. Restore driver state info from old kernel at restore

      4. Do some prepare and post work

      2) Keep global and static variable in memory

      1. ko in new kernel uses data and bss sections from ko of old kernel

      2. supply of adapting for new ko with old data

      2. part 2

      1) Keep call back functions effective in new kernel

      1. lntroduce virtual Callback table

      2) Freeze and Restore workqeue

      1. Freeze specified workqueue

      2. Restore specified workqueue

      5. Future Attempt

      Enhance Criu

      1) Preserve process PIDs during dumped tasks

      2) Keep unix stream socket connection like tcp repair

      3) Improve device fds dumping/restoring

      4) Support device fds mmaping

      5) Support file locks dumping/restoring

      6) And some bug fix...

      Defect

      1) Limitations of CRIU

      2) Not universal keep state method for devices and drivers

      3) Reliability and Robustness

      4) Reduce end-to-end time of Seamless Kernel Update

      5) Universality

      lmagination

      1) A new and easy-to-use tool to checkpoint/restore apps

      2) Standard and universal method for drivers save/restore

      3) Try to push our patch to the linux mainline

      4) Support for VM host update natively

      5) Full user space state checkpoint/restore

      6) Gradually become the standard for kernel living upgrade

      7) More Reliability and Applicability

      五、總結

      1)對openEuler21.03有一個簡單的了解

      2)對openEuler社區及其技術展望有一定的了解

      3)了解openEuler內核熱升級所涉及的技術點

      【參考】

      【1】鯤鵬首頁:鯤鵬社區-官網丨凝心聚力 共創行業新價值 (hikunpeng.com)

      【2】openEuler開發資源:openEuler 開發資源-鯤鵬社區 (hikunpeng.com)

      【3】openEuler源碼倉:src-openEuler

      【4】直播連接:openEuler內核熱升級,業務不停機-鯤鵬社區 (hikunpeng.com)

      視頻直播 鯤鵬

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:整理一份可以讓 Python 變得更快的工具清單
      下一篇:祖傳shi山代碼重構實戰(01)-Extract Class提煉類
      相關文章
      亚洲看片无码在线视频| 亚洲自偷自偷偷色无码中文| 亚洲成年人电影在线观看| 亚洲国产AV一区二区三区四区| 自拍偷自拍亚洲精品被多人伦好爽| 91亚洲国产成人久久精品| 国产成人亚洲综合无码| 亚洲天堂2017无码中文| 亚洲免费一级视频| 亚洲第一成年人网站| a级亚洲片精品久久久久久久 | 亚洲国产精品第一区二区| 国产亚洲精品欧洲在线观看| 亚洲精品国产啊女成拍色拍| 久久青草亚洲AV无码麻豆| 亚洲精品亚洲人成在线| 亚洲欧洲国产综合AV无码久久| 亚洲综合久久久久久中文字幕| 亚洲色图视频在线观看| 亚洲国产成人精品青青草原| 亚洲女人18毛片水真多| 亚洲资源最新版在线观看| 亚洲国产人成网站在线电影动漫| 久久久久久久久亚洲 | 久久亚洲精品无码av| 国产成人亚洲精品| 亚洲中文字幕无码久久2020| 亚洲最新在线视频| 狠狠色伊人亚洲综合网站色| 亚洲欧洲国产综合AV无码久久| 久久久久久久久无码精品亚洲日韩| 国产亚洲综合一区二区三区| 亚洲日韩在线中文字幕第一页 | 亚洲国产高清在线精品一区| 精品久久久久久亚洲精品| 亚洲熟妇无码AV不卡在线播放| 久久精品熟女亚洲av麻豆| 亚洲精品成人久久久| 亚洲av无码成人精品区一本二本 | 亚洲中文字幕久久久一区| 国产AV无码专区亚洲AV蜜芽 |