1、amazon的存儲產品比較;介紹不同存儲的使用場景分析;
2、s3-hosted images 和EBS-backed images的比較分析;
3、持久化存儲和非持久存儲在amazon中的體現;
一、EBS和S3概述
在正式討論不同的存儲服務之前,我們大概瞭解一下Amazon提供存儲產品S3和EBS。
1、 EBS(Elastic Block Storage)產品首頁的概述。
EBS提供塊級別的存儲卷給EC2 實例使用,EBS卷通過網絡連接,獨立於虛擬機實例生命週期。EBS提供高可用,高可靠,可預期的存儲卷給正在運行的虛擬機,並呈現爲一個虛擬機設備。EBS尤其適合於數據庫應用、文件系統應用,或要求訪問裸塊級別存儲的應用。
2、S3 (Simple Storage Service)產品首頁概述
S3是一個雲存儲(相應地EBS成爲雲硬盤也挺合適)。S3被設計成面向開發者易於進行規模擴展的產品。S3提供簡單的web服務接口,可實現通過網絡在任何時間、任何地點存儲和獲取任何數據。他給所有開發者使用與amazon用於運行自己的網站相同等級的可擴展、可靠、安全、快速、廉價的基礎設施。這個服務的目標是最大化可擴展性優勢,同時將這些優勢交付給開發者。
關於產品的定義,可以從這些地方去查看:http://aws.amazon.com/ebs/
二、EBS vs S3 vs Instance Store
我嘗試着給Amazon提供的存儲服務進行分類,首先分爲兩大類,一是塊設備存儲服務,二是對象存儲服務。其中塊設備存儲服務包括本地存儲服務和EBS 存儲;對象存儲服務是S3。AWS的Storage & Content Delivery產品列表上,你會發現S3是一項單獨的服務,而EBS不在其中,EBS是基於EC2的一項子服務。兩者服務對象不是同一級的。 下面對不同的存儲做了簡單對比。
|
EBS |
S3 |
服務對象 |
系統管理員 |
系統管理員/最終用戶 |
服務場景 |
1、作爲虛擬機硬盤,在虛擬機看來就像EBS就像本地的硬盤;當EC2實例失效時,EBS卷可以自動解除與該實例的關聯,從而可以關聯到新的實例。 2、存儲EBS-backed Images。 |
1、存放S3-hosted Images。 2、用戶可通過Http/REST API 存取文件。典型應用:網站可將靜態文件存放到S3中,通過CDN網絡分發到不同的區域中以提升性能; 2、可作爲虛擬機EBS卷的backup &snapshot ; 快照:第一個快照是全量快照,而後的都是增量快照。一般使用快照作爲新卷的起始點,所以當數據遭到破壞時就能通過回滾到某個快照來恢復數據。 |
連接類型 |
通過網絡連接 |
通過網絡連接。 |
服務機制 |
塊設備,可格式化爲任何OS可以識別的格式; |
對象存儲,桶--對象二級結構。無需在其上建文件系統,對象存儲包括元數據、數據內容、數據屬性。 |
Key features |
Data availability from replication across an Availability Zone Data persistence independent of the life of the instance The ability to create snapshots and incremental backups |
|
不足 |
多用戶共享EBS存儲帶寬,服務質量(IO訪問的性能)會有波動。 單個文件<1T。 |
單個文件<5G,高清視頻搞不定。 |
優點 |
1、EBS提供了持久化的、具有獨立於主機的生命週期的、高可用的塊存儲設備,在這一設備上可以創建支持POSIX語義的本地文件系統(或是Windows本地文件系統)。 2、可針對EBS卷做snapshot,EBS故障後可通過snapshot恢復EBS卷。 |
面向最終用戶,可直接當成雲網盤來使用。 |
容錯設計 |
在不同的地方存放多份數據。 |
在不同的地方存放多份數據。 |
物理宿主機使用的本地存儲稱爲Instance Store,這個存儲的典型特徵是非持久。計劃內或計劃外的重啓不會導致數據的丟失。當instance出現下述三種情況時,存儲在instance store上的臨時數據將會被清除。
1、Failure of an underlying drive (底層驅動出現故障)
2、Stopping an Amazon EBS-backed instance (使用EBS-backed作爲root device的實例Stop時。)
3、Terminating an instance (虛擬機實例註銷)
instance Store和instance的關係如下圖所示,Host computer指的就是物理宿主機。
在申請虛擬機時,如果你看到自己在使用ephemeral 存儲就是指Instance Store這個非持久存儲。Amazon爲啥這樣設計instance Store呢?其實你就要理解一下亞馬遜的設計原則。當你關閉vm不使用,如果保留數據,那麼還是佔有資源,而Amazon的計費模式是關閉虛擬機就不計費的。所以亞馬遜默認你關機就所有數據都丟失。
三、s3-hosted images 和EBS-backed images的比較分析;
1、在EC2中創建虛擬機instance時,會提示選擇Images的類型,有s3-hosted images和EBS-backed images兩種,通俗地講就是虛擬機鏡像是存在S3或存在EBS兩類。如果你使用了s3-Hosted images,Images需從S3存儲copy到instance Store, Amazon通常會在物理宿主機緩存好被頻繁使用的Image,因此很多時候你感覺不到啓動S3-hosted images虛擬機因copy帶來的延遲。完成虛擬機鏡像copy後啓動EC2 instance。
2、使用EBS-backed images的虛擬機啓動要快得多,當然這不是最重要的,最重要的是當你關閉虛擬機後,虛擬機的數據還在EBS上,就如同你在使用自己的電腦一樣,即使你關機了,數據仍在硬盤中。當然了,爲此,你得支付更多的銀子。
參考文檔:
http://aws.amazon.com/ec2/faqs/#What_is_the_difference_between_using_the_local_instance_store_and_Amazon_Elastic_Block_storage_for_the_root_device
http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/InstanceStorage.html
http://aws.amazon.com/documentation/