• <strike id="fdgpu"><input id="fdgpu"></input></strike>
    <label id="fdgpu"></label>
    <s id="fdgpu"><code id="fdgpu"></code></s>

  • <label id="fdgpu"></label>
  • <span id="fdgpu"><u id="fdgpu"></u></span>

    <s id="fdgpu"><sub id="fdgpu"></sub></s>
    您當前的位置是:  首頁(yè) > 新聞 > 文章精選 >
     首頁(yè) > 新聞 > 文章精選 >

    騰訊云KVM性能優(yōu)化實(shí)踐驗談

    --熱遷移、RTC計時(shí)與安全加固

    2017-11-14 16:05:04   作者:   來(lái)源:CTI論壇   評論:0  點(diǎn)擊:


      前不久,KVM Forum 大會(huì )發(fā)布了 2017 年最新 KVM 開(kāi)源貢獻榜,騰訊云因其向 KVM 內核貢獻了 46 個(gè) patch,成為全球唯一一家上榜的公有云廠(chǎng)商。據了解,這些補丁大多是騰訊云在實(shí)戰過(guò)程中的經(jīng)驗總結,主要用于改善和解決 KVM 虛擬機在熱遷移,時(shí)鐘計時(shí)、嵌套虛擬化等方面的使用問(wèn)題以及修復一些安全漏洞。
      在開(kāi)源的所有 patch 里,比較引人注目的是,騰訊云率先采用快速寫(xiě)保護、共享臟頁(yè)位圖、優(yōu)化熱遷移塊大小等一系列方式,優(yōu)化熱遷移效率以及提升熱遷移成功率。那么,它的虛擬機熱遷移過(guò)程和具體方法是什么?騰訊云又如何看待 KVM 技術(shù)開(kāi)源?KVM 現在面臨著(zhù)哪些新的挑戰?帶著(zhù)這些問(wèn)題,InfoQ 采訪(fǎng)了騰訊云高級工程師肖光榮,就騰訊云的 KVM 開(kāi)源技術(shù)與開(kāi)源思路做了簡(jiǎn)單交流。
      InfoQ:簡(jiǎn)單闡述一下 KVM 虛擬化技術(shù)以及 KVM 和云計算的關(guān)系?
      肖光榮: KVM 是 Kernel-based Virtual Machine 的簡(jiǎn)稱(chēng),KVM 要求 CPU 支持硬件虛擬化技術(shù)(如 intel VT 或 AMD-V),是 Linux 下的全虛擬化解決方案。KVM 由處于內核態(tài)的 KVM 模塊和用戶(hù)態(tài)的 QEMU 兩部分構成。內核模塊實(shí)現了 CPU 和內存虛擬化等決定關(guān)鍵性能和核心安全的功能并向用戶(hù)空間提供了使用這些功能的接口,QEMU 利用 KVM 模塊提供的接口來(lái)實(shí)現設備模擬、 IO 虛擬化和網(wǎng)絡(luò )虛擬化等。單個(gè)虛擬機是宿主機上的一個(gè)普通 QEMU 進(jìn)程,虛擬機中的 CPU 核(vCPU)是 QEMU 的一個(gè)線(xiàn)程,VM 的物理地址空間是 QEMU 的虛擬地址空間(圖 1)。
      vCPU 線(xiàn)程經(jīng)過(guò) KVM 模塊提供的系統調用進(jìn)入到宿主機內核態(tài),在內核態(tài)切換到 CPU 的非根模式,即 guest 模式,此時(shí)虛擬機內的 CPU 獲得宿主機 CPU 資源,得以執行。在 guest 模式中,遇到敏感指令無(wú)法直接執行,或者有特定的內部異常和外部中斷產(chǎn)生,vCPU 會(huì )退出到根模式由 KVM 內核或 QEMU 來(lái)模擬執行(圖 2)。
      KVM 虛擬化技術(shù)是當前云計算中計算虛擬化的主流技術(shù),是云計算的核心底層能力,使用 KVM 把多臺物理機虛擬化后,組成一個(gè)大的虛擬資源池,方便用戶(hù)從資源池中按需分配計算能力,提升資源的使用效率,同時(shí)保證多用戶(hù)資源之間的隔離性、安全性。
      InfoQ:騰訊云此次向 KVM 社區貢獻的 46 個(gè) patch 主要解決了哪些問(wèn)題?
      肖光榮:這 46 個(gè) patch 是我們在實(shí)戰過(guò)程中的經(jīng)驗總結,用于改善和解決 KVM 虛擬機在實(shí)際運營(yíng)過(guò)程中遇到的一些問(wèn)題,這些 Patch 主要應用在以下三個(gè)方面:
      時(shí)鐘方面重構 KVM 的 RTC 計時(shí)框架。讓 windows 虛擬機的時(shí)鐘系統在時(shí)鐘頻率頻繁調整的情況下保持精準。重構 KVM LAPIC Timer 的模式切換和頻率調整的模擬,使其完全與硬件行為保持一致。優(yōu)化 KVM LAPIC Timer 時(shí)鐘中斷注入的延遲。發(fā)現并解決了使用硬件輔助的 VMX Preemption Timer 模擬的 KVM LAPIC Timer 時(shí)的各種搶占問(wèn)題。
      嵌套虛擬化方面重構異常注入的邏輯。解決了嵌套虛擬化下異常丟失的問(wèn)題。添加異步缺頁(yè)異常 (Async Page Fault) 在嵌套虛擬化下的支持。這些問(wèn)題的解決,使得嵌套虛擬化更加穩定和高效,可以讓更多的用戶(hù)在不導鏡像的情況下,將業(yè)務(wù)遷移上云。
      修復 KVM 將宿主機信息外泄的問(wèn)題。修復 KVM 在模擬 CPUID 指令和處理虛擬機設備訪(fǎng)問(wèn)時(shí),意外地將宿主機上的內存泄露到虛擬機。
      InfoQ:騰訊云在虛擬機熱遷移技術(shù)上有比較明顯的突破,能否講解一下虛擬機的遷移過(guò)程以及騰訊云如何提升熱遷移性能?
      肖光榮:虛擬機熱遷移是一項非常重要的技術(shù),熱遷移可以在用戶(hù)幾乎無(wú)感知的情況下將虛擬機從當前宿主機遷到另外的宿主機,熱遷移主要用于解決一些軟硬件不可逆場(chǎng)景下的虛擬機可用性問(wèn)題,如:宿主機硬件批次性隱患、宿主機內核內存泄漏等。騰訊云內部大量地使用熱遷移來(lái)提升虛擬機的可用性,從近一年的統計數據來(lái)看,已經(jīng)做到虛擬機的可用性大于物理機。
      虛擬機的熱遷移主要有下面幾步:
    • 在目標宿主機上準備虛擬機運行環(huán)境,如掛載共享存儲,創(chuàng )建虛擬網(wǎng)絡(luò )等;
    • 從源宿主機建立到目標宿主機的連接,用于傳輸虛擬機的狀態(tài),比如內存;
    • 源端需要捕捉內存的更改并記錄在內存傳輸過(guò)程中有哪些頁(yè)面被改動(dòng),這些臟頁(yè)需要在下一輪迭代中繼續傳輸;
    • 傳輸全量?jì)却妫?/li>
    • 本輪內存傳輸完畢后,如果剩下的臟頁(yè)數量能在設定的停機時(shí)間內傳輸完畢,那么將虛擬機停機,否則繼續傳輸臟內存,直到臟內存的量收斂到可以在預定時(shí)間內傳輸完成為止;
    • 傳輸余下的臟內存,以及停機時(shí) CPU 寄存器和各個(gè)子系統的狀態(tài);
    • 此時(shí)源端和目標端的虛擬機狀態(tài)完全一致,在目標端讓虛擬機恢復運行,遷移完畢。
      如上所述,源端需要去捕獲內存的更改,在當前的環(huán)境下是采用寫(xiě)保護和臟頁(yè)位圖的方法,即先把內存全部變?yōu)橹蛔x,在虛擬機寫(xiě)內存時(shí)就會(huì )產(chǎn)生異常被 KVM 內核模塊捕獲并且記錄到臟頁(yè)位圖,該臟頁(yè)位圖最后被復制到 QEMU,據此 QEMU 能知道哪些內存被更改。
      對于臟頁(yè)內存的捕獲,我們主要通過(guò)兩大方式提升熱遷移效率:1)采用快速寫(xiě)保護算法,該算法是無(wú)鎖的并且算法復雜度為 O(1),這就意味著(zhù)它的性能與虛擬機的內存大小和工作負載無(wú)關(guān)。2)采用 KVM 內核模塊和 QEMU 共享臟頁(yè)位圖的方法,實(shí)現零拷貝以及減少用戶(hù)態(tài)和內核態(tài)的上下文切換。
      另外在遷移臟塊的時(shí)候,針對子機內部 IO 性能下降的問(wèn)題,優(yōu)化熱遷移塊大小,避免傳輸無(wú)用數據,提升熱遷移成功率。當然,騰訊云還有很多其他提升熱遷移性能和穩定性的優(yōu)化方法,在此就不一一列舉了。
      InfoQ:騰訊云如何看待云廠(chǎng)商們對 KVM 開(kāi)源的貢獻和支持問(wèn)題?
      肖光榮:騰訊云一直秉承開(kāi)放,共享的心態(tài)參與開(kāi)源,憑借龐大的用戶(hù)群和 KVM 集群規模,騰訊云在 KVM 虛擬化上做了深入的研究和豐富的實(shí)踐。騰訊云自 2017 年 5 月加入 Linux 基金會(huì )以來(lái),更加大了回饋社區的力度。在 KVM 內核領(lǐng)域,已經(jīng)是貢獻度最高的公有云廠(chǎng)商。
      過(guò)去,大型開(kāi)源項目一直鮮見(jiàn)中國大型企業(yè)的身影,所以開(kāi)源界一直詬病中國企業(yè)只索取不貢獻,作為公有云的一線(xiàn)廠(chǎng)商,我們希望通過(guò)實(shí)際行動(dòng)轉變開(kāi)源界的看法。
      當前 KVM 虛擬化技術(shù)是各家云廠(chǎng)商使用的主流虛擬化技術(shù),騰訊云有一個(gè)專(zhuān)門(mén)負責做開(kāi)源的團隊,該團隊一方面將持續創(chuàng )新以來(lái)解決騰訊云線(xiàn)上遇到的各種挑戰并且將產(chǎn)出反饋給社區,另一方面探索云計算領(lǐng)域的新技術(shù),做好前沿技術(shù)的預演和積累。同時(shí)我們也希望各大云廠(chǎng)商加大對 KVM 項目的投入,積極參與到社區,共同應對新硬件,新架構給 KVM 帶來(lái)的挑戰。
      InfoQ:KVM 技術(shù)現在面臨著(zhù)哪些新的挑戰?
      肖光榮:一方面,Intel 不斷推出新 CPU 架構:haswell、broadwell、skylake 到 cascadelake,網(wǎng)絡(luò )帶寬從 10G 到 25G 再到 100G,更新的硬件架構,更高的網(wǎng)絡(luò )帶寬需要更高效的虛擬化才能將硬件的性能充分發(fā)揮。另一方面,GPU、FPGA 在 KVM 上的虛擬化、池化有待突破,否則 GPU、FPGA 的整體利用率無(wú)法提升。虛擬機網(wǎng)絡(luò )性能一直是虛擬化的短板,利用智能網(wǎng)卡等技術(shù)可以將網(wǎng)絡(luò )性能做到和物理機旗鼓相當,但同時(shí)也讓熱遷移變得困難。
      嘉賓介紹
      肖光榮,騰訊云開(kāi)源團隊負責人,操作系統專(zhuān)家。肖光榮在 Linux 內核、KVM 社區工作近十年,是 Ftrace, MM, Networking 等子系統的活躍貢獻者。近幾年主要工作在虛擬化領(lǐng)域,是 KVM 的核心開(kāi)發(fā)者,Virtual NVDIMM 子系統的維護者。肖光榮向社區提交了大量 Patch,在華人內核貢獻者中排名 Top 15,在內核和 KVM 社區擁有巨大影響力。
    【免責聲明】本文僅代表作者本人觀(guān)點(diǎn),與CTI論壇無(wú)關(guān)。CTI論壇對文中陳述、觀(guān)點(diǎn)判斷保持中立,不對所包含內容的準確性、可靠性或完整性提供任何明示或暗示的保證。請讀者僅作參考,并請自行承擔全部責任。

    相關(guān)熱詞搜索: 騰訊云 KVM

    上一篇:管理對呼叫中心聊天機器人的預期

    下一篇:最后一頁(yè)

    專(zhuān)題

    亚洲精品网站在线观看不卡无广告,国产a不卡片精品免费观看,欧美亚洲一区二区三区在线,国产一区二区三区日韩 水城县| 定远县| 富源县| 郑州市| 成武县| 成安县| 英山县| 赤城县| 尉犁县| 体育| 通化市| 远安县| 金阳县| 正宁县| 永年县| 普安县| 武川县| 准格尔旗| 开封县| 安平县| 富宁县| 乡城县| 蒙城县| 静乐县| 古浪县| 汪清县| 横山县| 临颍县| 肃宁县| 南陵县| 饶河县| 湖南省| 张掖市| 唐海县| 安陆市| 宁乡县| 兴宁市| 河源市| 云浮市| 炎陵县| 莱州市| http://444 http://444 http://444 http://444 http://444 http://444