天天看點

帶你讀《彈性計算—無處不在的算力》第二章:彈性計算産品家族 2.1:彈性計算的使用場景(一)

随着多媒體、機器學習、科學計算領域的快速發展,雲上對于異構計算的需求被快速地激發出來,執行個體不僅需要實作過去普通的x86 虛拟化,還要能夠支援異構計算部件的虛拟化或直通透傳,使得在虛拟機内的應用可以将GPU 或FPGA 這一類部件利用起來,像普通x86 雲伺服器一樣配置靈活、可調整。

在執行個體内,存儲和網絡是必不可少的兩個功能。在雲伺服器誕生之初,執行個體讀寫所需要的存儲多為本地存儲(即虛拟機所在實體機本地的磁盤),本地存儲的優點是伺服器内部通路、效率高、成本低,但缺點也極其明顯:容量空間有限、本地失效機率高、伺服器當機資料有丢失風險、無法立刻恢複業務、需要等待維修。這些都為後續發展雲盤提供了明确的方向:存儲和計算分離能夠帶來更高的可擴充性,資料丢失風險以N 個數量級的幅度降低。執行個體的存儲絕大多數已經使用雲盤來實作,也就是下面要介紹的“彈性塊存儲”。本地存儲僅在少數場景下才會使用,如極高存儲性能、極低單GB 存儲成本、對資料可靠性沒有強訴求等場景。

對于執行個體來說,網絡性能中的資料收發功能和在此之上的通路隔離與互通靈活控制功能是基礎,而這些都是依靠虛拟網絡來實作的。每一個執行個體都有其對應的網絡功能和存儲功能的描述。

2.1 雲伺服器開天地

虛拟化技術是支撐整個雲計算行業發展最重要的基礎技術。

在虛拟化技術出現前,使用者對于應用的運維主要是面向實體機的。資金并不充裕的使用者會選擇把多個業務所需的應用部署在一台伺服器上運作。比如,把企業所需的DHCP 伺服器、DNS 域名解析伺服器、Web 應用伺服器都部署在一台伺服器上;把SAP 應用和企業辦公的OA 系統部署在另一台伺服器上,這樣可以節省伺服器,減少伺服器的電力、機位、網絡裝置成本。但弊端也相當明顯,不僅應用使用的端口可能沖突,而且共享的檔案讀寫也會不可避免地産生沖突。另外,如果應用所依賴的系統庫是共享的,那麼系統庫版本問題又會讓管理維護人員“發瘋”。運維工程師無時無刻不處于神經緊繃狀态,一旦哪個應用崩潰,很可能會引發連鎖反應,導緻整個系統的當機。當管理維護人員需要重新啟動計算機時,這台伺服器上所有運作的業務系統都會一起被連帶着中斷。

資金充裕的使用者雖然可以為每一個業務系統都配置一台甚至多台伺服器,但會造第2 章 彈性計算産品家族27 

成伺服器資源極大的浪費,每一台伺服器負載都很低,絕大多數時間都在機架上“吃灰”。另外,每一台伺服器所産生的電力、網絡、機櫃費用,也是極大的浪費;同時, 基礎系統的維護,包括幾十台、甚至上百台的伺服器系統的更新系統、打更新檔、更新應用等,所需耗費的工作量會大幅增加。

虛拟化技術的成熟很好地解決了上述問題,Intel 和AMD 在各自出品的CPU 中加入虛拟化指令,Windows /Linux 也相繼提供了核心虛拟機,使虛拟機(虛拟伺服器)可以更大地發揮實體硬體的性能。通過Hypervisor,在一台實體伺服器上可以同時運作多台虛拟機。每台虛拟機都可以獨立安裝不同的作業系統,并能夠獨立運作、重新開機或關機,互相之間不受影響。虛拟機配給的硬體資源是由管理者調配的,對硬體資源的占用隻要在配額之内,即使某個系統負載過高而當機,也不影響其他虛拟機的工作。使用虛拟機可以讓建立、撤銷相關資源都在軟體管理層面上完成。以往在更新伺服器硬體時是需要斷電拆機的,而在虛拟機上,擴充資源配給可以直接通過管理軟體界面設定來做到熱生效,銷毀伺服器與之同理。遷移、備份也更加友善,虛拟機的運作系統和環境對應的是實體伺服器上的一個鏡像檔案,以前遷移伺服器到異地機房時需要先下架後再小心翼翼地長途托運,生怕摔碰;而虛拟機的遷移隻需拖動一個檔案即可。

由于虛拟化層的存在,無論是熱遷移應用,還是用快照做線上備份、恢複資料, 都變得極其順暢。如果使用者操作有誤,可以随時復原。而在實體系統上遇到這種情況時可能就得重做系統了。以前一台祼機從安裝系統到部署業務平均耗時為12 小時, 而今在虛拟機上可以提前準備好各種模闆,需要時僅使用模闆克隆一次就能快速完成。傳統伺服器和虛拟伺服器的差别如圖2-1 所示。

App App 作業系統伺服器硬體作業系統伺服器硬體App App App 獨立作業系統獨立作業系統獨立作業系統虛拟硬體虛拟硬體虛拟硬體伺服器虛拟化傳統伺服器傳統伺服器虛拟化伺服器伺服器硬體

帶你讀《彈性計算—無處不在的算力》第二章:彈性計算産品家族 2.1:彈性計算的使用場景(一)

圖2-1  傳統伺服器和虛拟伺服器的差别28 

現在,在企業内部或網際網路上,主流公共雲服務商提供的雲服務(例如雲伺服器、資料庫服務、VPC、負載均衡等)絕大多數都是基于虛拟機的。可以說,正是有了這種“軟體定義伺服器”的能力,雲上的資源按需使用、按量付費、分鐘傳遞才成為可能,使用者對于叢集中所有虛拟機的運作情況都能及時掌握和按需調配。是以,當下整個雲計算行業盛行及高速發展,虛拟化技術功不可沒。

雲伺服器是所有雲服務的基礎,也是使用最普遍、使用者接受度最高的彈性計算産品。因為虛拟化繼承了x86 的标準硬體體系結構和作業系統标準應用界面的雙重标準,是以,使用者完全可以從過去使用實體機平滑過渡到使用雲伺服器,進而對底層實體資源的運維這一“髒活、累活”則被雲服務提供商的自動化、大規模集中運維給取代了。

現在,雲伺服器的計算、存儲、網絡、系統環境部件已變得非常複雜,每一個側面都需要大量的研發人員在背後持續優化,使雲伺服器的性能沒有“短闆”,成為一個發展均衡的“木桶”。

2.1.1 ECS 執行個體

在雲産品,尤其是IaaS 類産品中,執行個體是一個常見的概念,特指虛拟計算環境。一台雲伺服器(為行文友善,以下簡稱為ECS)執行個體等同于一台虛拟機,包含CPU、記憶體、作業系統、網絡、磁盤等基礎計算元件。

根據業務場景和使用場景,ECS 執行個體可分為多個規格族。以阿裡雲産品為例, 對于通用的x86 計算密集型應用場景,C 系列規格族是最合适的産品;對于大資料場景,D 系列規格族的成本效益最高;而對于異構計算場景,成本效益最高的則是GN 系列規格族。在同一業務場景下,也可以選擇多個不同的規格族。在同一個規格族裡,根據CPU 和記憶體的配置,可以分為多種不同的規格。ECS 執行個體規格定義了執行個體的CPU 和記憶體的配置(包括CPU 型号、主頻等,部分規格還包括特殊的異構計算部件或者本地存儲)。圖2-2 為ECS 執行個體規格族圖譜。

一個規格族包括若幹執行個體規格(簡稱規格),對應産品的大中小不同配置。以計算型C6 規格族為例,規格ecs.c6.large 代表C6 規格族内的最小執行個體規格2 vCPU 4GB 記憶體的虛拟機配置,而規格ecs.c6.2xlarge 代表C6 規格族内的執行個體規格8 vCPU 16GB 記憶體的虛拟機配置。每一個執行個體規格除了直覺地描述采用什麼配置的虛拟機,還定義了其對應的存儲雲盤性能、内網性能等參數。這些是保障在執行個體使用過程中各方面性能穩定、可預期的關鍵,也就是雲伺服器産品的QoS 能力,這一點對于企業使用者尤其重要。第2 章 彈性計算産品家族29 

帶你讀《彈性計算—無處不在的算力》第二章:彈性計算産品家族 2.1:彈性計算的使用場景(一)

圖2-2  ECS 執行個體規格族圖譜30 

2.1.2 彈性塊存儲

虛拟化執行個體對于計算資源的充分利用和簡化運維有非常大的幫助作用,但僅僅依靠計算虛拟化,并沒有很好地解決資料塊存儲方面的問題。因為雲伺服器所持有的持久化資料,如作業系統、應用、使用者資料等,既不丢失、不能出錯,同時要保證資料的通路性能足夠高,以滿足多種場景的訴求。另外,還要具備雲計算架構的優勢,比如可以對存儲容量或磁盤實體容量動态擴容、保證計算執行個體和資料的解耦合,降低計算或存儲單方面運維的複雜度等。雲上的彈性塊存儲(Elastic Block Storage)的應用場景和産品特點都是基于以上業務需求發展起來的。經過長久的發展,雲上的彈性塊存儲系統和傳統的計算機存儲系統一樣,已成為雲伺服器系統中既重要又有挑戰的子系統之一。

彈性塊存儲是彈性計算家族中資料塊級别的塊存儲産品,簡稱雲盤,具有低延遲時間、高性能、持久性、高可靠等特點。雲盤采用分布式三副本機制,為ECS 執行個體提供99.9999999%(9 個9)的資料可靠性保證,支援在可用區内自動複制資料,防止意外硬體故障導緻的資料不可用,保護業務,免于受元件故障的威脅。就像硬碟一樣,使用者可以對挂載到ECS 執行個體上的雲盤做分區、格式化、建立檔案系統等操作, 并對資料進行持久化存儲。第2 章 彈性計算産品家族31 

彈性塊存儲按照使用者需要的存儲使用場景和特點,可以劃分為以下幾個階段: 

最早一代的雲盤(普通雲盤)是具備高可靠性、一般随機讀寫性能的雲盤産品。這一代産品從根本上解決了本地存儲的可靠性和可用性問題,但性能與本地盤相比,仍具有較大的差距。

随着技術的演進,以及更新、更合理的硬體架構的出現,普通雲盤逐漸演進成了具有更優I/O 性能的SSD 雲盤和高效雲盤。這一代産品最高可以達到數萬IOPS 和Gbps 級别的資料吞吐能力。其性能已經比較接近本地盤了。

最新一代ESSD 雲盤産品達到了百萬量級IOPS 和數十Gbps 的資料吞吐能力, 在性能方面基本等同于本地存儲。

無論普通的塊存儲還是雲盤存儲,都是單節點挂載、單節點讀寫通路的産品,随着更多的傳統企業上雲,傳統IDC 中多伺服器共享通路同一塊存儲的場景需求也在雲上産生。在典型的叢集架構中,多個計算節點通常需要通路同一份業務資料。為防止一個或多個計算節點發生故障而導緻業務中斷,共享塊存儲可以保證叢集對外提供業務通路的持續性和高可用性。使用者可将重要的業務資料存儲在共享塊存儲上,并通過叢集檔案系統對共享塊存儲進行統一管理。當多個前端計算節點并發地讀寫資料時,共享塊存儲能保證資料在多個計算節點間的一緻性。

回望過去,雲盤在保持着高可靠性和免運維的前提下不斷優化性能,走的是一條使産品在性能上越來越符合本地盤業務需求的道路。當然,本地盤存儲并沒有被完全抛棄,随着網際網路和移動網際網路的廣泛應用,企業資料以前所未有的速度積累,而基于大資料的應用,不論離線分析還是線上計算,都被越來越多的企業所采納。大資料的典型場景對實體媒體的可靠性并無更高要求,因為在應用層已經通過分布式存儲将資料打散存儲在多計算節點上,是以高性能和低成本(應對海量資料)是這個場景的核心訴求,而本地彈性塊存儲正是針對這個場景的産品而設計的,它基于雲伺服器ECS 所在實體機(主控端)上的本地硬碟裝置,為ECS 執行個體提供本地存儲通路性能, 是為那些對存儲I/O 性能和海量存儲成本效益有極高要求的業務場景而設計的産品。