周福斌,楊 巍,何 沅
(中國人民解放軍66389部隊,河南 鄭州 450000)
隨著云計算技術的不斷發展和應用,以云計算和虛擬化技術為核心的新一代數據中心已成為建設發展的趨勢。云數據中心能夠滿足各行各業應用高性能、高可靠、高安全以及高可用性的要求,實現資源動態調整、按需分配、靈活擴展,大大提高資源利用率和智能化管理水平,降低運維成本。云數據中心建設過程中,云平臺的規劃設計是重點內容,而計算資源的規劃設計又是重中之重,直接關系數據中心效能發揮[1,2]。
與云數據中心對比,傳統數據中心主要存在以下幾點不足。
當前部分用戶存在孤島式和煙囪式建設情況,各個平臺無法直接相互通聯,導致資源不能重用。部分用戶存在一臺服務器部署一套業務系統的現象,服務器空余的大量資源處于空閑狀態,經一些機構評測,大部分企業數據中心資源利用率甚至不到20%。還有些用戶部署一些階段性的應用,在較長的一段時間不再使用或者永久停用,但是相關的計算、存儲以及網絡等資源不能及時、便捷地釋放回收,造成一定程度的資源浪費,導致資源利用率低[3]。
傳統數據中心業務系統部署在物理服務器中,隨著業務的不斷擴展,應用系統不斷增加,需要不斷增加物理服務器的數量,還要增大機房面積,增加配套的制冷和消防設施,導致建設和運維成本不斷上升。另外,非云化部署存在設備選型和招標采購等問題,影響業務上線進度,增加時間成本[4]。
傳統數據中心依靠人力進行運行維護,效率低,出錯率高,難以精細掌握整體資源狀況,無法實現資源按需調配,無法隨進程任務自動調配資源保證性能最優,智能化運維水平較低。
開放的架構主要包含兩個層面:一是源代碼開放,允許用戶自主掌控,可以根據自身需求進行功能的增加、刪除和修改;二是標準開放,用戶可以使用標準產品構建自己的云計算工程。二者相比,標準開放比源代碼開放更加重要,標準的開放可以避免受單個實體控制,帶來擴容迭代和升級換代的局限性,避免成本的提高。
資源彈性可變體現在3個層面:一是硬件層面,就是計算、存儲以及網絡等資源可以線性擴展,快速部署;二是云資源層面,主要體現在資源可以隨著應用系統業務量的增加而彈性增加,可以隨著應用系統業務量的減少而彈性收縮;三是應用層面,主要體現在靈活的上線部署和下線釋放資源,同時可以根據進程任務對計算資源進行智能優化和動態調整,使進程任務在各階段均獲得更好的性能。
高可用性體現在基礎框架、物理網絡、計算和存儲資源、云平臺以及業務的高可用性,同時也包含數據的可靠性,各類資源冗余設計,業務邏輯關系松耦合,保證不會因為某個環節出現問題而影響業務的開展[5]。
可管理性主要體現在層次分明且結構簡捷,具備清晰智能的可視管理界面,可以實時進行運維管理,滿足日常監管和運維需求,及時發現和處理運行中出現的各類故障。
計算資源總體規劃主要是建立兼容異構虛擬化、容器、裸金屬以及高性能計算的統一資源池,通過統一的云平臺實現各種資源的統一科學管理,同時根據不同業務的具體需求實現資源的智能調度。通過優化的可視界面,實現對資源的精準把控,使資源合理高效利用,同時也便于資源動態調整滿足后期業務擴展需求[6]。計算資源池總體規劃如圖1所示。

圖1 計算資源總體規劃圖
虛擬化技術是云計算底層核心技術之一,它是實現計算、存儲以及網絡資源充分整合利用的關鍵技術。利用虛擬化技術構建的資源池具有低成本、高可靠、高可用、高安全、高擴展性以及彈性可變等優勢。鑒于國內云計算的底層基本都是基于Openstack,同時對比KVM和XEN內核架構,考慮到KVM是Linux內核的一部分,兼容性好,性能和安全性均高于XEN,且KVM具備強大的生態圈(主流廠商基本全部支持KVM),因此云計算平臺虛擬化技術優先選擇基于Openstack并選擇KVM內核架構[7]。
在進行計算資源池功能設計之前,首先應對現有和將來要承載的業務系統進行分類,主要分為適合虛擬化平臺部署的業務和不適合虛擬化平臺部署的業務兩類。其中前者是指環境有標準化(X86)和快速部署需求、資源利用率相對較低、業務增長快,需要頻繁擴容、可以通過虛擬化技術提高系統可用性和可靠性以及可以利用資源池化共享來實現收縮擴展的業務。后者是指廠商明確不支持虛擬化、非X86平臺系統、本地I/O或網絡吞吐繁忙,將導致整個集群資源產生瓶頸以及業務系統CPU或內存資源需求量達到單臺云節點(物理服務器)資源80%以上的業務。
一般來說,用戶大部分的業務系統是適合虛擬化的,只有少部分高性能、高I/O需求的業務系統以及需要進行大數據計算和存儲的業務系統不適合虛擬化。因此,在計算資源功能設計時,將計算資源池分為以下3類。一是分布式虛擬化服務器資源池,用來針對資源需求較小但資源規格類型較多的情況,利用虛擬化技術進行資源的按需分配和智能調度,便于資源合理充分利用。二是物理機資源池,主要適用于資源開銷需求大,高性能和高I/O業務系統的場景,可以避免資源爭用導致虛擬資源池整體效能發揮的現象[8]。三是大數據資源池,主要針對海量的非結構化數據且需要分布式存儲和分布式計算的場景。
計算資源池容量設計主要包括CPU數量和內存容量計算兩部分內容。
資源池CPU數量=業務系統所需服務器CPU數量×CPU平均使用率/(1-CPU預留率)。平均使用率一般取40%,預留率一般取20%[9]。資源池內存容量=業務系統所需服務器內存容量×內存平均使用率/(1-內存預留率)。平均使用率一般取40%,預留率一般取20%。
數據中心云化的主要目的是提升數據中心的服務質量和效益,避免和減少業務中斷情況,因此計算資源的可靠性設計至關重要,重點應做好以下4個方面的設計。
3.5.1 虛擬化平臺的設計
虛擬化平臺要采用分布式集群部署,不能存在可能導致服務中斷的單點故障。另外虛擬化平臺要使用分層結構,管理、計算、存儲以及網絡等各個部分要達到低耦合,做到相互獨立。
3.5.2 HA集群設計
HA是指一種以減少服務中斷時間為目的的服務器集群技術,將多臺物理機合并為一個共享資源的集群,從而提高業務系統可靠性。HA集群設計主要是在以下3個方面保證可靠性。一是監控集群下的所有虛擬機,當某一臺虛擬機發生故障時,HA能夠保證在該物理機內重啟虛擬機并恢復中斷的業務。二是監控集群下所有的物理機,當某臺物理機發生故障時,HA能夠保證在集群內的其他物理機上重啟受影響的虛擬機。三是當某一臺虛擬機出現通信故障時,DC會按照策略算法,在空閑的服務器節點上重啟該故障虛擬機,從而保證業務的連續性。
3.5.3 虛擬機遷移設計
虛擬機遷移設計應重點從4個方面的保證可靠性。一是保證在用戶無感知的情況下完成遷移,二是遷移過程中能夠持續智能優化虛擬機資源,三是保證虛擬機運行效率,比如及時將虛擬機從故障或者性能不佳的物理服務器智能遷移至性能較好的物理服務器中運行,四是可以定制化策略遷移,如定時遷移。
3.5.4 虛擬機備份設計
在實踐應用中,業務系統備份必不可少,對計算資源池中的虛擬機的備份也非常關鍵。虛擬機備份設計應重點做好3個方面的設計,一是可以進行單個虛擬機備份,也可以進行集群和資源池備份,二是備份時要保證應用數據的一致性,三是要有基于磁盤的備份功能,以提供快速、簡單的數據保護。
擴展性設計主要包括虛擬機規格動態調整和自動化資源彈性調度設計。虛擬機規格動態調整主要是虛擬機能根據應用系統的性能需求,靈活調整虛擬機的配置規格,如vCPU數量、內存大小、磁盤卷個數以及網卡數量等。自動化資源彈性調度主要是可以根據單個應用系統的負載情況動態調整實際使用的資源。擴展性設計還應該在系統資源不足時,保證具有較高優先級的應用系統優先使用資源[10]。
數據中心通過云計算虛擬化技術對計算資源的合理規劃設計,能夠實現計算資源的彈性可變和智能高效,具備高可用性、高可靠性以及高擴展性,可以為用戶構建并提供一個可靠、安全、高效、靈活且動態的計算資源池,滿足用戶應用快速部署和可靠運行的目的。計算資源池已成為云數據中心的基礎,將會有極為廣闊的發展空間。