轉載自 http://blog.csdn.net/enoch520/article/details/38980129
一.什么是塊存盤
對于普通用戶來說,塊存盤可以說既熟悉又陌生。其實我們平時用的PC硬碟、U盤、移動硬碟都可以歸為塊存盤設備。簡單說,塊存盤就是提供了塊級存盤介面可持久化保存資料的存盤設備,包括個人PC用的硬碟、U盤,企業級SAS硬碟、SAN共享存盤以及隨著云計算到來的彈性分布式塊存盤服務等。而AMAZON 的EBS是彈性分布式塊存盤服務的典型代表,也是迄今規模量級最大的彈性分布式塊存盤服務。
二.什么是EBS
EBS全稱Elastic Block Store,是AWS提供的塊級存盤服務,用于給AWS EC2提供獨立的塊存盤卷。EBS在EC2上呈現出來的就如同普通的硬碟,但實際上對接的是EBS后臺的分布式存盤系統,而并不是本地硬碟。
AWS EBS提供了很多云計算的特性,比如存盤與計算分離、彈性可擴展、多副本資料、提供快照與快速恢復服務、性能自定義等,可以說,這些特性都是傳統的PC本地磁盤所無法提供的。下面將就這些特性來一一分析。
三.云時代塊存盤的特性分析
1. 存盤與計算分離(彈性)
“彈性”是云計算里最常提到的個詞兒。所謂彈性,就是不固定,不系結,由軟體來定義,所以傳統的基于本地磁盤的塊存盤是無法提供彈性功能的。因為本地磁盤和服務器是通過硬體級介面系結在一起的,存盤資源和計算資源集成在一個主板之上,同生共死。想像你在AWS購買一臺EC2,同時也購買了一個基于本地盤的塊存盤掛載到EC2上,當這臺EC2所在的母機宕機,或者硬體受到損壞時,EC2不可用,同時塊存盤設備上的資料也無法找回了。當然,AWS的工程師同學可以將這臺服務器上的硬碟拆下,換到另一臺服務器上把資料讀出,但這樣的運營成本將會無比高昂。
EBS通過存盤與計算分離,實作了塊存盤的“彈性”特性。EC2只提供計算資源,EBS通過單獨購買,然后再掛載到EC2上,EC2與EBS具體各自獨立的生命周期,在EC2上,可以隨時增加、洗掉、遷移EBS。當這臺EC2不可用時,可以在很短時間把EBS掛載的新的EC2上,繼續使用,資料完全不受影響。除了故障快速恢復,EBS還可以支持資料快速遷移、容量快速擴容等彈性功能。
2. 資料可靠性
對大多數人來講,塊存盤設備是可靠性非常高的存盤設備。我們使用個人PC,使用U盤,很少會考慮到硬碟、U盤上的資料會不會丟,會不會錯?我們在PC上寫word檔案,只有按下ctrl+s,我們就放心了。而事實上,PC硬碟、U盤的可靠性確實不錯,一個普通硬碟,用上好幾年都沒有問題,更不用說企業級的SAS硬碟、SAN存盤了。
然而,對于一個擁有幾千臺、幾萬臺的資料中心,普通硬碟的可靠性又怎樣呢?這其實是個概率問題。事實證明,當資料中心到達一定規模后,就會硬體故障常態化,主板故障、硬碟故障、記憶體故障幾乎是每天都會發生,而其中負責資料落地的硬碟,發生故障的影響是最大的。 而EBS是將多臺x86服務器組合成一個分布式集群來提供塊服務,資料會有多份副本存盤。單臺服務器宕機或者單塊磁盤損壞,不會影響到用戶資料和服務,對用戶完全透明。所以,從概率上來講,EBS所提供的塊存盤服務,其資料可靠性要比傳統的本地磁盤要高。
3. 服務可用性
對于分布式的塊存盤服務來講,保持服務高可用是最大的挑戰,然而對于塊存盤的場景,用戶對于可用性的要求卻又非常敏感,可以想像,當您的個人PC的硬碟突然無法寫入/讀取,想必應該是會非常著急吧。 對于分布式塊存盤,可用性的挑戰主要來自于三個方面,一是服務器節點的可用性,二是網路的可用性,三是運維的復雜性。
服務器節點的可用性可以通過多副本,消除單點來達到;而網路的可用性比較復雜。據我所知,EBS采用了主備網路的方式來保證網路的可用性,主網路平時提供資料服務,在主網路例外時,啟用備網路服務。而運維的復雜性,由于有人的參與,所以最不可控,也最容易出問題。AWS EBS過去的幾次較大故障,大部分都是運維操作失誤導致的,所以運維自動化顯得尤為重要。
4. 性能
塊存服務直接面向用戶,所以對性能的好壞也極為敏感。IO延時1ms和IO 10ms對用戶的體驗完全不可同日而語。分布式塊存盤服務的性能主要取決于兩部分的延時,一是網路延時,一是存盤介質本身的性能。在分布式的塊存盤服務中,由于實作了存盤與計算分離,必然要引入網路延時。在某些IO場景下(比如順序讀寫),分布式存盤的IO延時要高于本地磁盤IO。所以一般情況下,計算節點與存盤節點不會跨機房部署,否則網路延時的影響會比較大。
作為云計算供應商,AWS EBS的性能也許不是最好的,但EBS做得比較好的是對性能采取了用戶定義、用戶選擇的方式,讓用戶對性能有個預期。AmazonEBS提供兩種型別的卷,即標準卷和預配置IOPS卷。它們的性能特點和價格不同,可以根據應用程式的要求和預算定制所需的存盤性能。
標準卷可為要求有適度或突發式I/O的應用程式提供存盤。這些卷平均可以提供大約100IOPS,最多可突增至數百IOPS。標準卷也非常適合用作引導卷,其突發能力可提供快速的實體啟動時間(通常十幾秒)。
預配置IOPS卷旨在為資料庫等I/O密集型隨機讀寫作業負載提供可預計的高性能。創建一個卷時,利用預置IOPS為卷確定IOPS速率,隨之AmazonEBS在該卷的生命周期內提供該速率。AmazonEBS目前支持每預配置IOPS卷最多4000 個IOPS。您可以將多個條帶式卷組合在一起,為應用程式提供每個AmazonEC2數千IOPS的能力。
隨著SSD成本的降低,AWS也推出了基于SSD介質的EBS,性能上會有一個提升,當然價格也會提高。
5. 用戶隔離
傳統的本地磁盤是單租戶模式,一塊磁盤被一個用戶獨占使用。而在分布式塊存盤中,是多租戶共享一個分布式集群。這里面的用戶隔離和流量控制就顯得例外重要。一個分布式塊存盤集群往往承載著成千上萬的用戶訪問,但一個集群的總帶寬是有限的。如果某個用戶持續進行高帶寬的IO,占用大部分的集群帶寬資源,那么必然會引來其它用戶的投訴。所以在分布式塊存盤中,必須要對用戶進行一定的資源隔離和資源限制,對帶寬、IOPS等關鍵性能資料做實時的調整和控制,才能保證整個集群的穩定運行。
四.分布式塊存盤的未來
在云計算的場景下,采用分布式塊存盤是實作某些云計算特性的必經之路。隨著硬體的發展,分布式塊存盤的架構也會不斷演進,比如基于SSD介質的分布式塊存盤會越來越被用戶接受;萬兆網路的發展普及,也會讓分布式塊存盤的性能上了一臺階。除了AWS、阿里云等這類云供就商,開源界的分布式塊存盤也將持續發展。比如開源的sheepdog、CEPH等系統,都是非常優秀的開源分布式存盤系統,其某些設計思想是非常巧妙和實用的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/101565.html
標籤:AWS
上一篇:關于防火墻的配置問題
下一篇:大家看看代碼錯誤情況
