华为云计算04FusionStorage

硬件层:针对之前的硬件层有:计算硬件——华为2288等等,存储硬件——OceanStor系类和Dorado,和云存储FusionStorage。网络硬件——CE系列交换机。
资源池层:将底层的计算资源进行整合的就是FusionCompute,针对于存储是作为后端存储使用,只要接入就行,但是在云存储主要是FusionStorage。对于网络以前是FusionNetwork来接管现在则是neutron接管,就是硬件AC接管,SDN,或者软SDN。
将资源池层接入FusionSphereOpenstack,将FC和FusionSphereOpenstack统一称为FusionSphere架构。

华为FusionStorage

在介绍FusionStorage之前,先了解一下Server SAN(服务器存储网络),它是多个独立的服务器自带的存储组成一个存储资源池,同时融合了计算和存储资源。它的特点:将专用设备变成通用设备。计算和存储线性扩展,简单管理,低TCO。
利用一个平台(FusionStorage),将之前在服务器内的存储资源整合出来,形成统一的资源池,提供存储服务。

FusionStorage:分布式块存储软件;将通用的X86服务器的本地HDD,SAS,SATA,SSD等介质,通过分布式技术组成大规模存储资源池;对非虚拟化的上层应用和VM提供工业标准的SCSI和ISCSI接口;开放的API。

首先的话先介绍一下传统存储与FS的优缺点:

上层APP通过FC/IP协议,到传统存储的控制框里面的机头(提供IO能力),通过minisas连接到后端的存储磁盘框。一个APP通过机头连接硬盘,一百个APP也是连接机头,虽然控制框里面的机头给APP提供了计算能力,但是在大规模场景下会产生性能瓶颈。为什么IO过多会产生性能瓶颈问题:因为机头里面的IO处理模块的性能是有限的,随着规模的扩大IO模块处理能力也会下降。还有一个是接口类型是不同的,不同的类型,有不同的速率。无法线性扩展,而且控制框最多到16控。(即使扩展到16控,但是对于单个lun并没有扩展IO能力。因为,在创建lun的时候会创建一个主机的IQN号,就是这个lun给哪个主机来用的,然后再把这个lun映射到某个物理端口(控制器)的逻辑端口。然后用户在这个物理端口上扫描到这个IQN号,从而使用这个lun。)

元数据瓶颈问题,传统存储一般采用集中式元数据管理方式,元数据中会记录所有LUN中不同偏移量的数据在硬盘中的分布,例如LUN1+LBA1地址起始的4KB长度的数据分布在第32块硬盘的LBA2上。每次IO操作都需要去查询元数据服务,随着系统规模逐渐变大,元数据的容量也会越来越大,系统所能提供的并发操作能力将受限于元数据服务所在服务器的能力,元数据服务将会成为系统的性能瓶颈
传统存储IO流:

传统的问题:IO瓶颈问题;Cache容量问题(用控制框的内存来当Cache,华为有SMT技术);无法线性扩展;控制框2-16控(分型号)。

FS的优点:
FusionStorage通过VBS(软件)(虚拟块存储服务),是一个进程,可以形成一个集群最多4096个,来提供计算能力(IO能力),去存储池里面使用存储,来解决IO性能瓶颈问题;线性扩展方式是指,一个服务器可以装VBS使用存储资源,在通过OSD提供存储资源。在写数据之前,要请求元数据信息,所谓的元数据是指,描述这个数据在哪里和这个数据。可以理解为这份数据的路径,传统存储的元数据是在机头里。而FusionStorage通过MDC(元数据控制),来保存元数据信息。因为在传统存储里面,如果机头损坏,则会导致元数据丢失,业务中断,需要重新将元数据恢复。而FusionStorage是通过VBS来进行IO读写,如果VBS坏了,可以通过其他的VBS来进行读写,其他的VBS会通过MDC来获取之前损坏的VBS的元数据信息,来保证业务不中断。传统存储是“有状态”的机制,而FS则是“无状态”,是指控制框损坏不会导致IO中断。传统存储是中心架构,而FS是无中心架构。FS的逻辑架构
针对“无状态”是指:FS的VBS坏掉的时候,可以使用其他的VBS,数据直接下发到Cache中的,而Cache是在存储池中的,所以数据无影响。
“有状态”是指:传统存储如果控制框坏掉了,针对这个控制框中的机头和映射到机头的lun就无法提供存储了,并且之前下发的数据在Cache中没有下盘的数据会丢失。因为传统的存储的Cache是由控制框中的内存提供的。

传统存储的优点:安装简单;高IO,高并发针等,对数据库应用等IO延迟低,因为FS是分布式存储,会将数据分片打散读写时会消耗运算,而传统存储分片打散会一次性读出,FS适合存储非结构化数据。

传统存储的IO:
传统存储IO

下面介绍FusionStorage的组件:FSM,用来接管FSA,FSA是装在每个需要使用FS的服务器上,FSM与FSA之间通信,这个网络是管理网络。FSA是代理进程,包含了MDC、VBS、OSD三种不同的进程。每个服务器上面安装FSA后,如果是提供存储资源的,需要安装OSD(对象服务设备),这个OSD是一个进程,在内存中,用来接管每台服务器下面的磁盘,多个OSD形成集群,向外提供服务。一块磁盘默认对应部署一个OSD进程,在SSD卡作为主存时,为了发挥SSD的性能,可以在1个SSD卡上部署多个OSD进程,例如:2.4T的SSD卡可以部署6个OSD,每个OSD负责管理400G。在传统存储中主机侧需要安装“启动器”,存储侧有目标器,两者建立关系。而FS通过OSD已经形成了存储池,要想使用这个存储池,需要在服务器上装VBS,VBS是给主机提供存储计算的目标器。其他主机通过启动器来使用存储空间,或本主机自己也可以使用。为了避免元数据中心节点故障,FS把存储池的元数据信息保存在MDC上,为了保证MDC高可靠性,MDC会形成一个集群。MDC会到ZK中进行选主,ZK也会形成集群,保证其高可靠性。zk选主机制:大于半数即可。当ZK是3个时,可以保证其故障1个,5ZK可以故障2,7ZK可以故障3。ZK不是跟着存储池的,多个存储池共用一套ZK。ZK装在服务器上有两种方式,一种时分区安装,另一种时独立磁盘,分区安装是可以和系统盘中划分一个分区给ZK使用(59.6G),而独立磁盘是指单独一块磁盘单独给ZK,性能较好。MDC的数量有两种计算方式,一种是控制MDC,一种是归属MDC。控制MDC是指和ZK一起创建,并且放在了ZK盘上。(如果有3ZK则会由3个控制MDC,5个ZK则5个MDC)归属MDC是指每创建一个存储池就会自动创建一个归属MDC,这个归属MDC会收集这个存储池的元数据信息。VBS是提供计算能力与将FS提供上来的“存储空间”模拟成块存储给用户使用,每个节点上默认装一个VBS,可以装多个VBS形成集群提升IO性能。

FS的物理架构:
控制MDC是在ZK创建时,就创建在ZK盘上了,而归属MDC会随机的在三台服务器中的内存中。VBS、OSD、归属MDC都在内存中。
首先在FSM上面接入服务器(通过管理IP)还会选择机柜等信息。然后在服务器上装FSA(选择软件包就是DSwareAgent.tar.gz,选择服务器,在输入服务器的密码等),然后去资源池里面创建“控制集群”(一套FSM只能有一套控制集群)。之后再去存储池里面创建“存储池”,配置存储池的名称,选择副本或EC(DC)副本机制有副本数,安全级别,主存类型,缓存类型,缓存比等,之后添加磁盘,存储池的限制(最低三个节点,12块盘,每个盘的存储类型一致,以最小的磁盘容量作为计算单位)。 然后创建块客户端,将VBS推送到要装的服务器上。
补充:管理ip是指,通过管理IP把FSM的FSAagent推送过去。选择机柜信息是为了副本机制。(server,机柜级别,DC)
FS物理架构
FS的基础概念:
基础概念
对于Key-value的补充,Key是写或读Value的路径。(也可以理解为Key是元数据)
DHT的作用是维护了Key进行hash之后的值对应底层OSD上的一个存储空间(LBA ID)
分布式存储的特点:1.数据写入是随机的。2.数据均匀的分布再存储介质上。

下图是FS的IO简要流程。
FS的IO流程
FS的思想:首先在创建存储池时,会选择提供存储服务的server上的磁盘,FS默认是一块磁盘上部署一个OSD,多个OSD接管上来的磁盘组成了一个地址空间,这就是存储池,要想使用存储服务,首先就是能找到存储的地址。FS利用DHT的分布式hash算法,将OSD提供上来的磁盘分成了2的32次方个地址空间。每一个地址块是LBA ID。为了更好的管理与查找LBA,将多个LBA组成一个partition。DHT环的作用就是保存LBA与Patition的关系,与Patition对应OSD的关系。Patition的个数华为固定3600个。

FS的IO流程:主机OS通过启动器发送SCSI到VBS,VBS将SCSI转换成Key-value, VBS中的VBP模块将数据切块(默认1M),VBS中的Client模块将Key值进行hash,将hash过后的值到DHT环上进行取模运算,得到这个hash值对应的Partition,然后MDC将IOviow推送到VBS,VBS查找IOviow得到这个Partition所对应的主OSD,然后将Key-value发送给主OSD,主OSD将Key-value进行hash得到Partiton,之后MDC推送Partitonviow,OSD根据Partitionviow得到备OSD,然后通过RSM模块完成同步写。
OSD具体下盘
VBS中的VBM模块完成卷和快照的管理功能:创建,挂载,卸载,查找。
(SCSI+data)
细节:假如从OS下发的是10M的SCSI数据,则VBS会将10M切分成10个1M的Key-value,Key值是SCSI里的HostID,tegetID,chanolID,lunID重组得到。HostID—TreeID,tegetID—BlockID,chanolID—snapID,lunID—branceID。VBS里面的Client模块会将key值里面的treeID和branceID进行hash,得到hash值,去DHT环上进行取模运算。

IOview:PartitonID与主OSD的对应关系。
Partitionview:主OSD与备OSD的关系,主OSD的status,备OSDstatus。
OSDview:OSD的ID,OSD的status。

FS的存储池的扩容:再存储池上多加一块盘的时候,会形成数据迁移,因为之前的Partition和OSD都已经形成了映射关系,所以会更改映射关系(hash和Paririon是映射关系)。(一致性hash是建立映射关系,而普通hash是完全绑定关系),会自动迁移数据量小Partition到新的盘上。映射关系是MDC呈现出来的。

FS的分布式Cache是指,当一份10M数据下盘时,默认会切分为10份。每一份会进行hash,每一次hash之后都会随机的落入某个服务器的SSD上。
FS的副本机制:
副本机制
如果3服务器,2副本机制,如果01服务器坏了,则在没有重构的情况下,02或者03都不可以在坏盘了。如果数据重构了,则01机柜坏了,则02可以坏3块盘,同理,如果在01机柜坏了,02坏了3块盘,在进行重构的情况下03最多坏3块盘。 (不重构的情况下最多坏4块盘,如果进行了数据重构则可以坏10块盘)
数据重构过程:如果有一块磁盘坏了,则与之上面的OSD也不能工作了,OSD与MDC之间的心跳会出现异常(1秒),DHT环会发现地址少了一块空间。五秒钟后还未收到心跳后,则会修改OSDviow,同步到主MDC,主MDC在同步到各个MDC,还会修改IOviow,Partitionviow。修改IOviow是为了防止VBS在下盘的时候在落到此盘,避免了写入失败。修改Partitionviow是为了将此坏盘上的如果存在主OSD,则将备OSD改为主OSD继续提供存储服务。五分钟后还未收到OSD心跳,则会将此OSD踢出存储池。利用DHT的映射关系,DHT会更改坏掉的磁盘上对应的Partition,根据之前的副本将数据推送到其他的OSD接管的磁盘上。
(如果只是将磁盘拔出来了,但是又插回去了,副本的文件已经形成,则DHT会根据之前的机制将多余的副本数据删除)
用FS的时候,上层VM的磁盘就是底层pools提供的卷。如果不是FS,从存储侧划分了一个lun给主机,主机将这个lun划分了卷给VM来使用。对于VM来说卷就是磁盘,对于主机来说,底层lun就是存储硬盘。

FS的部署方式:融合部署和分离部署。融合部署指的是,VBS里面既有启动器又有目标器。VBS和OSD部署在同一个物理服务器上。分离部署指的是VBS和OSD部署在不同的服务器上。
步骤:1.安装FSM主备VM,配置FSM主备HA关系,登陆FSM管理界面,导入服务器列表。2安装FSA,创建控制集群,创建存储池,创建块客户端,创建卷,挂载等。

FS的MDC:归属MDC会将存储池的元数据,同步到主MDC,主MDC将信息同步到其他MDC,VBS集群会向MDC进行注册,最先注册的是主VBS,主VBS会从MDC中获取元数据信息,其他VBS在写数据时会向主VBS获取元数据信息,由主VBS返回是否能写入的信息给其他VBS。主MDC会维护一个活动的VBS列表,同步到其他MDC。

FS的网络平面:MDC—OSD——VBS(存储平面),FSM—FSA(管理平面),OS—VBS(业务平面)。

FS的副本机制原则:强一致性,数据下发的时候由VBS下发到OSD,OSD根据具体几副本通过RSM模块完成数据同步写,等所有的副本写都已返回成功时,这份数据才是写成功的,如果写失败,则最多尝试进行6次写。(FS读数据时先读主OSD的盘上数据,读不到在读备的)
(在开源的版本中使用的是最终一致性原则:弱一致性—R+W=3(副本数),R+W>3—强一致性。开源版本会每两分钟进行数据的同步)

FS的特性:在接口层支持SCSI驱动或者ISCSI。在存储服务层支持分布式链接克隆,分布式快照,分布式精简配置,分布式cache,支持备份和容灾。在存储引擎层支持集群状态控制,分布式数据路由,强一致性复制协议,并行数据重建等。

因为FS的安装包是.RPM的包,是Linux的安装包,所以如果其他厂商想使用FS怎么办?
一种是直接在存储服务器上装VBS,利用ISCSI来使用存储池。如下图:
FS
如果是VMware的虚拟化平台想使用FS的话,在ESXI平台之上,创建一个linux的VM,在这台VM上装VBS,利用这台VM使用底层的存储池,这台VM上的VBS与ESXI之间是ISCSI,而ESXI把底层存储接入上来,通过SCSI的方式给想要使用存储资源的VM来使用。也可以直接利用liunxVM将块存储直接挂载给其他VM,这就是RDM的直通技术。之所以要先经过ESXI是为了统一管理,利用ESXI实现集群特性(HA等)。
Vmware使用FS场景

EC特性:N+M,N代表节点数,M代表的是校验节点。数据分散在这六块盘中,有两个校验值M,M代表了可以坏的盘数。
在这里插入图片描述

问题:
VBS保存元数据信息,为了防止多个VBS同时访问一个OSD,是对OSD接管的磁盘同时写还是说对磁盘的一块存储空间不能同时写。
VBS只有一个liderVBS,一旦VBS发生了故障,其他VBS 与MDC互动,升为liserVBS?

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值