紅帽RHEL 6內核優化方面改進概覽

紅帽RHEL 6內核優化方面改進概覽

 

摘要:   在RHEL 6中,紅帽公司將只提供對內核虛擬機(KVM)的支持。KVM會以一個單一模塊存在於內核中,這意味着KVM虛擬機是以進程的形式在該模塊的基礎之上運行。這使得虛擬機管理起來要容易得多。爲了使Linux虛擬化服務得 ...
  在RHEL 6中,紅帽公司將只提供對內核虛擬機(KVM)的支持。KVM會以一個單一模塊存在於內核中,這意味着KVM虛擬機是以進程的形式在該模塊的基礎之上運行。這使得虛擬機管理起來要容易得多。爲了使Linux虛擬化服務得到最大優化,RHEL 6對內核進行了一些改進。本文簡要講述了其中一些最重要的改進。

  KVM虛擬化技術爲RHEL 6提供了下一代虛擬化解決方案。因爲KVM比Xen更新更有效,所以紅帽公司將在RHEL 6中徹底放棄Xen(但會提供移植Xen虛擬機的方法)。

  優化的過程處理

  RHEL進程可以在儲存桶中組織:可以分配CPU和其他資源的實體。因爲虛擬機也是以進程形式運行,所以這個屬性也成爲虛擬機運行機制的一部分。

  爲了使虛擬機能夠在KVM中平穩運行,每一個虛擬CPU都被調度程序當做一個線程來處理。爲了進行有效的調度,內核啓用了一種新的操作模式—— “訪客模式”。一個虛擬訪客不能直接對Linux內核進行系統調用(系統模式下的進程則可以),但它卻能夠運用管理調用與管理程序進行對話。這種新的操作模式充分利用了Linux內核的新功能,如調度、計數、內核同頁合併(KSM)。

  硬件支持方面的改進

  內核升級還只是KVM性能的一部分。另一部分則在於硬件本身。RHEL 6內核能夠充分利用幾個完全由硬件實現的功能。首先,關於CPU的支持,有擴展頁表(EPT)。此項功能可以減少仿真的需要,從而使虛擬化服務運行得更快。接着是在AMD環境下被稱爲IOMMU、在Intel環境下被稱爲VT-d的功能。這項功能允許用戶安全地直接使用物理I/O設備,同時保護相同的設備不會被其他用戶意外使用。這種保護措施是必要的,因爲如果某個用戶向一個已被佔用的設備中寫數據,就有可能導致主機崩潰。

  另一項重要功能是SR-IOV。該功能指在PCI總線上虛擬I/O接口,安全地共享真實的硬件。該功能對網絡適配器尤其重要,能夠允許一個物理設備同時提供多個訪客用戶可以使用的虛擬設備。最後一個能在虛擬環境下使用的重要硬件功能是NPIV。該功能允許共享儲存設備,這意味着每一位用戶都可以使用存儲設備的一部分。

爲了利用這些硬件上的改進功能,RHEL內核得到了加強。例如,CPU方面的加強能夠允許用戶分配超過64個CPU。此外,由於內核RCU同步機制的“鎖定”特性——實際上是沒有任何鎖的,只是一種在SMP對稱多處理器環境下避免鎖、提高性能的機制——能夠被分配的CPU數量有個最小值。

  RHEL 6還有一些內存方面的增強。首先,第一項增強便是透明的大內存分頁。這意味着大內存分頁(允許內核分配大的內存塊而不是4KB的小塊)是動態的,因此,在系統啓動時就不用爲內存執行分頁計劃。另一項則是對KVM有利的功能——內核同頁合併。此項功能允許多個虛擬機同時訪問同一個管理頁面,清除啓動階段所有的內存頁面,提高了Windows虛擬機的性能。

  下一個改進的部分就是塊I/O。首先是本地異步IO和preadv/pwritev系統調用。有了這些,你可以在讀/寫之前將需要的內存區域組合起來,提高多線程環境下的性能。內核現在也已經具有了MSI中斷支持。MSI中斷與PCI設備息息相關,允許你在多路並行中斷線上工作。另一個相關改進是塊對齊,如今,塊對齊的默認值進行了優化,使得系統具有更好的性能。上述所有這些改進都是爲了提供內核級的絕佳性能。

  一些特殊的I/O增強也爲網絡接口性能的提高帶來了好處。其中最重要的一處增強便是將網絡空間的一部分從用戶空間移動到內核空間的虛擬主機網。這一點對virtio驅動非常有用。virtion驅動器還能爲KVM用戶提供更好的網絡性能,同時允許用戶使用TAP驅動與虛擬設備進行對話。使用虛擬主機網的好處在於它直接掛靠在內核中,因此能夠提供比需要仿真的qemu方法好得多的性能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章