Essential系列-存储技术概述(一)
存储技术分类
云环境中的存储技术
Block Storage
传统的块存储的例子是物理磁盘,它就是一个块存储设备。
但云环境中的Block Storage是通过Nas(Network Attached Storage)模拟的块设备(不然的话,如何做到实时分配和计费?)。参考
不管传统意义上的块存储(磁盘),还是云环境中的块存储,它的主要目的只有一个:
为性能敏感的数据提供廉价的持久化的存储。
它的特性是:
-
低延迟
-
传输速度块(相对网络存储)
-
支持多种操作系统,提供硬件级容错机制
数据在块上是如何组织的?
-
数据被存储在固定大小的块上(比如 512字节),块是最基础的存储单元。
-
没有比块更高的元数据(meta data)
-
如果操作系统要访问块数据,它需要先用某种格式(ext2,3,4)挂载(mount)。
这就是在linux系统上无法直接访问fat格式的磁盘的原因。
由操作系统决定块内的数据如何被访问(提供访问操作视图)。
数据块接口的性能比较
(光纤网络的速度可达到100G/S)
云环境中常见块存储服务:
-
EBS(AWS Elastic Block Storage), AWS提供的原始数据存储服务,格式化以后它可以被挂载到EC2示例中。
-
Azure Block Storage,微软Azure云提供的块存储服务。
-
Google Persistence Disks,谷歌的持久化存储服务。
-
阿里云的云盘/本地盘
File Storage
文件存储,相对于块存储,它的操作视图是基于文件或者文档。相对于块高了一个层次。
文件的典型特性:
-
所有文件都有一个名字,并且是可字节寻址的。
-
可随机访问。
-
通过文件句柄可以进行IO操作。
使用场景:
-
文档共享
-
数据库集群
-
大数据存储
文档存储最简单的例子是Samba和NFS
Object Storage
对象存储是云环境中,被应用常用的一种存储方式。
数据存储的特性:
-
包含一个句柄URL格式或者ObjectId
-
有元数据,包括用户元数据和操作系统元数据。
-
包含版本
-
不需要挂载
-
可随处访问(at any endpoint)
常见用途:
-
归档存储
-
Server-less 容器存储
-
同步或共享文件
总结
块存储是构建在inode、block、volume逐层索引原理之上的存储方式。
文件存储是以文件操作(POSIX接口)为操作视图实现的存储方式。
对象存储为适应云环境碎片文件存储诞生的,在文件存储至少扩展了元信息,增加了环境上下文、云用户信息。