您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 何雨:Openstack统一存储(对象存储、文件存储、块存储)Ceph-设计方案
PoweredbyJCloudTMJOSMOBILEAPPOPENEBS设计方案京东云计算中心云计算部2013.4京东虚拟化总监何雨产业发展部目录EBS在IaaS架构中的位置EBS设计需求OpenStackCinder对EBS的支持EBS开源解决方案的选择Ceph的统一存储EBS开发人员需求产业发展部EBS在IaaS架构中的位置2020/6/19第3页DNSELBZone1Zone2EBSS3AutoScallingGroup:WebTierWebServerWebServerSLBAutoScallingGroup:AppTierAppServerAppServerDBSlaveDBMasterAutoScallingGroup:WebTierWebServerWebServerSLBAutoScallingGroup:AppTierAppServerAppServerSnapshotRDSDALDBSlaveDBMasterRDSDAL产业发展部什么是EBSEBS的概念来源于Amazon,EBS全称是ElasticBlockStore(弹性块存储)你可以在虚拟机实例上通过EBS分配一个虚拟硬盘空间给MySQL用,将信息持久到EBS上2020/6/19第4页产业发展部EBS的设计需求2020/6/19第5页EBS要给虚拟机实例提供高可用、高可靠的块级volumeEBS应适合于一些需要访问块设备的应用,比如数据库、文件系统等EBSvolume像裸块设备一样,有块设备接口,可以在volume上创建文件系统每个volume要有冗余机制,保证当单个硬件失效时,数据不会丢失EBS可以创建当前时间点的快照,这些快照可用于创建新的volume产业发展部EBS的架构2020/6/19第6页InstanceInstanceInstanceHighBandwidthNetworkEBSnodeData1Data3EBSnodeData1Data2EBSnodeData2Data3EBSClusterAvailabilityzoneacontrolplaneservicesReplicationNetworkInstanceInstanceInstanceHighBandwidthNetworkEBSnodeData1Data3EBSnodeData1Data2EBSnodeData2Data3EBSClusterAvailabilityzonebReplicationNetwork产业发展部给虚拟机实例提供块级volume在EBS中创建多个逻辑卷(LV1、LV2……)在VMMS(虚拟机管理系统)上启动多个VMinstance(虚拟机实例)每个逻辑卷分别Attachment到相应的虚拟机实例上,作为该虚拟机的存储设备,就好像是虚拟机的本地硬盘一样2020/6/19第7页VMMSLV1LV2VM1VM2EBSAttachmentAttachment…产业发展部以快照为基础进行Volume创建逻辑卷可以以某个时间点的快照为基础进行创建,这样可以很容易的创建多个相同的逻辑卷,使得多个虚拟机实例可以执行相同的计算任务2020/6/19第8页VMMSLV1LV2VM1VM2EBSAttachmentAttachmentSnapshpts/lost+found/etc/var……产业发展部Volume的冗余机制Volume切分成多个objects,分散存储在多个节点上,每个objects都有相应的副本2020/6/19第9页GuestOSVolume012301230123DivideavolumeIntofixed-sizeobjects产业发展部EBS的开源现状目前开源里,就Ceph和sheepdog能实现EBS的功能。目前sheepdog,只能支持kvm。Ceph同时支持文件存储、对象存储及块存储。Dreamhost一直都在测试Ceph,推出了基于ceph的对象存储服务近日,Inktank和SUSE公司宣布战略合作,联合为作为SUSECloud一部分的CephDistributedStorageSystem提供企业级支持ceph的RBD已经可以作为OpenStack的后端存储目前的OpenStackCinder的核心成员里有Ceph的开发者参与。2020/6/19第10页产业发展部OpenStackCinder对EBS的支持cinder是一个资源管理系统、负责存储资源的分配cinder把不同的后端存储进行封装,向外提供统一的APIopenstack没有开发块设备存储系统,cindre只是结合不同后端存储的driver提供块设备存储服务2020/6/19第11页产业发展部Cinder架构目前cinder的架构和nova的一样,非常方便扩展•Api组件负责向外提供REST接口•schedule组件负责分配存储资源•volume组件负责封装driver,不同的driver负责控制不同的后端存储。组件之间的RPC靠消息队列实现。cinder的开发工作主要集中在schedule和driver,以便提供更多的功能,支持更多的后端存储。2020/6/19第12页C-apiC-scheduleC-volumeC-volumeC-volumeDatabaseQueueiSCSIStorageNFSceph……产业发展部Cinder后端EBS存储的选择如何选择后端存储,可以从性能、可靠性、价格三方面考虑假如本来就有IP-SAN或NAS,而且cinder也支持,则就可以直接用,SAN和NAS的缺点(价格高、数据与计算分离、扩展性差、带宽有限制)GlusterFS作为块设备存储的缺点(不在kernel、使用fuse,速度慢)对成本敏感的也可以选择iSCSI+LVM+RAID的方案要综合解决虚拟机存储的安全,成本,性能的问题,也可以用ceph和sheepdog目前sheepdog,只能支持kvmceph的优点(在主线kernel中、client运行在内核态、支持普通硬件、线性扩展)块设备存储解决方案必备条件(线性扩展、自动化)2020/6/19第13页iSCSI•IET+LVM/TGT+LVM•Solaris•HPLefthand•IBMXIV/StorwizeSVC•Nexenta•DellEqualLogic•SolidFire•NetAppNFS(NAS)•NetApp•Glusterfs其他•Ceph•Sheepdog产业发展部Ceph的统一存储Cephuniquelydeliversobject,block,andfilestorageinoneunifiedsystem2020/6/19第14页产业发展部Ceph架构2020/6/19第15页bashlsVFSclientlibfusefuseceph…clientLinuxkernelClientsMetadataClusterObjectStorageClusterMetadataOperationsFileI/OMetadataStorage产业发展部CephClientCephClient对用户是透明的,为用户提供访问接口早期版本的Ceph利用FUSE,在用户空间实现访问接口,很大程度上简化其开发今天,Ceph已经被集成到主线内核,使其访问更加快速2020/6/19第16页VFScephLinuxkernelPOSIXApplications/usersUserSpaceCmds(cephmetadatadaemon)DRAMcacheCmon(cephmonitor)diskdiskdiskdiskCosd(cephobjectstoragedaemon)BTRFS/EBOFS/……fuse产业发展部CephMetadataservers元数据服务器管理文件系统的名称空间。元数据和数据两者都存储在对象存储集群,但两者分别管理,支持可扩展性每个元数据服务器的主要应用就是一个智能元数据缓存(因为实际的元数据最终存储在对象存储集群中)进行写操作的元数据被缓存在一个短期的日志中,它最终还是被推入物理存储器中。这个日志对故障恢复也很有用:如果元数据服务器发生故障,它的日志就会被重放,保证元数据安全存储在磁盘上元数据服务器将文件名转变为索引节点,文件大小,以及Ceph客户端用于文件I/O的分块数据2020/6/19第17页MetadataClusterObjectStorageClusterMetadataOperationsFileI/OMetadataStorage产业发展部CephMetadataPartitionScalability•ArbitrarilypartitionedmetadataAdaptability•Copewithworkloadchangesovertime,andhotspots2020/6/19第18页MDS能够自适应地复制和分配名称空间,避免出现热点。MDS管理的名称空间可以(为冗余和性能)进行重叠。MDS到名称空间的映射使用动态子树逻辑分区执行,它允许Ceph对变化的工作负载进行调整(在元数据服务器之间迁移名称空间)。产业发展部Ceph文件映射CRUSHCeph消除了文件的数据块映射表,通过计算获取块的存储位置,而不是查表•一个文件被分配到一个来自MDS的inodenumber(INO)的唯一的标识符,然后文件被分割成一些对象。•使用INO和objectnumber(ONO),每个对象都分配到一个对象ID(OID)。在OID上使用一个简单的哈希,每个对象都被分配到一个放置组(PGID),它是一个对象的概念容器。•最后,放置组到对象存储设备的映射是一个伪随机映射,使用一个叫做ControlledReplicationUnderScalableHashing(CRUSH)的算法。这样一来,放置组(以及副本)到存储设备的映射就不用依赖任何元数据,而是依赖一个伪随机的映射函数。这种操作是理想的,因为它把存储的开销最小化,简化了分配和数据查询。2020/6/19第19页产业发展部Ceph存储服务器集群Ceph对象存储设备执行从对象到块的映射。这个动作允许本地实体以最佳方式决定怎样存储一个对象Ceph的早期版本在本地存储器上实现一个自定义低级文件系统名为EBOFS,EBOFS实现一个底层存储的非标准接口。今天,B-tree文件系统(BTRFS)可以被用于存储节点因为Ceph客户端实现CRUSH,而且对磁盘上的文件映射块一无所知,存储设备就能安全地管理对象到块的映射,允许存储节点复制数据(当发现一个设备出现故障时)分布的故障恢复也允许存储系统扩展,因为故障检测和恢复可以跨域整个系统,Ceph称其为RADOS(Reliable,AutonomicDistributedObjectStore)2020/6/19第20页diskdiskdiskdiskCosd(cephobjectstoragedaemon)BTRFS/EBOFS/……ObjectStorageCluster产业发展部Ceph监视器Ceph包含实施集群映射管理的监视器当对象存储设备发生故障或者新设备添加时,监视器就检测和维护一个有效的集群映射Ceph使用Paxos,它是一种解决分布式一致性问题的算法2020/6/19第21页MonitorCluster产业发展部Ceph同时支持文件存储、对象存储及块存储BlockDevices•TheRADOSBlockDevice(RBD)serviceprovidesresizable,thin-provisionedblockdeviceswithsnapshottingandcloning.Cephstripesablockdeviceacrosstheclusterforhighperformance.Cephsupportsbothkernelobjects(KO)andaQEMUhypervisorthatuseslibrbddirectly–avoidingthek
本文标题:何雨:Openstack统一存储(对象存储、文件存储、块存储)Ceph-设计方案
链接地址:https://www.777doc.com/doc-6037461 .html