NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

云存储哪家强:AWS、Azure、Google、SoftLayer

  • 2016-04-27
  • 本文字数:4689 字

    阅读完需:约 15 分钟

目前市面上最主要的公有云服务供应商包括 AWS、Google Cloud Platform、Microsoft Azure,以及 IBM SoftLayer,他们都提供了云存储服务,具体又该如何选择?

此时必须针对每个应用程序工作负载的具体需求来决定,但考虑因素很多,例如功能、成本、位置、安全与合规、性能、私有云现有数据中心所用的技术,以及签署过的企业协议或折扣价格等。

本文将详细谈谈不同公有云供应商在云存储方面的差异。

云存储的不同类型

大部分云供应商都提供了不同类型的数据存储选项,例如:

  • 对象存储 (Object storage)
  • 块存储 (Block storage)
  • 实例 / 服务器存储("短暂"存储)
  • 归档存储 (Archival storage)
  • 内容交付网络 (CDN)
  • 队列服务 (Queue service)
  • 数据库服务
  • 缓存服务
  • 导入 / 导出服务

本文将重点介绍两种最常用的核心存储服务:对象存储块存储,因为这两种类型几乎是所有公有云服务的用户都会用到的。

对象存储:

AWS Simple Storage Service (S3)

  • 存储抽象:“Bucket”
    • 每个 Bucket 可存储无限数量的对象,每个对象最大 5TB
  • SLA:
    • Standard(标准):
      – 可用性:年均 99.99%
      – 持久性:年均 99.99999999999%(11 个 9)
    • Infrequent(不频繁):
      – 可用性:年均 99.9%
      – 持久性:年均 99.99999999999%(11 个 9)
  • 加密:传输中和存储后
    • 多种加密选项:AWS 控制的密钥,用户控制的密钥

S3 使用“Bucket”描述用于存储对象的存储抽象。每个 Bucket 可保存无限数量的对象,每个对象最大可达到 5TB。S3 分为标准和不频繁两种服务级别:标准级服务可用性为年均 99.99%,持久性为 11 个 9,简单来说,对于标准级 S3 中存储的每 10,000 个对象,每 10,000 年才会丢失一个。

S3 的另一个服务级别 Infrequent access(不频繁访问),99.9% 的可用性略低,持久性同样为 11 个 9。不频繁访问级别定价略低。

这些存储级别都可通过 SSL 和 TLS 加密传输中的数据,同时可加密存储后的数据。此外还可以在客户端自行加密数据,并将加密后的数据上传至 Amazon S3。

Google Cloud Storage

  • 存储抽象:“Bucket”
    • 每个 Bucket 可存储无限数量的对象,每个对象最大 5TB
  • SLA:
    • Standard(标准):月均 99.9%
    • Durable reduced availability(低可用持久,DRA):月均 99.0%
    • 上述两种级别的延迟均为毫秒级。
  • 加密:与 AWS 相同,但目前为 Alpha 测试阶段

Google 的对象存储服务也使用“Bucket”作为抽象,具体局限与 AWS 相同:每个 Bucket 可存储无限数量的对象,每个对象体积上限为 5TB。Google 提供了三种服务级别:标准、低可用持久 (DRA),以及近线(Nearline)。

Google 存储服务的 SLA 按月计算。对于标准级存储,具备月均 99.9% 的持续运行时间保证,对象访问延迟为毫秒级别。对于 DRA,具备月均 99% 的持续运行时间,延迟同样为毫秒级。近线级别的持续运行时间保证与 DRA 同为 99%,但延迟约为 3 秒,这更像是一种归档存储。

默认情况下,Google Cloud Storage 会使用自己的服务器端加密密钥加密传输中和存储后的数据,但也可以在客户端对数据进行加密,随后将加密后的数据写入 Google Cloud Storage。

Azure Storage

  • 存储抽象:“容器”和“Blob”
    • 无限数量的对象,每个存储账户最大 500TB,可使用多个存储账户
  • 服务级别:
    • Locally Redundant Storage(本地冗余存储,LRS),Zone Redundant Storage(区域冗余存储,ZRS),Geographically Redundant Storage(地域冗余存储,GRS)(更加接近于 AWS 和 Google 的服务),Read-Access Geo-Redundant(读取访问地域冗余,RA-GRS)
  • 加密:均通过 Azure Encryption Extensions(在您的虚拟机内运行)加密,可配合 Azure 密钥保管库 (Azure Key Vault) 使用

Azure 存储服务使用“容器”代替“Bucket”,使用“Blob”称呼块存储。Azure 每个容器可存储无限数量的对象,每个存储账户最大容量 500TB,但可同时使用多个存储账户。

Azure 提供了本地冗余 (LRS)、区域冗余 (ZRS)、地域冗余 (GRS),以及读取访问地域冗余 (RA-GRS) 选项。LRS 会在同一数据中心内部多次复制,ZRS 会在同一区域(即同一地理位置的多个数据中心间)多次复制,GRS 会在本地复制的同时复制到距离数百英里之外的辅助数据中心。RA-GRS 为备份数据中心的其他地域冗余副本提供了读取访问的能力。

Azure 存储支持对传输中的数据进行加密,存储后的数据可使用 Azure Encryption Extensions 加密,同时可将密钥存储在 Azure 密钥保管库中。Azure Encryption Extensions 是一种在虚拟机内部运行的工具,需要消耗虚拟机的 CPU 资源。

SoftLayer Object Storage

  • 基于 OpenStack Swift 平台
  • 存储抽象:“容器”
    • 每个容器可存储无限量的对象,每个对象最大 5GB,但可将数据分为多个 Chunk 保存,存储服务可创建清单文件,借此将文件重新拼接到一起。该服务可并行上传 / 下载,因此这个体积局限有些误导用户。
  • 单一服务级别
    • 持久性 99.99999999999%(11 个 9)
  • 可在群集内部复制,但非地域冗余
  • 加密:第三方工具或客户自行实施的工具,非内建

SoftLayer Object Storage 基于 OpenStack Swift 平台,也使用“容器”代表存储抽象。每个容器可支持存储无限数量的对象,每个对象体积最大为 5GB,但可将巨型对象拆分为多个 Chunk 存储,并创建清单文件,这样在下载文件时就可以自动将其重新拼接到一起。

SoftLayer 只提供一个服务级别,持久性包含 11 个 9,可在(本地数据中心)群集内部进行复制,但目前不支持地域复制,也没有内建的加密功能。

块存储

对象存储服务很适合需要以自包含“对象”方式存储并检索数据的场景,如果需要更标准的文件系统配置(并且需要兼容 POSIX),此时更适合使用块存储。

AWS Elastic Block Storage (EBS)

  • 卷容量:1GB 至 16TB(以 1GB 为增量)
  • 卷类型:
    • Magnetic:平均 IOPS 为 100,可迸发至数百 IOPS(主要用于存储 / 快照创建)
    • General Purpos (SSD):3 IOPS/GB,最高 10,000 IOPS。吞吐率限制为 128MB/ 秒,更大型(<170GB)卷最高为 160MB/ 秒
    • Provisioned IOPS (SSD):最高为 20,000 IOPS/ 卷。最大吞吐率为 320MB/ 秒(配合 EBS 优化实例使用时)
  • 可跨越可用性区域 (Availability Zone, AZ) 使用快照,但不可跨地域
  • 所有类型的卷均支持 EBS 加密

EBS 卷体积范围从 1GB 至 16TB,以 1GB 为增量,因此可以逐步获得一个非常大的卷。AWS 提供三种不同类型的卷,分别叫做 Magnetic、General Purpose,以及 Provisioned IOPS。

Magnetic 使用传统机械磁盘,据称该服务平均可实现 100 IOPS,可迸发至数百 IOPS,因此这种类型的卷并不适合高事务量的工作负载,但最适合保存希望存储并创建快照,同时不需要快速访问的数据。

General Purpose 是一种基于 SSD 的存储机制,可为每 GB 数据提供 3 IOPS,最高 10,000 IOPS。例如对于一个 3,334 GB (3.3TB) 的卷,可获得 10,000 IOPS。虽然该类型最高提供 16TB 容量,但 IOPS 的最大值 10,000 封顶,吞吐率范围从 128MB/ 秒至最高 160MB/ 秒。

EBS 的第三种类型为 Provisioned IOPS (PIOPS),这种类型同样基于 SSD。PIOPS 最高 20,000 IOPS/ 卷。如果使用 EBS 优化过的实例,最大吞吐率可进一步增至 320MB/ 秒。

所有 EBS 卷均可创建快照并跨 AZ 使用。举例来说,如果在 US-East-1A 创建一个卷并为其创建快照,随后便可自动在 US-East 的任何区域(US-East-A、B、C、D,和 E)访问该快照,但该快照无法在 US-West 使用。AWS 提供了跨地域复制快照的工具,但复制操作无法自动进行。

所有 EBS 卷均可加密。在创建卷时可以看到加密选项,此时可选择使用 AWS 管理的密钥,或自行管理的密钥。

Google Block Storage (Persistent Disk, “PD”)

  • 卷容量:1GB 至 10TB
  • 卷类型:
    • HDD (标准磁介质存储)。
      – IOPS:最高 3,000 读取 IOPS/15,000 写入 IOPS
      – 吞吐率:180MB/ 秒读取,120MB/ 秒写入
    • SSD
      – IOPS:最高 15,000 IOPS
      – 吞吐率:最高 240MB/ 秒
  • 快照可在区域内所有数据中心使用,但无法跨地域
  • 所有卷上传输中和存储后的数据均被加密

Google 提供了 HDD 和 SSD 这两种类型的卷。HDD 据称最高可实现 3,000 IOPS 读取和 15,000 IOPS 写入,以及 180MB/ 秒读取和 120MB/ 秒写入的吞吐率。SSD 则可实现最高 15,000 IOPS 和高达 240MB/ 秒的吞吐率。

快照可在区域内所有数据中心使用,但无法跨地域。如有必要可自行跨地域复制快照。默认情况下,Google Persistent Disk 会加密对传输中和存储后的数据。

Azure Block Storage

  • 卷容量:1GB 至 1TB
  • 以“Page Blob”形式实施,读写操作要在后端转换为 GET/PUT 操作
  • 卷类型:
    • 标准存储
      – IOPS:500 IOPS/ 直连磁盘
      – 吞吐率:60MB/ 秒
    • 高级存储:基于 SSD(仅适用于 Azure 虚拟机,无法用于其他服务)
      – IOPS:最高 80,000 IOPS
      – 吞吐率:2,000MB/ 秒
  • 快照可跨越区域内多个数据中心复制,并提供了跨地域复制的选项
  • 传输中和存储后的数据均可使用 Azure Encryption Extensions 加密

Azure 卷可提供 1GB 至 1TB 容量,作为一种高端服务,这样的容量实在非常小,但这一局限源自 Azure 后端的实现方式。该服务使用 Page blob 而非 Block blob,可为读写操作创建兼容 POSIX 的文件系统,所执行的 freads 和 fwrites 操作会在后端转换为 GET 和 PUT 操作。这种方法使得 Azure 能够将同一套后端基础结构应用于所有存储服务,但正是因此,卷的大小存在 1TB 的局限。

Azure 提供标准和高级两种类型的卷。对于标准存储,每个直连磁盘可实现 500 IOPS,及大约 60MB/ 秒的吞吐率,这样的性能表现尚可,但并非最优秀的。不过高级存储就相当惊人了,可提供最高 80,000 IOPS 和让人惊叹的 2,000MB/ 秒吞吐率。这是一种基于 SSD 的存储,目前只能用于 Azure 虚拟机,无法将其用于其他 Azure 服务。

Azure 提供了额外的快照选项。快照可跨越同一区域的多个数据中心复制,还可通过 GRS 进行跨地域复制。

所有传输中的数据会被加密,同时也可以通过 Azure Encryption Extensions 加密存储后的数据。

SoftLayer Block Storage

  • 卷容量:20GB 至 12TB
  • 卷类型:
    • Endurance Storage(持久存储):
      – IOPS:每 GB 0.25、2.0,或 4.0 IOPS,最高可实现 48,000 IOPS
    • Performance Storage(性能存储):
      – IOPS:最高 6,000 IOPS。100GB 的卷可支持 6,000 IOPS
      – 相同 IOPS 的速率需要具备 1.5TB 的持久存储
  • 快照可在区域内多个数据中心复制,并提供跨地域复制的选项(仅适用于持久存储)
  • 加密功能需要使用第三方工具和 / 或客户自行实施

SoftLayer Block Storage 可提供容量 20GB 至 12TB 的卷,分为 Endurance(持久)和 Performance(性能)两种级别。持久存储可为每 GB 卷提供 0.25、2.0,或 4.0 的 IOPS,因此如果有一个 12TB 的卷,最高可获得 48,000 的 IOPS。

性能存储最高提供 6,000 的 IOPS,该 IOPS 要求卷容量至少 100GB。对于 100GB 以上的卷,性能存储的 IOPS 上限为 6,000。如果使用持久存储,需要容量为 1.5TB 的卷才能实现相同的 6,000 IOPS。因此持久存储更适用于事务量不是非常高,但可能需要较大存储容量的工作负载。性能存储适合需要以很高速度执行非常高读写事务的工作负载。性能存储的不足之处在于无法为其创建快照。您可以为持久存储卷创建快照,并在区域内部或跨地域复制,但是对于性能存储卷,只能自行执行相关操作。

加密工作只能通过第三方工具或自行实施的工具实现。

云存储的定价

每个云供应商都提供了类似的存储服务,但由于服务之间存在诸多差异,往往很难进行严格的“同类”服务对比。价格方面,最恰当的做法是首先从待考虑的云供应商中确定最适合的服务,随后根据相关定价确定每种服务的最终成本。

编译:大愚若智


感谢陈兴璐对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-27 19:003588
用户头像

发布了 283 篇内容, 共 102.0 次阅读, 收获喜欢 61 次。

关注

评论

发布
暂无评论
发现更多内容

详解动静态缓存各种方式

穿过生命散发芬芳

4月月更

[Day13]-[动态规划]爬楼梯

方勇(gopher)

LeetCode 数据结构和算法

cdr2022订阅版本安装包

茶色酒

cdr2022

带你了解什么是DHCP,为什么要用DHCP?

乌龟哥哥

DHCP 4月月更

在线标准程序员计算器

入门小站

工具

在线CSV转TSV工具

入门小站

工具

开启 JSON 和多模,让生态更多可能 | OceanBase 社区版 3.1.3 发版

OceanBase 数据库

OceanBase 社区版

智能风控中台设计与落地

第四范式开发者社区

人工智能 自动化 金融 中台架构 风险控制

Android C++系列:JNI开发准则

轻口味

c++ android 4月月更

压力如同下雨一样具有存在的必要性,我和你交个朋友吧。

叶小鍵

linux之chsh命令

入门小站

Linux

盘点春招跳槽涨薪必备技能Linux内核技术(含学习路线)

简说Linux内核

内存管理 Linux内核 进程管理 嵌入式开发 设备驱动

react源码解析10.commit阶段

buchila11

React

论语音社交视频直播平台与 Apache DolphinScheduler 的适配度有多高

Apache DolphinScheduler

动态压测模型让工作更轻松

FunTester

SeekTiger迎来新征程,STI即将登录Gate.io

BlockChain先知

redis中报too many connections错误的解决

杨彦星

redis

宜搭小技巧|自动计算日期时长,3个公式帮你搞定!

一只大光圈

低代码 数字化 钉钉宜搭 宜搭

架构训练营-作业八

默光

消息队列 训练营

多模块项目 mybatis mapper bean 找不到问题

Z冰红茶

Web3 和区块链技术:数字资产所有权如何颠覆当前的商业模式

CECBC

阿里云PolarDB开源数据库社区与 Tapdata 联合共建开放数据技术生态

阿里云数据库开源

数据库 阿里云 polarDB PolarDB-X

分布式shiro权限验证

Rubble

4月日更

什么是中国企业信息化

秋去冬来春未远

数字化信息化中国文化

渗透测试系列之靶机渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 漏洞挖掘

从架构上详解技术(SLB,Redis,Mysql,Kafka,Clickhouse)的各类热点问题

利志分享

架构 #热点问题

逐向双碳:绿色计算的误区与正确打开方式

脑极体

探索内存原理的内存映射文件(图文详解)

简说Linux内核

内存管理 Linux内核 进程管理 驱动开发 嵌入式开发

jackson学习之八:常用方法注解

程序员欣宸

4月月更

领导看了我写的关闭超时订单,让我出门左转!

阿Q说代码

RabbitMQ 延时队列 4月月更 关闭订单

北京朝阳医院与英特尔中国研究院宣布合作,共同打造未来智慧急诊创新模式

科技新消息

云存储哪家强:AWS、Azure、Google、SoftLayer_Google_大愚若智_InfoQ精选文章