【恒天云技术分享系列10】OpenStack块存储技术

原文:http://www.hengtianyun.com/download-show-id-101.htmlhtml

块存储,简单来讲就是提供了块设备存储的接口。用户须要把块存储卷附加到虚拟机(或者裸机)上后才能够与其交互。这些卷都是持久的,它们能够被从运行实例上解除或者从新附加而数据保持完整不变。OpenStack 中的实例是不能持久化的,须要挂载 volume,在 volume 中实现持久化。Cinder 就是提供对 volume 实际须要的存储块单元的实现管理功能。后端

1.单机块存储

1.1 LVM

LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelsha- gen在Linux 2.4内核上实现。LVM将一个或多个硬盘的分区在逻辑上集合,至关于一个大硬盘来使用,当硬盘的空间不够使用的时候,能够继续将其它的硬盘的分区加入其中,这样能够实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。安全

与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员能够更方便的为应用与用户分配存储空间。在LVM管理下的存储卷能够按须要随时改变大小与移除(可能需对文件系统工具进行升级)。LVM也容许按用户组对存储卷进行管理,容许管理员用更直观的名称(如“sales”、 “development”)代替物理磁盘名(如“sda”、“sdb”)来标识存储卷。服务器

 

Device-mapper是一种支持逻辑卷管理的通用设备映射机制,为存储资源管理的块设备驱动提供了一个高度模块化的内核架构。LVM是基于Device-mapper的用户程序实现。网络

Device-mapper在内核中它经过一个模块化的Target Driver插件实现对IO请求的过滤或者重定向工做,当前已经实现的Target Driver插件包括软Raid、软加密、逻辑卷条带、多路径、镜像、快照等。整个 device mapper 机制由两部分组成–内核空间的 device mapper 驱动、用户空间的device mapper 库以及它提供的 dmsetup 工具。内核中主要提供完成这些策略所须要的机制。Device-mapper 用户空间相关部分主要负责配置具体的策略和控制逻辑,好比逻辑设备和哪些物理设备创建映射,怎么创建这些映射关系等等,而具体过滤和重定向 IO 请求的工做由内核中相关代码完成。架构

LVM使得文件系统能够跨多个磁盘,所以大小不会受物理磁盘的限制。能够在系统运行状态下动态地扩展文件系统大小。能够增长新磁盘到 LVM 的存储池中。能够镜像的方式冗余重要数据到多个物理磁盘上。还能很方便地导出整个卷组,并导入到另一台机器上。app

然而LVM缺点也是明显的,当卷组中的一个磁盘损坏时,整个卷组都会受影响。仅支持有限个文件系统类型的减少操做(ext3不支持减小文件系统大小的操做)。由于加入了额外的操做,存储性能会受影响。框架

1.2 SAN

存储区域网络(SAN)是一种高速网络或子网络,提供在计算机与存储系统之间的数据传输。存储设备是指一张或多张用以存储计算机数据的磁盘设备。一个 SAN 网络由负责网络链接的通讯结构、负责组织链接的管理层、存储部件以及计算机系统构成,从而保证数据传输的安全性和力度。分布式

大部分SAN使用SCSI协议在服务器和存储设备之间传输和沟通,经过在SCSI之上创建不一样镜像层,能够实现存储网络的链接。常见的有iSCSI,FCP,Fibre Channel over Ethernet等。ide

SAN一般须要在专用存储设备中创建,而iSCSI是基于TCP/IP的SCSI映射,经过iSCSI协议和Linux iSCSI项目咱们能够在常见的PC机上创建SAN存储。

SAN有两个较大的缺陷:成本和复杂性,特别是在光纤信道中这些缺陷尤为明显。使用光纤信道的状况下,合理的成本大约是1千兆或者两千兆大概须要五万到六万美金。从另外一个角度来看,虽然新推出的基于iSCSI的SAN解决方案大约只须要两万到三万美金,可是其性能却没法和光纤信道相比较。在价格上的差异主要是因为iSCSI技术使用的是如今已经大量生产的吉比特以太网硬件,而光纤通道技术要求特定的价格昂贵的设备。

2. 分布式块存储

在面对极具弹性的存储需求和性能要求下,单机或者独立的SAN愈来愈不能知足企业的须要。分布式块存储能够为任何物理机或者虚拟机提供持久化的块存储设备,管理块设备的建立、删除和attach/deattach。支持强大的快照功能,快照能够用来恢复或者建立新的块设备。分布式存储系统可以提供不一样IO性能要求的块设备。可以知足动态扩展的要求。

目前,开源的分布式块存储有Ceph,GlusterFS,Sheepdog等。与Ceph相比,最大优点就是代码短小好维护和hack的成本很小。Sheepdog也有不少Ceph不支持的特性,好比说Multi-Disk, Cluster-wide Snapshot等。

在文中,日本NTT的研究人员对比了sheepdog,glusterfs以及ceph在各类状况下的读写性能,这份测试在今年的5月份的日本openstack大会上公布。在大部分状况下,sheepdog的读写速度都比glusterfs以及ceph表现的出色。

3. openstack块存储

3.1 存储架构

3.2 Cinder简介

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

相关文章
相关标签/搜索