【鯤鵬經典直播征文】+【鯤鵬應用使能套件】BoostKit虛擬化
一、鯤鵬應用使能套件BoostKit虛擬化整體介紹
1)主流虛擬化技術
對比了幾種主流虛擬化技術架構:ESXi、Xen與KVM,其主要差別在與各組件(CPU、內存、磁盤與網絡IO)的虛擬化與調度管理實現組件有所不同。
ESXi虛擬化:所有虛擬化功能都在內核實現。
Xen虛擬化:內核僅實現CPU與內存虛擬化, IO虛擬化與調度管理由Domain0(主機上啟動的第一個管理VM)實現。
KVM虛擬化:內核實現CPU與內存虛擬化,QEMU實現IO虛擬化,通過Linux進程調度器實現VM管理。
2)虛擬化發展趨勢:
經過長時間發展,傳統行業市場基于KVM技術構筑成熟、穩定的IaaS平臺;
互聯網行業基于Docket容器技術構筑靈活、標準化、輕量化PaaS平臺;
3)鯤鵬虛擬化總體架構
鯤鵬BoostKit虛擬化總體架構主要由硬件基礎設施、操作系統、云平臺、云管理集群平臺構成,其中云平臺支持華為自研的HCS(HUAWEI CLOUD Stack)私有云平臺以及開源QEMU-KVM、開源Docker容器平臺。云管理集群平臺包括開源OpenStack平臺、開源oVirt平臺和開源Kubernetes平臺。
4)鯤鵬BoostKit虛擬化優勢:
鯤鵬BoostKit虛擬化基于TaiShan 200服務器,端到端打通硬件、操作系統、虛擬化軟件、OpenStack云管理軟件的全堆棧,并根據鯤鵬架構進行深度性能調優。鯤鵬BoostKit虛擬化相比友商在性能、虛擬機密度方面有一定優勢。性能調優從硬件參數、操作系統內核、虛擬化調優3個方面展開。主要價值如下:
鯤鵬BoostKit虛擬化深度進行性能優化,充分發揮鯤鵬處理器的多核性能優勢:
TaiShan 200服務器(2*華為鯤鵬920 5250處理器)對比業界主流高端雙路服務器,滿負載場景下業務性能有所提升。
TaiShan 200服務器(2*華為鯤鵬920 5250處理器)對比業界主流高端雙路服務器,綜合負載場景下業務性能有所提升。
鯤鵬BoostKit虛擬化從硬件參數、操作系統內核及虛擬化平臺進行性能調優。調優項如圖所示。
圖?虛擬化性能調優項
鯤鵬BoostKit虛擬化擁有開放的軟件生態:
支持開源KVM、開源Docker組件,支持開源OpenStack、Kubernetes和oVirt云管理平臺。
支持華為HCS私有云。
5)鯤鵬BoostKit虛擬化平臺優勢:
64核+多核計算架構:資源池大、整機性能高;
虛擬機基于物理核構建:VM隔離性好,性能更穩定;
整機虛擬機密度更高:減少需要部署的服務器降低Capex;
二、鯤鵬應用使能套件BoostKit虛擬化開源使能
1)鯤鵬支持開源OpenStack+KVM虛擬化
OpenStack+KVM解決方案是TaiShan 200服務器和開源OpenStack/KVM組合解決方案,此方案解決開源OpenStack和KVM虛擬化軟件在TaiShan服務器上適配問題,同時基于開源軟件進行性能調優,給客戶提供性能調優指導。
OpenStack既是一個社區,也是一個項目和一個開源軟件,它提供了一個部署云的操作平臺或工具集。其宗旨在于,幫助組織運行為虛擬計算或存儲服務的云,為公有云、私有云提供可擴展的、靈活的云計算。
OpenStack包含主要開源組件包括Nova、Cinder、Neutron、Glance、Swift、Placement、Keystone、Horizon、Heat、Ceilometer。
2)鯤鵬支持開源Kubernetes+Docker虛擬化
Kubernetes(K8s)+Docker解決方案是TaiShan 200服務器和開源K8s/Docker組合解決方案,此方案解決開源K8s和Docker虛擬化軟件在TaiShan服務器上適配問題,同時基于開源軟件進行性能調優,給客戶提供性能調優指導。
Linux container技術是通過與主機共用內核,結合內核的cgroup和namespace實現的一種虛擬化技術,極大的減少了對主機資源的占用且具有較快的啟動速度。Docker就是一個Linux container引擎技術,實現應用的打包、快速部署等。Docker通過Linux Container技術將App變成一個標準化的、可移植的、自管理的組件,實現了應用的build once,run everywhere。Docker技術特點是:應用快速發布、應用部署和擴容簡單、更高的應用密度、應用管理更簡單。
Kubernetes將Docker容器宿主機組成集群,統一進行資源調度,自動管理容器生命周期,提供跨節點服務發現和負載均衡;更好的支持微服務理念,劃分、細分服務之間的邊界,比如Label、Pod等概念的引入。
K8s由Master和Node組成,其架構輕量,遷移方便,部署快捷,插件化,可擴展。
3)鯤鵬支持開源Ovirt+KVM虛擬化
oVirt和KVM解決方案是TaiShan 200服務器和開源Ovirt、KVM組合解決方案,此方案解決oVirt虛擬化軟件在TaiShan服務器上適配的問題。
oVirt是一個開源虛擬化管理平臺,它允許從具有獨立于平臺訪問的Web的前端集中管理虛擬機、計算、存儲和網絡資源。主要組件元素包括oVirt Engine、VDSM、基于KVM的虛擬機、存儲、數據庫。
oVirt和KVM部署架構如下圖所示。
4)鯤鵬OpenStack虛機與X86平臺混合部署
應用場景:
在OpenStack云平臺中,因業務架構、節點類型需要不同的Availability Zone可用域,包括計算Nova域、存儲Cinder域、網絡neutron域,并期望可以將AZ對應起來以便起到隔離的效果,每個AZ域之間是隔離的。
部署方式包括:
虛擬機場景混合部署
裸金屬服務場景混合部署
Openstack與Ceph集成混合部署(Ceph-14.2.1)
5)鯤鵬K8S Docker容器與X86平臺混合部署
應用場景:
K8S容器集群擴容場景
新建K8S容器集群場景
技術原理:
K8S原生支持多體系結構混合部署,無需修改代碼
支持混合部署方式:
K8S與Docker容器集群混合部署(TaiShan 2000和RH2288 V5)
三、鯤鵬BoostKit虛擬化關鍵特性
1)大規模Docker容器組網特性
容器網絡簡介
在容器化微服務化業務場景,云端部署容器的關鍵之一是管理容器集群間的網絡,使得節點內部或物理節點之間的容器可以達成網絡互通。
當前針對Linux容器配置網絡接口業界存在兩個標準提議——容器網絡模型(Container Network Model,簡稱CNM)和容器網絡接口(Container Network Interface,簡稱CNI),本文基于業界最常用的容器編排引擎Kubernetes,針對當前較為成熟和使用最為廣泛的網絡平面組件Open vSwitch和Calico進行介紹,并進行大規模集群部署的驗證實踐,用戶可根據業務場景的實際規模、功能需求和性能訴求,決定使用最適合的網絡平面組件。
應用場景
用戶在使用容器編排引擎部署服務時,例如Kubernetes集群,需要進行網絡平面規劃和部署時,可參考本文內容進行組件的選型和擇優;當集群規模較大時(物理節點或Pod對象規模超過100量級),本文對用戶網絡平面的常見組件進行組網與模擬測試。
實現原理
如下圖所示,OVS軟件主要架構由內核態的Datapath和用戶態的vswitchd、ovsdb組成。
Datapath是負責數據交換的內核模塊,從網口讀取數據,快速匹配FlowTable中的流表項,成功的直接轉發,失敗的上交vswitchd進程進行處理。在OVS初始化和port binding時注冊鉤子函數,把端口的報文處理接管到內核模塊;
vswitchd是負責OVS管理和控制的守護進程,通過Unix Socket將配置信息保存到ovsdb中,并通過Netlink和內核模塊進行交互;
ovsdb是OVS數據庫,保存了OVS的配置信息。
此外,OVS發布包中還包含了一系列管理工具(ovs-vsctl、ovs-dpctl、ovs-ofctl、ovs-appctl、ovs-docker等),方便用戶對OVS進行配置和使用。
Open vSwitch軟件架構圖
如下圖所示,在OVS接管網絡數據前,數據包在Linux網絡協議中的流向為虛線所示——物理網卡端口在接收到數據包后經過內核協議棧的層層解析,最后離開內核態,把數據傳送到內核態;
而經過OVS創建網橋、綁定物理網卡后,數據流從物理網卡端口收包后,在內核態經由OVS的vPort進入到OVS中,根據數據包Key值進行FlowTable流表匹配,成功則執行流表Action后續流程,失敗則進行Upcall由vswitchd進程進行處理。
Open vSwitch基本原理圖
如下圖所示,Calico組件主要架構由Felix、Confd、BIRD組成。
Felix是負責Calico Node運行并作為每個節點Endpoint端點的守護程序,它負責管理當前主機中的Pod信息,與集群etcd服務交換集群Pod信息,并組合路由信息和ACL策略;
Confd是負責存儲集群etcd生成的Calico配置信息,提供給BIRD層運行時使用;
BIRD(BIRD Internet Routing Daemon)是核心組件,Calico中的BIRD特指BIRD Client和BIRD Route Reflector,負責主動讀取Felix在本機上設置的路由信息,并通過BGP廣播協議在數據中心中進行分發路由。
此外,etcd組件是Calico組件運行的依賴組件,需事先在集群中部署etcd服務,或復用Kubernetes的etcd;Calico官方也提供了calicoctl管理工具,用于與Calico Node進行狀態確認、狀態配置等操作。
Calico軟件架構圖
2)OVS流表歸一化特性(CentOS 7.6)
簡要介紹
OVS流表歸一化特性是XPF網絡加速框架的一種OVS流表處理加速方案。其核心思想是在開源OVS+DPDK方案基礎上,對其流表做歸一化處理,減少開源方案某些場景下數據處理要多次查表的次數,來達到加速云計算中數據包轉發性能的目的,典型應用場景是VXLAN+CT組網。
DPDK是Intel公司開源的高性能用戶態網絡數據平面開發工具集,Open vSwitch(以下簡稱OVS)是云計算內廣泛應用的開源虛擬交換機實現,OVS+DPDK提供了靈活的網絡管理和高性能轉發的能力。關于OVS和DPDK的更多信息請訪問DPDK官網(https://www.dpdk.org/)和OVS官網(https://www.openvswitch.org/)。
環境要求
項目
說明
CPU
鯤鵬處理器
網卡
支持DPDK
項目
版本
-
CentOS
7.6
https://mirrors.huaweicloud.com/centos-vault/altarch/7.6.1810/isos/aarch64
3)OVS流表網卡加速特性
OVS流表網卡加速方案主要是利用智能網卡的OVS流表卸載方案,將原來處于系統內核態的datapath轉發路徑卸載到智能網卡上。利用網卡硬件查表替代原內核態的軟件查表流程,加速了流表的查找速度,提升報文的轉發性能。
OVS流表網卡加速方案基于SR-IOV實現。SR-IOV(Single-Root I/O Virtualization硬直通)分為PF(Physical Function)和VF(Virtual Funciton)兩個功能類型,其架構設備允許一個物理設備支持多個虛擬功能,可減少每個附加功能的硬件成本。使用硬加速特性,需要配置并使能SR-IOV。
如下圖組網圖所示,使用SR-IOV需兩臺服務器,兩臺服務器的網卡通過網口直連的方式進行網絡通信。文中對兩臺服務器簡稱為Host1和Host2。
組網圖
服務器
IP地址
Mellanox CX5網口名
Host1
90.90.51.22
enp1s0f0
PCI端口號:0000:01:00.0
enp1s0f1
PCI端口號:0000:01:00.1
Host2
90.90.51.112
enp1s0f0
PCI端口號:0000:84:00.0
enp1s0f1
PCI端口號:0000:84:00.1
硬件配置如下表硬件配置所示。
項目
說明
CPU
鯤鵬920處理器
網卡
Mellanox CX5公版系列網卡
其它
RAID卡要求支持直通,其它無特殊要求
操作系統要求如下表操作系統要求所示。
項目
版本
備注
openEuler
20.03-LTS-SP1
-
Kernel
4.19.90
操作系統鏡像自帶版本
網卡固件
16.29.2002
Mellanox驅動包自帶
網卡驅動
OFED-5.2-2.2.0
-
Python
2.7.5
系統鏡像自帶版本
gcc
7.3.0
系統鏡像自帶版本
虛擬機OS
CentOS Linux release 7.6.1810 (AltArch)
-
四、鯤鵬應用使能套件BoostKit虛擬化調優
1)Docker容器調優
Docker使用客戶端-服務器體系結構,架構圖如下圖所示。Docker客戶端與Docker守護進程(Docker daemon)通信,該守護進程負責構建、運行和分發 Docker 容器的繁重工作。Docker 客戶端和守護進程可以在同一系統上運行,也可以將Docker客戶端連接到遠程Docker守護進程。Docker客戶端和守護進程使用REST API、UNIX套接字或網絡接口進行通信。
Docker容器架構
主要從硬件參數、操作系統、Docker容器等這幾個維度介紹TaiShan服務器在CentOS 7.6操作系統Docker容器場景的性能調優。
Docker容器平臺性能調優,可參考下圖流程。
下面簡單匯總影響/提升Docker容器性能的TOP N調優項,用戶可以基于自己的需求選擇合適的調優項做適當調整,使其在某種特定場景下達到性能最優。
調優項
描述
適用場景
備注
BIOS配置
內存刷新頻率設置為Auto
商用
對內存帶寬性能提升明顯,改成Auto能提升性能
NUMA親和性
Docker容器的CPU綁核和內存分配在同一個物理node節點,避免跨die跨片訪問內存
商用
可提升Docker容器計算性能
CPU綁核
Docker容器的CPU綁核按1:1綁定
商用
-
Docker容器的CPU綁核按CPU Cluster范圍綁核
僅適用于POC測試
可提升Docker容器計算性能
網卡中斷親和性
將中斷綁定到物理網卡所在的numa的CPU上
商用
-
2 )KVM調優
通過在服務器上部署KVM虛擬化環境,將硬件資源虛擬化,從而使一臺物理服務器可以承擔多臺服務器的工作。KVM虛擬化平臺組成如下圖所示,其中Qemu-KVM負責硬件資源的虛擬化,采用虛擬計算、虛擬網絡、虛擬存儲等技術,完成計算資源、存儲資源、網絡資源的虛擬化。
KVM虛擬化架構
主要從硬件參數、操作系統和虛擬化三個維度介紹如何對TaiShan服務器在CentOS 7.6操作系統下KVM虛擬化場景做適當調整,使其在某種特定場景下達到性能最優。
KVM虛擬化平臺性能調優,可參考如下圖所示的流程。
KVM虛擬化性能調優三板斧
下面簡單匯總影響/提升KVM虛擬化性能的TOP N調優項,用戶可以基于自己的需求選擇合適的調優項做適當調整,使其在某種特定場景下達到性能最優。
調優項
描述
適用場景
備注
BIOS配置
內存刷新頻率設置為Auto
商用
對內存帶寬性能提升明顯(詳見設置內存刷新頻率為Auto)
NUMA親和性
虛擬機的vCPU和內存分配在同一個物理node節點,避免跨die跨片訪問內存
商用
對CPU虛擬化性能提升明顯(詳見CPU 1:1綁核,內存訪問同die)
CPU綁核
vCPU和pCPU一一綁定
商用
對CPU虛擬化性能提升明顯(詳見虛擬機綁核)
vCPU按CPU Cluster范圍綁核
僅適用于POC測試
對內存帶寬性能提升明顯(詳見虛擬機綁核)
內存大頁
關閉透明大頁,使用512MB內存大頁
商用
在CentOS7.6下對CPU虛擬化性能提升明顯,大約提升5%(詳見虛擬機使用內存大頁)
3 )Openstack調優
OpenStack既是一個社區,也是一個項目和一個開源軟件,提供開放源碼軟件,建立公共和私有云,它提供了一個部署云的操作平臺或工具集,其宗旨在于幫助組織運行為虛擬計算或存儲服務的云,為公有云、私有云,也為大云、小云提供可擴展的、靈活的云計算。
作為一個開源的云計算管理平臺,OpenStack由幾個主要的組件組合起來完成具體工作。OpenStack支持幾乎所有類型的云環境,項目目標是提供實施簡單、可大規模擴展、豐富、標準統一的云計算管理平臺。OpenStack通過各種互補的服務提供了基礎設施即服務(IaaS)的解決方案,每個服務提供API以進行集成。
調優原則
在性能優化時,我們必須遵循一定的原則,否則,有可能得不到正確的調優結果。主要有以下幾個方面:
對性能進行分析時,要多方面分析系統的資源瓶頸所在,因為系統某一方面性能低,也許并不是它自己造成的,而是其他方面造成的。如CPU利用率是100%時,很可能是內存容量太小,因為CPU忙于處理內存調度。
一次只對影響性能的某方面的一個參數進行調整,多個參數同時調整的話,很難界定性能的影響是由哪個參數造成的。
由于在進行系統性能分析時,性能分析工具本身會占用一定的系統資源,如CPU資源、內存資源等等。我們必須注意到這點,即分析工具本身運行可能會導致系統某方面的資源瓶頸情況更加嚴重。
調優思路
下面介紹OpenStack虛擬化環境的調優思路及分析過程,如下圖所示。
調優分析思路如下:
當性能指標不滿足要求時,首先排查是哪段的問題。確認OpenStack客戶端(控制節點)的命令是否成功發送至服務端(計算/存儲節點)。
若服務端沒有接收到較多壓力,則排查客戶端(可能性較小)與網絡問題。
對于服務器端問題,需要定位的是硬件相關指標,例如CPU,內存、網絡、磁盤等,如果是某個硬件指標有問題,需要深入的進行分析。
根據硬件指標,分析虛擬機內運行的應用程序,如算法設計、線程數、緩存方式等。具體分析不同程序的優化方案。
五、結束語
通過本次學習,了解鯤鵬虛擬化相關優勢。
鯤鵬BoostKit虛擬化平臺在業界具有較大優勢;
鯤鵬BoostKit虛擬化具有較好開源使能;
鯤鵬BoostKit虛擬化具有較多的關鍵特性;
鯤鵬BoostKit虛擬化支持多方面調優;
=============================================================
收集鯤鵬BoostKit虛擬化相關鏈接如下,供大家參考。
1、直播鏈接:https://bbs.huaweicloud.com/live/kunpeng_live/202107161930.html
2、鯤鵬BoostKit分布式存儲文檔鏈接:https://support.huaweicloud.com/twp-kunpengcpfs/kunpengcpfs_19_0019.html
3、鯤鵬BoostKit交流社區:https://bbs.huaweicloud.com/forum/forum-931-1.html
容器 虛擬化 視頻直播 鯤鵬
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。