ECS,EVS以及OBS
系列文章
云服务:ECS,EVS以及OBS
基本概念
ECS(弹性云服务器)、EVS(弹性云硬盘)、OBS(对象存储服务)是最基础也是最核心的三种云资源,其基本定义如下:
| 名称 | 全称 | 类型 | 用途 |
|---|---|---|---|
| ECS | Elastic Cloud Server | 计算资源 | 云上的虚拟机,运行操作系统、部署应用 |
| EVS | Elastic Volume Service | 块存储 | 相当于“云硬盘”,挂载给 ECS 作为系统盘或数据盘 |
| OBS | Object Storage Service | 对象存储 | 存储图片、视频、文档等海量非结构化数据 |
其更详细的对比如下:
| 特性 | ECS | EVS | OBS |
|---|---|---|---|
| 功能角色 | 云服务器 | 硬盘(块存储) | 文件/对象存储 |
| 挂载方式 | 无需挂载,直接使用 | 挂载到 ECS 或裸金属服务器 | 不挂载,通过 API/S3 协议访问 |
| 访问方式 | SSH / 远程桌面 / 控制台 | 文件系统挂载(如 ext4) | RESTful API / SDK / 控制台 |
| 典型用途 | 应用部署、Web 服务、数据库运行 | 系统盘、数据库数据盘、缓存盘 | 存储图片、备份、日志、媒体等 |
| 数据类型 | 结构化数据(程序、服务) | 结构化数据(磁盘文件) | 非结构化数据(对象:文件、图像等) |
| 持久性 | 取决于磁盘(EVS) | 高持久性(支持快照) | 超高持久性(11个9),自动冗余备份 |
| 扩展性 | 水平伸缩可扩容 | 支持磁盘扩容 | 无限制扩展(理论上可存PB级) |
| 计费模式 | 按需/包年包月 | 按容量计费 | 按使用量计费(存储+请求次数+下行流量) |
我们接下来先关注几个问题:
- 对象存储 v.s 块存储(以及其它存储类型)
- 文件系统挂载是什么意思
- 为什么要区分vCPU以及pCPU,如何去分析的看这两个数据
- Elastic是如何实现的
EVS v.s OBS
EVS(Elastic Volume Service)
EVS(云硬盘),类似PC中的磁盘,直接对应磁盘的扇区,初始态没有文件系统,为没有边界的纯二进制数据流,无法单独使用,也不能被操作系统应用直接访问(其不能直接读某个区块,而只能通过文件路径访问),需要挂载到ECS之后格式化文件系统才能够通过路径访问。
其实EVS可以看作最底层的虚拟化SSD或者HDD
其一般挂载到云服务器或者裸金属服务器使用,其E(Elastic)的含义是支持最小10GiB到最大32TiB(系统盘1TiB)热扩容,此外其还支持备份,快照恢复等功能。
- 裸金属服务器:提供完整物理服务器资源(CPU/内存/存储)的独占使用权,硬件无虚拟化层
- 云服务器:基于虚拟化技术将物理资源划分为多个虚拟机实例,用户共享底层硬件资源
性能指标
云硬盘性能的主要指标包括:
- IOPS:云硬盘每秒进行读写的操作次数。
- 吞吐量:云硬盘每秒成功传送的数据量,即读取和写入的数据量。
- IO读写时延:云硬盘连续两次进行读写操作所需要的最小时间间隔。
此外,云硬盘的性能与数据块大小密切相关:
- 同一数据块大小,当最大IOPS或最大吞吐量中有一项指标达到最大值时,此时云硬盘性能达到最大,另一项指标无法再继续上升。
- 不同数据块大小,云硬盘性能达到最大的指标可能不同。
- 对于小数据块,例如4 KiB和8 KiB,性能可达到最大IOPS。
- 对于≥ 16 KiB的大数据块,性能可达到最大吞吐量。
一般有4KiB,8KiB,16KiB以及32KiB四种格式的数据块,有如下表
数据块大小(KiB) 最大IOPS 最大吞吐量(MiB/s) 4 约50000 约195 8 约44800 约350 16 约22400 约350 32 约11200 约350 基本上有,这时候IOPS是瓶颈,但到了16的时候IOPS则呗最大吞吐量限制,有
此外吞吐量其实与磁盘容量也有关系,这可能是和磁头的数量有关,有这样的线性增长性:
磁盘模式:SCSI与VBD
SCSI模式可以直接执行硬件级别的命令访问硬件,而VBD需要先将软件级别的读写指令封装为SCSI读写从而进一步访问硬盘(有点类似原生SQL和高级的ORM机制)。 所以SCSI主要用于多机共享的集群系统,其支持锁机制,支持跨主机并发访问与协调。
| 功能 | VBD 模式 | SCSI 模式 |
|---|---|---|
| 是否支持 SCSI 锁机制 | 否 | 针对 Reservation |
| 适用场景 | 单机 ECS,只需基本读写 | 多实例共享磁盘且需写冲突控制 |
| 支持命令类型 | 仅 READ/WRITE | 支持高级 SCSI 指令 |
| 是否安装驱动 | 无需驱动 | Linux/Windows 需 SCSI 驱动(如 PVSCSI) |
| 适合客户类型 | 普通 Web 服务、小规模应用 | 企业集群、高可用系统 |
运营运维:计费与安全
计费模式
云硬盘(EVS)服务根据磁盘容量计费,提供包年/包月、按需计费两种计费模式。
- 包年/包月:预付费。
- 按需计费:后付费。按秒计费,按小时结算,不足一小时以实际使用时长为准。
计费项
云硬盘的计费项由云硬盘费用、性能费用、云硬盘回收站费用、云硬盘快照费用组成。具体内容如表所示。
- 开始计费:云硬盘购买成功后开始计费,与是否挂载使用无关。
- 停止计费:
- 包年/包月云硬盘退订成功后停止计费,按照一定比例退还预付的费用。退款金额= 订单实付金额-已消费金额-退订手续费,详细计算方法请参见退订规则。
- 按需计费云硬盘删除成功后停止计费。
注:云硬盘进入回收站后仍按照按对应的按需计费模式,直至其恢复或者销毁
权限管理
为达到权限隔离,可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能。默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作
关于IAM的详细介绍,请参见IAM产品介绍。
OBS(Object Storage Service)
对象存储服务(Object Storage Service,OBS)是一个基于对象的海量存储服务,为客户提供海量、安全、高可靠、低成本的数据存储能力。
OBS系统和单个桶都没有总数据容量和对象/文件数量的限制,为用户提供了超大存储容量的能力,适合存放任意类型的文件,适合普通用户、网站、企业和开发者使用。OBS是一项面向Internet访问的服务,提供了基于HTTP/HTTPS协议的Web服务接口,用户可以随时随地连接到Internet,通过OBS管理控制台或各种OBS工具访问和管理存储在OBS中的数据。此外,OBS支持SDK和OBS API接口,可使用户方便管理自己存储在OBS上的数据,以及开发多种类型的上层业务应用。
桶是OBS中存储对象的容器,每个桶都有自己的存储类别、访问权限、所属区域等属性,用户在互联网上通过桶的访问域名来定位桶。其是扁平化存储,即桶内所有对象处于同一逻辑层级,没有文件目录的概念
对象是OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息的集合体,包括Key、Metadata、Data三部分
实例分析
以华为云为例,有标准存储,低频访问存储,归档存储以及深度归档存储:
| 对比项目 | 标准存储 | 低频访问存储 | 归档存储 | 深度归档存储(受限公测) |
|---|---|---|---|---|
| 场景 | 云应用、数据分享、内容分享、热点对象 | 网盘应用、企业备份、活跃归档、监控数据 | 档案数据、医疗影像、视频素材、带库替代 | 长期不访问的数据存档场景 |
| 持久性 | 99.999999999%(11*9) | 99.999999999% | 99.999999999% | 99.999999999% |
| 持久性(多AZ) | 99.9999999999%(12*9) | 99.9999999999% | 不支持多AZ | 不支持多AZ |
| 可用性 | 99.99% | 99% | 99% | 99% |
| 可用性(多AZ) | 99.995% | 99.5% | 不支持多AZ | 不支持多AZ |
| 数据恢复 | 不涉及 | 按实际恢复数据量收费,单位GB | 分加急、标准恢复方式按实际恢复数据量收费,单位GB | 分加急和标准两种恢复方式按实际恢复数据量收费,单位GB |
AZ = 可用区,是区域内部的物理隔离域;在 单 AZ 设计中,所有数据和资源置于一个 AZ 内;保护基础为 AZ 内硬件冗余,但 无法抵御 AZ 整体故障
性能指标:可用性与可靠性:
**可用性:**在可靠性/运维中,常说的可用性指标就是 系统一整年正常运行的百分比,例如:
- 99.9% 可用性(“三个 9”) ≈ 一年允许 最多停机 8 小时 45 分钟;
- 99.99% 可用性(“四个 9”) ≈ 最多 52 分钟;
- 99.995% 可用性(“五个 9”) ≈ 最多 26 分钟
一般多AZ就是从概率的角度来说减少同时挂掉的可能,可以通过简单计算得到,参考AWS的文档
**可靠性:**其基本上代表着对于n个对象的存储,在m年以内是没有丢失的,具体数据如下
| 指标 | 年度持久性 | 写 10 亿个对象的预期丢失量 |
|---|---|---|
| 11 个 9(99.999999999%) | 每年丢失概率约 0.00000000001 | 平均每 100 年丢失 1 个 对象 |
| 12 个 9(99.9999999999%) | 再少一位:0.000000000001 | 平均每 1 000 年 才丢 1 个 对象 |
这种级别准确来自概率公式:
应用场景与服务
- 大数据分析
- 静态网站托管
- 在线视频点播
- 基因测序
- 智能视频监控
- 备份存档
- HPC
- 企业云盘
与其他服务的关系:如图
计费与安全
OBS计费项由存储费用、请求费用、流量费用、数据恢复费用和数据处理费用组成,计费周期基本上为小时如图所示
由于OBS会面向公网,所以如果桶地址直接暴露,哪怕是请求失败,请求也到达了服务器并且服务器给出了失败的响应,也就产生了流出流量,所以就会受到DDoS攻击;而之前提到的EVS由于是挂载在ECS或者BMS上,其主要I/O来自本地硬件,所以不会产生公网上的流量费用
EVS、OBS与SFS横向对比
文件存储
文件存储将数据存储在文件夹中。这种方法也称为分层存储,模拟了纸质文档的存储方式。当需要访问数据时,计算机系统必须使用文件夹结构中的路径来查找数据。
文件存储使用 TCP/IP 作为传输,设备通常在 Linux 中使用 NFS 协议,在 Windows 中使用 SMB 协议。
块存储
块存储将文件拆分成多个独立的数据块,并将每个数据块存储为一个单独的数据单元。每个数据块都有一个地址,因此存储系统无需文件夹路径即可找到数据。这还允许将数据拆分成更小的块并以分布式方式存储。每当访问文件时,存储系统软件都会根据所需的数据块组装文件。
块存储使用 FC 或 iSCSI 进行传输,设备作为直接连接存储或通过存储区域网络 (SAN) 运行。
对象存储
在对象存储系统中,构成文件或“对象”的数据块及其元数据都保存在一起。每个对象都会添加额外的元数据,从而实现无层次结构的数据访问。所有对象都位于统一的地址空间中。为了查找对象,用户需要提供唯一的 ID。
基于对象的存储使用 TCP/IP 作为传输,设备使用 HTTP 和 REST API 进行通信。
元数据是对象存储技术的重要组成部分,元数据由用户自主决定,可以根据存储池的功能和特性,灵活地分析和检索存储池中的数据。
对象存储的主要优势在于,您可以将设备分组到大型存储池中,并将这些池分布到多个位置。这不仅允许无限扩展,还能提高数据的弹性和高可用性。
三者在物理磁盘上的存储对比:
| 存储模式 | 磁盘中如何存储数据 | 索引结构 / 查找方式 |
|---|---|---|
| 块存储(EVS) | 操作系统分配固定大小的 block 写入相应扇区/Page | 无路径语义,通过地址直接读写 |
| 文件存储(SFS) | inode 和数据 block 写入扇区/Page,通过元数据定位数据 | POSIX 路径逐级查找 → inode → extent/数据块 |
| 对象存储(OBS) | 内容分片存储在 DSS 后端 SSD/HDD 中,索引保存在元数据层 | 以 Key 映射元数据索引 → 定位底层对象块 |
注意,OBS和SFS在最最底层的硬盘上还是以块的形式分布存储,但是其均有中间层进行查找,并且向上表现为Key(OBS)以及路径(SFS)
