好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

ONEStor分布式存储系统介绍.docx

16页
  • 卖家[上传人]:ni****g
  • 文档编号:549448703
  • 上传时间:2022-10-11
  • 文档格式:DOCX
  • 文档大小:354.20KB
  • / 16 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • ONEStor 分布式存储系统介绍关于ONEStor分布式存储系统介绍,小编已在金信润天Get到了部分资料,整理出以下内容:技术特点H3C ONEStor存储系统采用分布式设计可以运行在通用x86服务器上在部署该软件时, 会把所有服务器的本地硬盘组织成一个虚拟存储资源池,对上层应用提供块存储功能H3C ONEStor分布式存储软件系统具有如下特点:领先的分布式架构H3C ONEStor存储软件的采用全分布式的架构:分布式管理集群,分布式哈希数据分布算 法,分布式无状态客户端、分布式Cache等,这种架构为存储系统的可靠性、可用性、自 动运维、高性能等方面提供了有力保证其系统架构组成如下图所示:IVIcj 门 iturs9□Clients■Object I/O*o u □Failure reportingr 千宀严map distribution M |上图中,ONEStor逻辑上可分为三部分:OSD、Monitor、Client在实际部署中,这些 逻辑组件可灵活部署,也就是说既可以部署在相同的物理服务器上,也可以根据性能和可靠 性等方面的考虑,部署在不同的硬件设备上下面对每一部分作一简要说明。

      OSD:Object-based Storage DeviceOSD由系统部分和守护进程(OSD deam on)两部分组成OSD系统部分可看作安装了 操作系统和文件系统的计算机,其硬件部分包括处理器、内存、硬盘以及网卡等守护进程 即运行在内存中的程序在实际应用中,通常将每块硬盘(SSD或HDD)对应一个OSD, 并将其视为 OSD 的硬盘部分,其余处理器、内存、网卡等在多个 OSD 之间进行复用ONEStor存储集群中的用户都保存在这些OSD中OSD deamon负责完成OSD的所有 逻辑功能,包括与monitor和其他OSD (事实上是其他OSD的deamon )通信以维护更 新系统状态,与其他OSD共同完成数据的存储和维护,与clie nt通信完成各种数据对象操Monitor:Monitor是集群监控节点Monitor持有cluster map信息所谓Cluster Map,粗略的 说就是关于集群本身的逻辑状态和存储策略的数据表示 ONEStor Cluster Map 包括 Monitor map、osd map、pg map、crush map等,这些 map 构成了集群的元数据。

      总 之,可以认为Monitor持有存储集群的一些控制信息,并且这些map信息是轻量级的,只 有在集群的物理设备(如主机、硬盘)和存储策略发生变化时map信息才发生改变 Client:这里的 Client 可以看出外部系统获取存储服务的网关设备 client 通过与 OSD 或者 Monitor的交互获取cluster map,然后直接在本地进行计算,得出数据的存储位置后,便 直接与对应的OSD通信,完成数据的各种操作在此过程中,客户端可以不依赖于任何元数据服务器,不进行任何查表操作,便完成数据访问流程这一点正是O NEStor分布式存储系统可以实现扩展性的重要保证客户的数据到达Client后,如何存储到OSD上,其过程大致如下图所示:FilePGsCRUSH(pgid)-^(osd1,osd2)Objects(ino,ono)—^oidhash(oid) &mask—►pgidOSDs(grouped bfO failure domain)'—首先对上图中的一些名词进行简要描述:File :此处的file是对用户或者应用而言的,指用户或者应用需要存储或者访问的文件如 果将O NEStor作为对象存储的后端,这个file也就对应于应用中的"对象”,也就是用户 直接操作的“对象”。

      Object:此处的object是ONEStor内部定义的"对象”object的大小用户可以自行配 置(在配置文件中设置,通常为2MB或4MB )当上层应用向ONEStor集群存入size 较大的file时,需要将file切分成统一大小的一系列object (最后一个的大小可以不同) 进行存储为避免混淆,在本文中将尽量避免使用中文的“对象”这一名词,而直接使用 file或object进行说明PG :( Placement Group)PG是一个逻辑概念,其作用是对object的存储进行组织和位 置映射这样便在object和osd之间提供一个中间映射层,即object->pg->osd某个 object通过算法映射到某个确定的pg这个pg再通过某种算法映射到一组确定的os(其 个数和副本或纠删码配置有关,具体见后面章节描述)从数量上看,一般o bject数量远 大与pg数量,pg数量(一般比osd大两个数量级)远大于osd数量PG的概念类似于 一致性哈希算法中的虚拟节点,引入PG后,可以在总体上大大减少每个osd相关的元数 据的数量下面对上图中的寻址流程进行简要说明1, File->Object 映射:(ino,ono )->oid这个映射比较简单,就是将用户要操作的file,映射为ONEStor能够处理的object。

      其本 质就是按照配置文件定义的object大小对file进行切分,相当于RAID中的条带化过程这种切分的好处有二:一是让大小不限的file变成size 一致、可以被存储集群高效管理的 object;二是让对单一 file实施的串行处理变为对多个object实施的并行化处理,以提高 读写性能对于要操作的File,Clie nt将会从Moni tor获得全局唯一的in ode number,即inoFile 切分后产生的object将获得唯一(在File的范围内)的object number,即onoOno 的编号从0开始,依次累加oid就是将ono连缀在ino之后得到的容易看出,由于ino 的全局唯一性(通过Monitor获得),oid同样具备全局唯一性2, Object -> PG 映射在file被映射为一个或多个o bject之后就需要将每个o bject独立地映射到一个PG中去 这个映射过程也很简单,其计算公式是:hash(oid) & mask -> pgid或者更加明显的表示成:hash(oid) mod (pgno) -> pgid上式中,pgno表示配置的pg数量,一般为2的整数次幕。

      整个计算由两步组成首先 是使用ONEStor系统指定的一个特定的哈希函数计算oid的哈希值(这个值将具备近似均 匀分布的特性)然后,将这个伪随机值对pgno取模,就得到了 pgid这样,pgid的取 值范围是从0到pgno-1由哈希函数的伪随机特性,容易想见,大量的oid将近似均匀地 映射到不同的pgid上3,PG -> OSD 映射第三次映射就是将作为object的逻辑组织单元的PG通过CRUSH算法映射到一组OSD集 合集合中具体的OSD个数一般为数据副本的个数比如,用户配置了3副本,那么每个 pg将映射到3个osd多副本可以大大提高数据的可靠性:具体可见后面相关章节的说明) 相比于“object -> PG”映射过程,CRUSH算法要复杂的多通常情况下,一个好的分布式算法至少满足如下的要求:1, 数据的放置位置是Clie nt计算出来的,而不是向Server查出来的 2,数据在存储体上满足概率均匀分布3,存储体动态变化时数据重分布时引入的数据迁移量达到最优或者次优 除了这3点基本要求外,一个好的算法还应该满足:4,可以基于指定的策略放置副本: 用于故障域隔离或其它要求5,在存储体引入权“weight"的概念,以便对磁盘容量/速度等进行区分CRUSH算法是ONEStor的核心算法,完全满足上面提到的5点要求,限于篇幅,此处不 对算法本身进行描述。

      当系统中的OSD状态、数量发生变化时,cluster map亦随之变化, 而这种变化将会影响到PG与OSD之间的映射,从而使数据重新再OSD之间分布由此可见,任何组件,只要拥有cluster map,都可以独立计算出每个object所在的位置(去 中心化)而对于cluster map,只有当删除添加设备或设备故障时,这些元数据才需要更 新,更新的cluster map会及时更新给client和OSD,以便client和OSD重新计算数据 的存储位置1. 自动化运维自动化运维主要体现在如下几个方面:(1)存储集群快速部署,包括批量部署、单节点增减、单磁盘增减等2) 设置监控报警系统,发生故障时能快速界定问题、排查故障3) 根据硬件能力,灵活地对集群中的节点进行灵活配置4) 允许用户定制数据分布策略,方便地进行故障域隔离,以及对数据存储位置进行灵活 选择5) 在增删存储介质,或存储介质发生故障时,自动进行数据均衡保证集群数据的高可 用性6)在系统平衡数据(例如系统扩容或者存储节点、磁盘发生故障)的过程中,为保证用户IO, ONEStor存储系统支持IO优先级控制和Qos保证能力对于(1 )(2 )两点,详见“ONEStor管理系统”章节,在此不再赘述。

      对于(3),ONEStor系统可以根据用户需求灵活地部署Monitor节点和Client节点一 方面,这些节点既可以部署在单独的物理服务器上,也可以部署在和OSD相同的物理节点 上另一方面,Monitor和Client的节点可以根据用户的需求灵活地调整比如为了可靠 性保证,至少需要部署3个Monitor节点;为了保证对象存储网关的性能,需要部署过个 RGW( Client)节点对于(4),用户的需求主要体现在存储策略上,比如在选用副本策略时,用户可能希望不 同数据副本存储在不同机架上面的主机上;或者主副本存储在某个机架的主机上,其它副本 存储在另外机架的主机上;或者主副本存储在SSD上,其它副本存储在HDD上诸如此 类等等这些需要都可以通过配置cluster map中的rule set进行灵活地配置对于(5),在增删存储介质,或存储介质发生故障时,系统会及时进行检测比如,在磁 盘发生故障时,ONEStor会利用损坏数据在其他存储体上的副本进行复制,并将复制的数 据保存在健康的存储体上;在增加磁盘时,同样会把其他存储体的数据安排容量比例重新分 布到新磁盘,使集群的数据达到均衡在上述过程中,完全不需要人工干预。

      对于(6),我们知道,在系统扩容或者存储节点、磁盘故障过程中,为保证数据的可靠性, 系统会自动进行数据平衡为了尽快完成数据平衡,往往会沾满每个存储节点的带宽和IO 能力,这样做的好处是会使平衡时间最短,坏处是此时前端用户的 IO 请求会得不到满足 在某些业务场景下,这时用户无法接受的为此,ONEStor存储系统实现了 10优先级和 Qos 控制机制,可以对前端用户网络流量和后端存储网络流量进行控制,保证一定比例的 用户IO得到满足2. 线性扩展能力 所谓线性扩展能力,主要体现在两个方面:一个是集群部署规模可以线性扩展,另一个方面, 随集群规模的扩展,其性能要能够线性或近似线性扩展在规模上,传统存储之所以在扩展能力上受限,一个很重要的原因就是一般其采用集中式控 制,并且在控制节点存储大量的元数据信息,从而使控制节点容易成为系统的瓶颈对于 ONEStor系统,如上一章节所述,Client节点通过cluster map,可以直接计算出数据的 存储位置,从而对OSD进行直接读写,完全是分布式并行的;而其元数据,也就是cluster map,是轻量级数据,而且其更新的频率相对而言也是较低的这种架构就在理论上保证 了 ONE。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.