分布式存储基础Cephcinder及华为软件定义的存储方案讲义_第1页
分布式存储基础Cephcinder及华为软件定义的存储方案讲义_第2页
分布式存储基础Cephcinder及华为软件定义的存储方案讲义_第3页
分布式存储基础Cephcinder及华为软件定义的存储方案讲义_第4页
分布式存储基础Cephcinder及华为软件定义的存储方案讲义_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、块存储与分布式存储块存储,简单来说就是提供了块设备存储的接口。 中通过Isblk可以得到当前主机上块设备信息列表。本文包括了单机块存储介绍、分布式存储技术 华为软件定义的存储解决方案。单机块存储一个硬盘是一个块设备,内核检测到硬盘然后在 用一个硬盘来得到不同的分区来做不同的事,通过 这种方式通过直接写入分区表来规定和切分硬盘通过向内核注册块设备信息,在LinuxCeph介绍,云中的块存储Cinder,以及/dev/下会看到/dev/sda/。因为需要利fdisk 工具得到u /dev/sda1, /dev/sda2 等,,是最死板的分区方式。分布式块存储在面对极具弹性的存储需求和性能要求下,单

2、机或者独立的SAN越来越不能满足企业的需要。如同数据库系统一样,块存储在scale uP的瓶颈下也面临着scale out的需要。分布式块存储系统具有以下特性:分布式块存储可以为任何物理机或者虚拟机提供持久化的块存储设备分布式块存储系统管理块设备的创建、删除和attach/detach;分布式块存储支持强大的快照功能,快照可以用来恢复或者创建新的块设备分布式存储系统能够提供不同10性能要求的块设备。现下主流的分布式块存储有Ceph、AMS ESB阿里云磁盘与sheepdog等。Ceph1. 1 Ceph概述Ceph目前是OpenStack支持的开源块存储实现系统(即Cinder项目backen

3、d driver之)。Ceph是一种统一的、分布式的存储系统。“统一的”意味着Ceph可以一套存储系统同时提供对象存储、块存储和文件系统存储三种功能,以便在满足不同应用需求的前提下简化部署和运维。“分布式”在Ceph系统中则意味着真正的无中心结构和没有理论上限的系统 规模可扩展性。Ceph具有很好的性能、可靠性和可扩展性。其核心设计思想,概括为八个字一“无需 查表,算算就好”。1.2 Ceph系统的层次结构自下向上,可以将Ceph系统分为四个层次:基础存储系统 RADOS( Reliable, Autonomic. Distributed Object Store,即可靠的、自动化的、分布式的

4、对象存储)基础库LIBRADOS高层应用接口 :包括了三个部分:RADOS GW( RADOS Gateway、RBD (Reliable BlockDevice)和 Ceph FS (Ceph File System) oAFTAPPHQSTM I匚 LIENITRADOSGW1REST 中 ilM.L ump&if* Ml 翻耳nnH*百1inf fl owtiySfe RAD iti ufiiionta +b Jau yilwA诚骼 WtdPMPRBDCEPH FSA reiiahk: and ijJy- chtribuLnd buxk gvK;薛 WEh I HXiiji kpmpi

5、fliml iwliH QEMLWWW rtFgA POGIX-cum 陶 r* Mt!sysiwfoi, Miirii a inu pTri 神 ci 护 nl rt Nippon tfw FUSERADOS由两个组件组成:一种是数量很多、负责完成数据存储和维护功能的OSEx ObjectStorage Device)。另一种则是若干个负责完成系统状态检测和维护的Monitor oOSD和monitor之间相互传输节点状态信息,共同得出系统的总体工作状态,并形成一个全局系统状态记录数据结构,即所谓的cluster map。这个数据结构与RADOS提供的特定算法相配合,便实现Ceph “无需查

6、表,算算就好”的核心机制以及若干优秀特性。OSD可以被抽象为两个组成部分,即系统部分和守护进程(OSD deamon)部分。OSD的系统部分本质上就是一台安装了操作系统和文件系统的计算机,其硬件部分至少包括一个单核的处理器、一定数量的内存、一块硬盘以及一张网卡。在上述系统平台上,每个OSD拥有一个自己的OSD deamon。这个deamon负责完成OSD的所有逻辑功能,包括与monitor与其他OSD共同完和其他OSD (事实上是其他OSD的deamon)通信以维护更新系统状态,成数据的存储和维护,与c】ient通信完成各种数据对象操作等等。1.3 Ceph中的数据寻址用户存储数据时的数据路由

7、过程如下图所示:FileObjects111 EZI匚、.“、才A(ino.ono) *oidPGsOSDs (grouped failure domain)CRUSHfpgSd) osdi. osd2)hashoid) & maskpgid首先明确几个概念:File 用户需要存储或者访问的文件。对于一个基于Ceph开发的对象存储应用而言,这个file也就对应于应用中的“对象”,也就是用户直接操作的“对象”。OjbectRADOS所看到的“对象”。Object与上面提到的file的区别是,object的最大size由RADOS限定(通常为2MB或4MB),以便实现底层存储的组织管理。因此,当上

8、层应用向RADOS存入size很大的file时,需要将file切分成统一大小的一系列object (最后个的大小可以不同)进行存储。PG( Placement Group)-顾名思义,PG的用途是对。bject的存储进行组织和位置映 射。具体而言,一个PG负责组织若干个object (可以为数千个甚至更多),但一个。bject只能被映射到一个PG中,即,PG和object之间是“一对多”映射关系。同时,一个PG会被映射到n个OSD上,而每个OSD上都会承载大量的PG,即,PG和OSD之间是“多对多” 映射关系。在实践当中,n至少为2,如果用于生产环境,则至少为3。一个OSD上的PG则 可达到数

9、百个。事实上,PG数量的设置牵扯到数据分布的均匀性问题。OSD即 object storagedevice。程需要映射儿这次映射的目的是,将用户要操作的file,映射为RADOS能够处理的。bject。其映射十分简单,本质上就是按照object的最大size对file进行切分。这种切分的好处有二:一是让大小不限的file变成最大size 一致、可以被RADOS高效管理的object ;二是让对单一 file实施的串行处理变为对多个object实施的并行化处理。Object - PG映射。在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。计算公式:h

10、ash(oid) & mask - pgid。根据RADOS的设计,给定PG的总数为m (m应该为2的整数幕),则mask的值为m-1。因此,哈希值计算和按位与操作 的整体结果事实上是从 所有m个PG中近似均匀地随机选择一个。基于这一机制,当有大量object和大量PG时,RADOS能够保证 object和PG之间的近似均匀映射。PG - OSD映射。第三次映射就是将作为object的逻辑组织单元的PG映射到数据的实际存储单元OSD。如图所示,RADOS采用一个名为CRUSH的算法,将pgid代入其中,然后得到一组共n个OSD。这n个OSD即共同负责存储和维护一个PG中的所有object。前已

11、述及,n的数值可以根据实际应用中对于可靠性的需求而配置,在生产环境下通常为到每个0SD,则由其3。具体 上运行的OSD deamon负责执行映射到本地的object在本地文件系统中的存储、访问、元数据维护等操作。和“ object-OSD映射中采用的哈希算法不同,CRUSH算法的结果不是绝对不变的,而是受到当前系统的状态(cluster maP)和存储配置策略的影响。故而当系统中的OSD状态、数量发生变化时,Cluster map发生变化,映射的结果也就发生了变化。1.4 写数据的流程当某个client需要向Ceph集群写入一个file时,首先需要在本地完成寻址流程,将file变为一个obje

12、ct,然后找出存储该object的一组三个OSB找出三个0SD后,client将直接和Primary OSD通信,发起写入操作。Primary OSD收到请求后,分别向Secondary OSD和Tertiary OSD发起写入操作。当Secondary OSD和Tertiary OSD各自完成写入操作后,将分别向Primary OSD发送确认信息;当Primary OSD确信其他两个OSD的写入完成后,则自己。也完成数据写入,并向client确认object写入操作完成。ClientWrite (1)t Atk (6)Primary OSDWrite (2) Writef3)I Ack 14

13、Ack I VSecondary OSDTertiary OSD1.5集群维护由若干个monitor共同负责整个Ceph集群中所有SD状态的发现与记录,并且共同形成cluster map的master 版本,然后扩散至全体OSD以及clie nt。OSD使用cluster map进行数据的维护,而client使用duster map进行数据的寻址。monitor并不主动轮询各个OSD的当前状态。正相反,OSD需要向monitor上报状态信息。常见的上报有两种情况:一是新的OSD被加入集群,二是某个OSD发现自身或者其他OSD发生异常。在收到这些上报信息后,monitor将更新cluster m

14、ap信息并加以扩散。新增一个OSD时首先根据配置信息与monitor通信,monitor将其加入cluster map,并设置为up且out状态,再将最新版本的cluster map发给这个新OSB收到monitor发过来的cluster map之后,这个新0SD计算出自己所承载的PG以及和自己承载同一个PG的其他OSB然后与这些0SD取得联系。如果这个PG目前处于降级状态(即承载该PG的。个数少于正常值),则其他OSD将把这个PG内的所有对象和元数据赋值给新OSB数据复制完成后,新OSD被置为up且in状态,cluster map也更新。自动化故障恢复当其中一个OSD发生故障时,如果其PG目

15、前一切正常,则这个新OSD将替换掉故障OSD( PG内将重新选出Primary OSD),并承担其数据。在数据复制完成后,新OSD被置为up且in状态,而被替换的OSD将推出该PG而cluster map内容也将据此更新。自动化的故障探测过程如果一个OSD发现和自己共同承担一个PG的另一个OSD无法联通,则会将这一情况上报monitor。此外,如果一个OSD deamon发现自身工作状态异常,也将把异常情况主动 上报给monitor。此时,monitor将把出现问题的OSD的状态设置为down且in。如果超过down且out。如果该某一预定时间期限该SD仍然无法恢复正常,则其状态将被设置为OS

16、D能够恢复正常,则其状态会恢复成uP且in。1.6 在 OpenStack 中使用 cephCeph底层是存储集群RADOS然后是LIBRADOS这是一个可以访问RADOS的库。用户利用这个库开发自己的客户端应用。Ceph提供对象存储(RADOSGW)、块存储(RBD)、文件系统(CEPHFS也就是基于这个库完成的。在Open Stack中使用Ce ph块设备,必须首先安装QEMU,libvirt和Open Stack。下图描述了 Open Stack和Ce ph技术层次。libvirt配置了 librbd的QEMU接口,通过它可 以在Open Stack中使用Ce ph块设备。可以看出Ope

17、n Stack通过libvirt中的接口调用QEMU, QEMU去调用Ce ph的块存储库libRBD,从而完成在Open Stack中的Ceph使用。OpenStacklibvirt T ,conligui esQEMU librbd libr adosOSDsIMonitorsOpen Stack与Ceph有三个结合点:镜像:Open Stack Gla nee管理虚拟机镜像。镜像是不变的。Open Stack把镜像当作二进制对象并以此格式下载。卷:卷是块设备。Open Stack使用卷来启动虚拟机,或者绑定卷到运行中的虚拟机。Open Stack使用Ci nder服务管理卷。客户磁盘:客

18、户磁盘是客户操作系统磁盘。默认情况下,当启动一台虚拟机时,它的系统盘以文件的形式出现在 hypervisor系统上(通常在/var/lib/nova/instances/)。在Open Stack Hava na以前的版本,在Ce ph中启动虚拟机的唯一方式是使用Cin der的boot-from-volume功能,现在能够在Ceph中直接启动虚拟机而不用依赖于Cinder,hypervisor 挂这是非常有利的,能够很容易的进行虚拟机的热迁移。除此之外,如果1.7 Ceph的一些问题关于Ceph作为块存储项目的几个问题需要考虑Ceph在读写上不太稳定(有btrfs的原因),目前Ceph官方推

19、荐XFS作为底层文件系统CePh的扩展性较难,如果需要介入Ceph,需要较长时间Ceph的部署和集群不够稳定AMS EBSEBS是Amazon提供的块存储服务,通过EBS用户可以随时增删迁移volume和快照操作。Amazon EBS是目前IAAS服务商最引入注目的服务之一,目前的OpenStack、CloudStack等等其他开源框架都无法提供Amaz on EBS对于的如此弹性和强大的服务。Sheep dogSheepdog是另一个分布式块存储系统,它与Ceph相比,最大优势就是代码短小好维护和hack的成本很小。Sheepdog也有很多Ceph不支持的特性,比如说Multi-Disk,

20、cluster-wide snapshot 等。Sheepdog主要有两部分,一个是集群管理,另一个是存储服务。集群管理目前使用Corosy nc或者Zook per来完成,存储服务的特点是在clie nt和存储host有Cache的实现可以大大减小数据流量。目前Sheepdog只在QEMU端提供Drive,而缺少library支持,这是Sheepdog目前最主要的问题。云计算中的块存储OpenStack CinderNova利用主机的本地存储为虚拟机提供“临时存储”,如果虚拟机被删除了,挂在这个虚拟机上的任何临时存储都将自动释放。基于SAN、NAS等不同类型的存储设备,Open StackC

21、inder, Swift引入了永久存储,负责为每个虚拟机本身的镜像以及它所产生的数据提供一个存储场地。Cin der是Open Stack中提供类似于EBS块存储服务的API框架,为虚拟机提供持久化的块存储能力,实现虚拟机存储卷的创建、挂载卸载、快照等生命周期管理。Cinder提供的RESTful AP针对逻辑存储卷进行管理。其架构如下:EQLCecinder-schedulercinder-valumecinder-backup用户通过cinder client发送Restful请求,cinder-api是进入cinder的HTTP结构。Cinder- VOlume运行在存储节点上管理具体存

22、储设备的存储空间,每个存储节点上都会运行一个cinder- volume服务,多个节点一起构成了一个存储资源池。Cinder-Scheduler根据预定的策略选择合适的cinder-volume节点来处理客户请求。Cinder-backup提供存储卷备份功能。Cinder并没有实现对块设备的管理和实际服务,而是为后端不同的存储结构提供了统一的接口,不同的块设备服务厂商在Cin der中实现其驱动支持以与Open Stack进行整合。后端的存储可以是DAS, NAS, SAN,对象存储或者分布式文件系统如ceph。也就是说,Cinder的块存储数据完整性、可用性保障是由后端存储提供的。Cinde

23、r只是提供了一层抽象,然后通过其后段支持的driver实现来发出命令来得到回应。关于块存储的分配信息以及选项配置等 会被保存到Open Stack统一的DB中。Cin der默认使用lVM作为后端存储。LVM将众多不同的物理存储器资源组成卷组,从卷组上创建逻辑卷,然后将文件系统安装在逻辑卷上。其更为细化的架构如下图所示:physiraiwnJirreF li5U?rTiPiirt 伽mepli 曲(ionVcri jriB Ma-Tijyr- uniCindfrf: incAr-sceculefAMQT5华为软件定义的存储方案5.1软件定义的存储传统的存储当中,存储不感知VM,存储扩展困难,L

24、UN配置复杂,修改配置困难;VM运行同一个LUN时,存在10 blending的问题。为解决传统存储的问题,可得到软件定义的存储具有以下几个特征:自助式的用户接口策略驱动的存储,提供SLA保障各种存储资源统一池化,自动化管理兼容任意硬件,包括通用硬件和专用存储硬件。5.2华为软件定义的存储相关技术521.基于Cinder的华为块存储为解决传统存储中配置困难、兼容性不好等问题,华为采用了统一的、策略驱动的存储控制平面 Open Stack Cin derHujweiI HuaweiHuaweiCinder :华为 SDS controllerUreanstor driver I usionsto

25、rafje driver Storhyper driver其中Cinder API是统一的卷管理接口;Cinder Schuduler是基于策略的存储资源调度;Cinder Volume可以介入不同存储厂商的driver,如下图所示:Cin der-vol jmeCinder-vdlumeCinder-vol J meEMC driverCeph driverHuaweistorhyperdnver在当前架构下,管理面上通过Cinder提供统一接口 ; 但各driver之间不能互通,数据面的能力依然参差不齐;各产品之间特性会重叠;整个数据面还不够开放。5.2.2.华为SDS目标架构!l&4anrdnH,化 TiQt 口 inTjr屠寻-dirA 冒 EnglAPXtfiMeSusg fw,m Ifta igr。去叫 sjq 曲班圈*护1畤3壬4玄用I;一立皿白 uiciAir* 二电Hi-luAwb OcdWtar兀

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论