在公有云IaaS层中,最常见的用例之一是存储。这是因为,用户只需要将数据上传到云端,并且支付相应的存储费用,而不必大费周章地购买硬件和管理。
它听起来很简单,但事实上,云存储的世界有很多事情需要考虑。如今,三大主要云服务商AWS、微软Azure和谷歌云平台中的任意一家,都有多种云存储选项以及复杂情况下它的成本。
根据云管理服务公司RightScale首席企业架构师Brian Adler,他最近碰到的一个研讨会就云存储进行讨论,结果没有一家云供应商比其他更好。“没有任何人处于领导地位?它仅仅取决于你把云用来做什么,”他说。当谈到具体用例时,每家云供应商都有自己的优势和弱点。
下面比较了三种主要云供应商的云存储用例以及供应商提供的选项。
块存储
块存储,英文全称Block Storage,它是与云虚拟机结合使用的永久磁盘存储。简单说,它相当于一块“虚拟云盘”,你可以在上面建立新的文件系统,随意改变文件系统,格式化等等。
每家云供应商都把自己的块存储产品分为两大类:传统磁旋硬盘或者SSD固态硬盘,它们通常更贵,性能却更好。
同时,客户还可以支付溢价来获得一定数量的IOPs——即每秒输入输出量(或读写次数)。它是是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。
亚马逊的产品被称为弹性块存储EBS,它分为几种:吞吐量优化或冷HDD,这是传统的磁旋硬盘;另外就是General Purpose SSD以及Provisioned IOPS SSD。据悉,General Purpose SSD是下一代的驱动器,而Provisioned IOPS SSD则是亚马逊专为敏感的工作事务设计。
微软Azure的块存储服务被称为托管磁盘,基于SSD的性能分为标准版和高级版。
谷歌提供的版本服务称为PDs,它们采用基于现有标准或SSD选项。
在可用性上,AWS和谷歌达到99.95%,而微软Azure在其存储服务的某些设置提供高达99.99%的可用性服务级别协议(SLA)。
在购买块存储时,一个需要考虑的最重要因素是你的数据存储在SSD盘的速度。对于此,云服务商提供不同的IOPs,谷歌处于领导地位,该公司提供的IOPs读取数达到40000,写入达到30000IOPs。AWS提供的通用SSD的IOPs达到10000,但是其提供的IOPs每卷可达20000,最大可实现65000IOPs。微软的Azure的IOPs则达到5000。
谷歌不仅提供最高的IOPs,而且为客户提供块存储量大小的最佳选择。对于更传统基于磁盘驱动器的存储,谷歌提供的卷大小范围从1GB到64TB。AWS提供的卷在500GB到16TB之间。微软Azure的则介于1GB到1TB。
像SSD一样,谷歌提供的HDD中最高水平的IOP,读取为3000,写入为15000,而AWS和Azure每卷最大的IOPs为500。微软Azure的最大吞吐量范围为60MBps,谷歌高达180,AWS则为500MBps。
AWS为HDDs提供两种选择:经优化的卷专为经常访问的密集型工作而设计。冷HDD是每GB EBS卷中类型的最低成本,适用于频繁访问的大型数据集。AWS还提供了一系列EBS优化的EC2虚拟机实例,用于这些块存储产品。
至于价格,它有点复杂(所有的价格都是按每月每GB来计算),但是对HDD,AWS的价格为0.045美元,谷歌是0.04美元,微软Azure则是0.03美元。
AWS上,SSD的价格仅为0.10美元,谷歌则是0.17美元,微软Azure则是在0.12-0.14之间,这取决于盘的大小。
在RightScale进行的定价分析中,该公司发现,通常定价结构意味着Azure对块存储具有最佳的性价比。但是,对于需要更高的IOSs的工作负载,谷歌则是成本效益更高的选择。
RightScale市场营销副总裁Kim Weins说,使用配置的IOPs时需要注意。在AWS中,如果你需要保证IOPs的数,则需要支付费用。“你需要为每GB支付更高的成本,但是也需要为IOPs支付费用,这会使成本上升,”Weins说,“在选择所需的IOPs水平上聪明点,因为你需要为其付费。”
Weins补充说,RightScale已经发现了一些客户付费的IOPs,然后却忘记了在使用EBS实例时取消它,结果白白浪费了资金。
对象存储
如果你有一个文件,需要放到云端?对象存储就是为你提供这样的服务。再次,云提供商有不同类型的存储,根据期望访问的频率进行分类。“热”存储是需要几乎即时访问的数据,“酷”存储被更频繁访问,“冷”存储是很少访问的存档资料。存储的东西越冷,就便宜。
AWS最初的对象存储平台时简单存储服务,被称为S3。谷歌有谷歌云存储,GCS Nearline用于“酷”存储和GCS Coldline存档。Azure只有Azure Hot和Cool Storage Blob的选项,客户必须使用“酷”存储来存档数据。
AWS和谷歌每个都有5TB对象大小限制,而Azure每个账户的限制为500TB。对于云中的对象存储,AWS和谷歌都公开称有99.999999999%的耐久性。这意味着如果你在云中存储10000个对象,平均1000万年将丢失一个文件。这些系统的设计是超耐用的,Azure并没有公布耐久性SLA。
对象存储的价格是稍微有点复杂,因为消费者可以选择把自己的数据放在单独一个区域,或者多个区域备份就会提升成本——这是一个最佳做法,即使某个地区有中断,你仍然能够访问自己的数据。
在AWS,例如,S3的成本(每月每GB)是0.023美元,在多个数据复制备份将让价格加倍,达到0.046美元,外加每GB转让费0.01美元。AWS的“冷”存储服务,称为S3IA是0.0125美元,而长期对象存储Glacier的价格为0.004美元。客户可以支付不同的费用,用于从Glacier获得更快或慢的检索服务,范围从1到5分钟,或最多5到12小时。
谷歌提供着很相似的服务:它的单个区域存储价格为0.02美元,而多区域存储则为0.026美元,外加免费的数据传输。该公司的“冷”存储平台称为Nearline,价格是0.01美元,其Coldline是0.007美元。谷歌声称,相比亚马逊的Glacier,自己的Coldline更快。
微软Azure提供的单一区域存储为0.0184美元,而“全球冗余存储”的价格是0.046美元,但是它只能读取,不能写入来改变它,因为这样做花费更高。Azure的“冷”存储被称为Cool Blob Storage,价格为0.01美元。
基于这些价格选项,RightScale发现,谷歌的纯对象存储是最便宜的,以及免费的数据传输。然而,在“冷”存储成本方面,AWS打败了谷歌。
文件存储
一个最新的用例是使用基于云的文件存储系统。将其视为基于云的传统网络文件系统(NFS)版本:用户可以从连接到其的任何设备或虚拟机把文件安装到系统,然后读取和检索文件。这是一个相对新兴的云存储使用案例,因此与块存储和对象存储相比,产品还没有完整的功能,Adler说。
AWS在这个领域提供的服务称为弹性文件系统(NFS),在2016年6月推出了测试版。它允许用户从虚拟私有云中的EC2虚拟机或使用AWS Direct的内部部署服务安装文件或虚拟专用连接(VPC)。它没有大小限制,因此可根据需要自动扩张,并且每TB存储提供每秒50MB的吞吐量,客户可支付高达100MBps的吞吐量,它从每月每GB0.30美元起步。
Azure,也提供了Azure文件存储服务,其性质类似,但每个文件的容量为5TB,每个账户的容量为500TB,需要手动缩放,它为读取文件提供了60MBps的吞吐量。
谷歌并没有一个原生的文件存储服务,但是代替提供了开源FUSE适配器,允许用户从谷歌云端存储器装载文件并将其转换为文件系统。谷歌声称,这是三个提供商里的最高吞吐量,读取速度为180MBps,写入时为120MBps,但是Adler在他的经验中表示,与其他两个产品相比,FUSE适配器并没有融入谷歌云平台,这导致用户体验令人沮丧。Adler还指出,AWS的EFS没有本机备份解决方案,而Azure有。此时,AWS鼓励EFS用户依赖第三方备份工具。