首页 理论教育 分布式块存储技术的特点及应用实例

分布式块存储技术的特点及应用实例

时间:2023-10-17 理论教育 版权反馈
【摘要】:我们可以用以下几个特点来描述分布式块存储系统的概念。(二)分布式块存储实例分布式块存储目前已经相对成熟,市场上也有很多基于分布式块存储技术实现的产品。

分布式块存储技术的特点及应用实例

(一)分布式块存储的概念

在讨论分布式块存储之前,我们先解释一下块存储的概念,块存储简单来说就是提供了块设备存储的接口,用户需要把块存储卷附加到虚拟机或者裸机上以与其交互。这些卷都是持久的,因为它们可以从运行实例上被解除或者重新附加而数据保持不变。

这样解释有些人可能还不太了解什么是块存储,下面先从单机块设备工具开始介绍,让读者对块存储建立起初步的印象。简单来说,一个硬盘是一个块设备,内核检测到硬盘后,在/dev/下会看到/dev/sda/。为了用一个硬盘得到不同的分区来做不同的事,我们使用fdisk工具得到/dev/sdal、/dev/sda2等。这种方式通过直接写入分区表来规定和切分硬盘,是比较原始的分区方式。庆幸的是有一些单机块设备工具能帮我们完成分区,其中LVM是一种逻辑卷管理器。通过LVM来对硬盘创建逻辑卷组和得到逻辑卷,要比fdisk方式更加弹性。LVM基于Device-mapper用户程序实现。Device-mapper是一种支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构

在面对极具弹性的存储需求和性能要求下,单机或者独立的SAN(Storage Area Networking)越来越不能满足企业的需要。如同数据库系统一样,块存储在scale up的瓶颈下也面临着scale out的需要。我们可以用以下几个特点来描述分布式块存储系统的概念。

1.分布式块存储可以为任何物理机或者虚拟机提供持久化的块存储设备。

2.分布式块存储系统管理块设备的创建、删除和attach/detach。

3.分布式块存储支持强大的快照功能,快照可以用来恢复或者创建新的块设备。

4.分布式存储系统能够提供不同I/O性能要求的块设备。

(二)分布式块存储实例

分布式块存储目前已经相对成熟,市场上也有很多基于分布式块存储技术实现的产品。我们将结合几个市场上流行的产品进行介绍。

1.Amazon EBS

Amazon作为领先的IaaS服务商,其API目前是IaaS的事实标准。Amazon EC2目前在大多数方面远超其他IaaS服务商。Amazon EBS是专门为Amazon EC2虚拟机设计的弹性块存储服务。Amazon EBS可以为Amazon EC2的虚拟机创建卷volumes,Amazon EBS卷类似没有格式化的外部卷设备。卷有设备名称,同时也提供了块设备接口。用户可以在Amazon EBS卷上驻留自己的文件系统,或者直接作为卷设备使用。EBS定价为每月每GB容量10美分,或者每向卷发出100万次请求10美分。据Amazon称,用户还可以将虚拟机的数据以快照的方式存储到Amazon的S3。

一般来说,可以创建多达20个Amazon EBS卷,卷的大小可从1GB到1TB。在相同Avaliablity Zone中,每个Amazon EBS卷可以被任何Amazon EC2虚拟机使用。如果需要超过20个卷,则需要提出申请。

同时,Amazon EBS提供了快照功能。可以将快照保存到Amazon S3中,其中第一个快照是全量快照,随后的快照都是增量快照。可以使用快照作为新的Amazon EBS卷的起始点,这样当虚拟机数据受到破坏时可以选择回滚到某个快照来恢复数据,从而提高数据的安全性与可用性

Amazon EC2实例可以将根设备数据存储在Amazon EBS或者本地实例存储上。使用Amazon EBS时,根设备中的数据将独立于实例的生命周期保留下来,使得在停止实例后仍可以重新启动使用,与笔记本电脑关机并在再次需要时重新启动相似。另外,本地实例存储仅在实例的生命周期内保留。这是启动实例的一种经济方式,因为数据没有存储到根设备中。

EBS可以在卷连接和使用期间实时拍摄快照。不过,快照只能捕获已写入Amazon EBS卷的数据,不包含应用程序或操作系统已在本地缓存的数据。如果需要确保能为实例连接的卷获得一致的快照,需要先彻底地断开卷连接,再发出快照命令,然后重新连接卷。

EBS快照目前可以跨regions增量备份,意味着EBS快照时间会大大缩短,从另一方面增加了EBS使用的安全性。

下面通过Amazon EBS容错处理和使用快照加载新卷的过程来了解Amazon EBS的功能。

Amazon EBS可以将任何的实例(即运行中的虚拟机)关联到卷。当一个实例失效,Amazon EBS卷可以自动地解除与失效节点的关联,从而可以将该卷关联到新的实例。步骤如下。

(1)运行中的Amazon EC2实例被关联到Amazon EBS卷,而这个实例突然失效或者出现异常。

(2)为了恢复该实例,解除Amazon EBS卷和实例的关系(如果没有自动解除),加载一个新的Amazon EC2实例,将其关联到Amazon EBS卷。(www.xing528.com)

(3)在Amazon EBS卷失效的情况下(几率极低),可以根据快照创建一个新的Amazon EBS卷。

我们可以使用Amazon EBS快照作为一个起点来加载若干个新卷。加载过程如下。

(1)假设现在有个大数据量的Web Service服务正在运行。

(2)当数据都正常的时候,可以为自己的卷创建快照,并将这些快照存储在Amazon S3上。

(3)当服务数据剧增时,需要根据快照加载新的卷,然后启动新的实例,再将新的实例关联到新的卷。

④当服务下降时,可以关闭一个或多个Amazon EC2实例,并删除相关的EBS卷。总的来说,Amazon EBS是目前IaaS服务商最引人注目的服务之一,目前的OpenStack、CloudStack等其他开源框架都无法提供Amazon EBS的弹性和强大的服务。了解和使用Amazon EBS是学习IaaS块存储的最好手段。

2.Cinder

OpenStack是目前流行的IaaS框架,提供了与AWS类似的服务并且兼容其API。OpenStack Nova是计算服务,Swift是对象存储服务,Quantum是网络服务,Glance是镜像服务,Cinder是块存储服务,Keystone是身份认证服务,Horizon是控制台Dashboard,另外还有Heat、Oslo、Ceilometer、Ironic等项目。

OpenStack的存储主要分为三大类。

(1)对象存储服务(Swift)。

(2)块设备存储服务,主要是提供给虚拟机作为“硬盘”的存储。这里又分为两块:本地块存储和分布式块存储(Cinder)。

(3)数据库服务,目前是一个正在孵化的项目Trove,前身是Rackspace开源出来的RedDwarf,对应AWS里面的RDC。

Cinder是OpenStack中提供类似于EBS块存储服务的API框架。它并没有实现对块设备的管理和实际服务,而是为后端不同的存储结构提供了统一的接口,不同的块设备服务商在Cinder中实现其驱动支持以与OpenStack进行整合。后端的存储可以是DAS、NAS、SAN、对象存储或者分布式文件系统。也就是说,Cinder的块存储数据完整性、可用性保障是由后端存储提供的。

在CinderSupportMatrix中可以看到众多存储厂商(如NetAPP、IBM、SolidFire、EMC)和众多开源块存储系统对Cinder的支持。

从图7-9中,我们也可以看到,Cinder只是提供了一层抽象,然后通过其后端支持的driver实现发出命令来得到回应。关于块存储的分配信息以及选项配置等会被保存到OpenStack统一的DB中。

通过上面的介绍,目前分布式块存储的实现仍然是由Amazon EBS独占鳌头,其卓越稳定的读写性能、强大的增量快照和跨区域块设备迁移,以及令人惊叹的QoS控制都是目前开源或者其他商业实现无法比拟的。

不过Amazon EBS始终不是公司私有存储的一部分,作为企业IT成本的重要部分,块存储正在发生改变。EMC发布了其ViPR平台,并开放了其接口,试图接纳其他厂商和开源实现。Nexenta在颠覆传统的存储专有硬件,在其上软件实现原来只有SDN的能力,让企业客户完全摆脱存储与厂商的绑定。Inktank极力融合OpenStack并推动Ceph在OpenStack社区的影响力。这些都说明了无论是目前的存储厂商还是开源社区都在极力推动整个分布式块存储的发展,存储专有设备的局限性正在进一步弱化原有企业的存储架构。

图7-9 Cinder架构图

在分布式块存储和OpenStack之间,可以打造更巩固的纽带,将块存储在企业私有云平台上做更好的集成和运维。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈