1、amazon的存储产品比较;介绍不同存储的使用场景分析;
2、s3-hosted p_w_picpaths 和EBS-backed p_w_picpaths的比较分析;
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 p_w_picpaths 和EBS-backed p_w_picpaths的比较分析;
1、在EC2中创建虚拟机instance时,会提示选择Images的类型,有s3-hosted p_w_picpaths和EBS-backed p_w_picpaths两种,通俗地讲就是虚拟机镜像是存在S3或存在EBS两类。如果你使用了s3-Hosted p_w_picpaths,Images需从S3存储copy到instance Store, Amazon通常会在物理宿主机缓存好被频繁使用的Image,因此很多时候你感觉不到启动S3-hosted p_w_picpaths虚拟机因copy带来的延迟。完成虚拟机镜像copy后启动EC2 instance。
2、使用EBS-backed p_w_picpaths的虚拟机启动要快得多,当然这不是最重要的,最重要的是当你关闭虚拟机后,虚拟机的数据还在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/