私有云存储系统搭建与应用
上QQ阅读APP看书,第一时间看更新

1.2 存储系统的演进历程

从看得见摸得着的硬盘,到看不见摸不着的各种云存储,在这之间到底发生了什么样的变化?又为什么会有这样的演变呢?

1.2.1 节点能力的提升:从磁盘到磁盘阵列

磁盘阵列(RAID)是存储设备在设备层面的提升,其出现主要为了满足数据存储的完整性和扩展性。对于完整性,主要通过冗余校验机制来保证数据的完整性(其代价就是需要牺牲额外的磁盘空间);而对于扩展性,则完全依赖硬件特性(插槽和热插拔技术)来增加新的存储设备(磁盘)。

单/多磁盘系统到磁盘阵列的演变不是结构上的,而是节点上的。所以,磁盘阵列提高了整个存储系统在节点上的性能。而从系统的层面,还是需要从优化结构着手,构造分布式存储系统。这也是存储系统网络化的推动力。

1.2.2 存储与服务器剥离:存储网络化

对于网络存储技术,业内提得较多的有直连式存储(Direct-Attached Storage,DAS)、网络接入存储(Network-Attached Storage,NAS)和存储区域网络(Storage Area Network,SAN)。

实际上,DAS是依据连接方式划分的,而NAS和SAN是依据网络传输协议来划分的。

DAS的直连是指存储设备(单磁盘或阵列)通过接口(接口的演变顺序:IDE→SATA→SCSI)直接连接到服务器上的接入方式。

NAS和SAN的网络化程度比DAS更明显:NAS是将存储设备通过标准的网络拓扑结构连接到计算机网络中,充当网络上的一个文件系统,如图1-1所示。

图1-1 典型的NAS基础结构

而SAN则是将一组存储设备通过专门的网络连接到计算机网络中,充当网络上的一个存储设备,如图1-2所示。

图1-2 典型的SAN基础结构

读者只需简单区分这三种存储技术类型的差异即可:DAS和NAS主要用于文件的存储和共享(文件级);而SAN则主要用于基于块的存取,例如数据库系统。

1.2.3 抽象硬件管理:软件定义存储

无论从存储设备本身还是从网络存储技术的发展,我们看到的是更多的、新的网络设备和连接硬件投入其中。虽然成本不断提升,但是否就能满足需求呢?如上所述,SAN支持的是块级的存取,而NAS支持的是文件级存取,这些都是在应用中经常遇到的需求,那么,是否可以同时兼顾这两种需求呢?

历史经验告诉我们:当硬件遇到瓶颈的时候,一定会用软件的方式来解决。软件定义存储(Software-Defined Storage,SDS)是一种存储架构,用于将存储的管理和配置与底层物理硬件剥离,旨在使用动态、敏捷和自动化的解决方案替换静态和低效的硬件方案。

1.2.4 一切皆是对象:对象存储

虽然软件定义存储的这些“雄心壮志”听起来很完美,但是落地的情况又是如何呢?在很长一段时间里,软件定义存储只是供应商操控的术语之一,其真正的突破却是从对象存储开始的。当前,对象存储服务几乎成了软件定义存储的代名词,虽然两者不是同一个层级的概念(软件定义存储是规范,而对象存储服务却是实现)。

对象存储(Object-based Storage),是一种新型的存储类型,综合了文件存储(NAS)和块存储(SAN)的优点,同时具有NAS的分布式数据共享和SAN的高速访问的优势。其中的对象由数据和元数据(Metadata)组成,可以抽象成任何内容,包括文件、信息块等。

而对于成功实现对象存储的项目,就不得不提到OpenStack的Swift(注意不是苹果公司的新开发语言)。