当前位置:首页 » 《随便一记》 » 正文

华为云计算HCIE学习笔记-FusionStorage

27 人参与  2022年12月15日 09:05  分类 : 《随便一记》  评论

点击全文阅读


专业阵列介绍(不是FS):

一个交换机上连有几个CNA和一个VRM,CNA连接着SAN交换机,SAN交换机连着专业的Array阵列,它是由一个控制框和几个硬盘框组成的。控制框如果是双控制器的话(双活控制),那么它有两个控制器A和B,控制器后面都有几个接口,两个控制器分别有一个接口网线连接到SAN交换机,可能是通过FC也可能是FCoE也可能是10G的以太网。控制框还有两个电源接口,如果两路电源都突然断电了的话,还有一个后备电源(叫后备电源模块),它可以供电5-10分钟,让控制框可以暂时性的把阵列中的控制器中的缓存中的数据写到项目盘里去。所以阵列的数据绝对可靠。然后不管是控制框还是硬盘框的硬盘都是做RAID2.0(可以坏一块硬盘)。

如果担心这个阵列的机房出问题,那么可以再另外一个数据中心再部署一个SAN交换机与前一个交换机连接起来,然后再布置一个阵列,通过双活特性将它们连接起来。(这个阵列和前一个阵列的LUN一模一样)

阵列的可靠性非常高、可用性非常好、成本非常高、当使用它的主机虚拟机非常多的时候就出现瓶颈。(阵列的框有多大,容量就只有多大)

FusionStorage:①是一套软件的存储解决方案。(软件定义存储 华为自研) 灵活性好

②它先把服务器组织在一起,再把服务器上的硬盘组织在一起。

 它就是每个linux服务器上装上FS软件,然后用交换机连起来。特点就是硬盘多了点。

   它是利用软件把服务器组织起来的方案。

FusionStorage现在能提供三种存储:

①block(块)存储   =Array(SCSI)    在企业中(企业用户)用的多(容量小、价值密度高)

②object(对象)存储  (Restful/http) 在互联网上(互联网用户)用的多(容量大、价值密度低)

③文件存储(NAS(CIFS、NFS))   分布式文件系统(DFS)

FS特点:

 ①价格低

 ②扩展性好

 ③容量大

 ④部署方便

 ⑤性能优

副本机制(FS的):如果有12块盘,每块盘100M,那么一共就有1200M的存储可以用。如果是2副本的话,有效数据只有600M;如果是3副本的话,有效数据只有400M。(空间利用率低、FS成本低) 冗余数据 牺牲了成本换来了高可靠

RAID(阵列的):RAID5至少3块盘,每块盘1G,硬盘总容量3G,有效数据2G。

(一)FusionStorage整体介绍

1. FusionStorage产品介绍

(1)认识Server SAN

1. 概念

(1)由多个独立服务器自带的存储(硬盘:SAS机械盘、固态盘)组成一个存储资源池,同时融合了计算和存储资源。

融合计算和存储资源:

例:一台CNA服务器,上面是计算资源,然后中间是hypervisor,下面是存储。假设它有15块盘,拿出2块盘做RAID1(镜像)就是系统盘(计算),剩下的13块盘就是存储池(FS)。

2. 特征

(1)专有设备变通用设备

(2)计算与存储线性扩展

      计算节点增加的时候说明IO数量越多,存储需求越大,存储(服务器)也跟着扩容。

(3)简单管理、低TCO(低成本)

与厂商专用硬件解耦:传统存储系统软硬件高度集成,Server SANc产品与硬件解耦,不与特定硬件绑定。存储与计算融合:Server SAN构建在通用X86服务器之上,计算和存储融合存在。去中心,无共享,横向无线扩展

(2)华为Server SAN产品FusionStorage

1. 分布式块存储软件

2. 将通用X86服务器的本地HDD、SSD等介质通过分布式技术组织成大规模存储资源池

3. 对非虚拟化环境的上层应用和虚拟机提供工业界标准的SCSI和iSCSI接口(只要是块存储就一定是块访问协议(SCSI协议)。)

4. 开放的API(可以做其他的开发)

 

支持传统块存储典型应用场景:各种业务应用(如SQL、Oracle RAC、Web、行业应用等等)。主流云平台集成:可以和各种云平台集成,如华为FusionSphere、VMware、开源Openstack等,按需分配存储资源。唯一商用支持PB级Server SAN产品。抽象,池化,自动化 抽象:控制平面和数据平面分离,cider就是典型的抽象出来的控制层面,需要数据层面的异构的存储池设备。server san可以提供块存储,对象存储,文件存储fusionstorage 6.x存储和计算融合还是分离依据:存储和计算一起叫融合,否则要分离。 App和store不在一起,叫分离部署。FusionStorage Block是为了满足云计算数据中心存储基础设施需求而设计的一种分布式块存储软件,可以将通用X86服务器的本地HDD、SSD等介质通过分布式技术组织成一个大规模存储资源池,对上层的应用和虚拟机提供工业界标准的SCSI和iSCSI接口,类似一个虚拟的分布式SAN存储。FusionStorage Block的主要应用场景分为两大类:一类是在大规模云计算数据中心中,将通用X86存储服务器池化,建立大规模块存储资源池,提供标准的块存储数据访问接口(SCSI和iSCSI等)。支持各种虚拟化Hypervisor平台和各种业务应用(如SQL、Web、行业应用等等);可以和各种云平台集成,如华为FusionSphere、VMware、开源Openstack等,按需分配存储资源。另一类是在企业关键IT基础设施中,通过Infiniband进行服务器互联以及SSD做Cache或主存等关键技术,将存储系统的性能和可靠性得到极大的提高。又保留了分布式存储的高扩展性基因,从而支持企业关键数据库、关键ERP/CRM等应用的使用,解决这些关键应用的大数据量需求。

(3)传统SAN架构

                                            阵列1(四活四控) 阵列2(四活四控)

 

1. 机头(控制器、引擎)瓶颈:双控~16控,且无法线性扩展

2. Cache(电脑高速缓冲存储器)瓶颈:通常为GB

  硬盘框是机械盘。

  每个控制器里一个Cache。

  允许在控制框里插入硬盘,做二级Cache(可扩)。

  在控制器里放上缓存,它直接写到Cache里去,然后返回主机写ok,就写完了(主机把数据写到控制器的Cache里去,主机就写完了,然后主机去忙别的作业处理别的IO去了)。然后控制器利用其他时间,控制器把IO的数据落盘,通过移步的方式,把缓存数据移到硬盘。

3. 网络瓶颈:10GE、8G FC

传统存储资源缺乏共享:传统存储设备和资源往往由不同厂家提供,之间无法进行资源共享,数据中心看到的是一个个孤立的存储资源。传统存储一般采用集中式元数据管理方式,元数据中会记录所有LUN中不同偏移量的数据在硬盘中的分布,例如LUN1+LBA1地址起始的4KB长度的数据分布在第32块硬盘的LBA2上。每次IO操作都需要去查询元数据服务,随着系统规模逐渐变大,元数据的容量也会越来越大,系统所能提供的并发操作能力将受限于元数据服务所在服务器的能力,元数据服务将会成为系统的性能瓶颈。传统的SAN 采用共享存储,专业级设备,但控制器是瓶颈,达到扩控极限后就不能继续扩容。相比于可以无限扩容的分布式存储。

(4)分布式Server SAN架构

 

每台服务器都有每台服务器的Cache。最多能有4096台服务器。

假设每台服务器内部都有15块盘,这个15块盘独享这台服务器内部的Cache(这Cache是SSD固态盘)。假设是10G的网。每台服务器独享10G的网口。所以服务器的数量越多,每台服务器的Cache容量也在增大。(每台服务器上有5G的Cache:5G*4096(Cahce的容量))

上面的服务器是计算节点,在每个节点中装入FS软件和OS,(软件(模拟))SCSI接口(软的块接口)(软件机头、软件控制器)在这每台服务器上。不管每个服务器上有多少个虚拟机,它们都通过这台服务器上的机头独享10G。(分布的IO访问:每台服务器都有自己独立的块接口)

假设计算的某一台服务器上有一台虚拟机,它以为它的磁盘就在这台服务器上,但事实上都是分片访问到存储池中多台服务器上了。(好处:IO在访问存储池时,每个IO并行访问不同的存储服务器。这种并发吞吐比阵列优。)

FusionStorage支持万兆以太网。

1. 分布式控制器,可线性扩展至4096节点

2. 分布式Cache,扩展至TB级

3. P2P无阻塞高速IB网络,56G InfiniBand RDMA

数据中心级资源共享:一个数据中心内可以构建一个很大的存储资源池,满足数据中心内各类应用对存储容量,性能和可靠性的需求;实现资源共享和统一管理。云数据中心的新存储投资选择。VBS,OSD等会在后面介绍。FusionStorage采用的DHT算法具有以下特点: 均衡性:数据能够尽可能分布到所有的节点中,这样可以使得所有节点负载均衡。单调性:当有新节点加入系统中,系统会重新做数据分配,数据迁移仅涉及新增节点,现有节点上的数据不需要做很大调整。FusionStorage通过创新的架构把分散的、低速的SATA/SAS机械硬盘组织成一个高效的类SAN存储池设备,提供比SAN设备更高的IO,把性能发挥到了极致;性能提升1-3倍。FusionStorage采用无状态的分布式软件机头,机头部署在各个服务器上,无集中式机头的性能瓶颈。单个服务器上软件机头只占用较少的CPU资源,提供比集中式机头更高的IOPS和吞吐量。 例如:假设系统中有20台服务器需要访问FusionStorage提供的存储资源,每台服务器提供给存储平面的带宽为2*10Gb,我们在每台服务器中部署1个VBS模块(相当于在每台服务器中部署1个存储机头),20台服务器意味着可部署20个存储机头,所能获取到的总吞吐量最高可达20*2*10Gb=400Gb,随着集群规模的不断扩大,可以线性增加的存储机头,突破了传统的双控或者多控存储系统集中式机头的性能瓶颈。分布式控制器,无限扩展的能力达到4096节点。分布cache ?  内存,缓存,主存;DHT=负载分担+数据路由。分布式cache(缓存),分布式元数据,分布式数据路由,分布式机头。

(5)存储发展趋势:分布式存储快速增长

 

未来10年全球企业分布式存储市场快速增长,预计2027将占存储市场的70%份额。企业级和hyperscale fusionstorage,达到70%。集群node增加后,计算和存储能力线性扩展。融合部署时不能使用DPM。低TCO,简单管理计算集群的架构变身为计算和存储集群,扩展计算资源的同时,看到存储资源同步提升。

2. FusionStorage典型应用场景

(1)华为FusionStorage两大主要应用场景

 

开发兼容:兼容主流数据库,兼容主流虚拟化平台,兼容主流服务器。融合部署:支持虚拟化平台和数据库资源池融合部署,即共用同一个数据中心FusionStorage存储资源池。FusionStorage支持使用SSD替代HDD作为高速存储设备,支持使用Infiniband网络替代GE/10GE网络提供更高的带宽,为对性能要求极高的大数据量实时处理场景提供完美的支持千万级IOPS。IB做存储网络,而SSD高速cache

(2)华为FusionStorage方案选择参考

 

3. FusionStorage版本、兼容性、升级及License授权等信息

(1)FusionStorage销售版本

 

1. 标准版适用于建立大规模块存储资源池,提供标准的块存储数据访问接口,支持各种虚拟化Hypervisor平台和各种业务应用,按需分配存储资源

2. 高级版支持IB(RMDA)和SSD做主存,适用于企业关键IT基础设施

3. 两种版本使用时需要license,销售量纲是per TB

IB与RMDA ?

(2)FusionStorage兼容性——硬件&软件

1. 硬件兼容性主要包括:

(1)服务器

(2)HDD盘,SSD盘,PCIE SSD卡/盘

(3)RAID卡,以太网卡, Infiniband卡

2. 软件兼容性主要包括:

(1)虚拟化平台

(2)操作系统

(3)数据库软件

硬件兼容性详细信息,可查询链接: hcs更多华为产品兼容性信息,可以查询: http://support-open.huawei.com/ready/

(3)FusionStorage技术规格参数

 

(2)FusionStorage部署方式

1. 融合部署

(1)指的是将VBS和OSD部署在同一台服务器中

(2)虚拟化应用推荐采用融合部署的方式部署

不足:计算与存储资源争用。

2. 分离部署

(1)指的是将VBS和OSD分别部署在不同的服务器中

(2)高性能数据库应用则推荐采用分离部署的方式

答:第一,虚拟化是使用集群技术的计算节点的集合,集群规模可以无限扩大,可以和存储集群融合在一起,一台计算节点同时提供存储资源。  第二, 计算集群同时也是存储集群。节省服务器数量,虚拟化资源池同时也是计算和存储的合体。   

 

 

服务器1、2、3也可以只有一个网口,FSM一样可以通过中间那(平面)条横线到达。

5. FusionStorage灾备方案

(1)FusionStorage备份方案

 

 

(2)FusionStorage容灾方案

 

 

6.主存类型(存储池)(硬盘种类)

SSD

SAS 15K

SATA

NL-SAS:Nearline近线 SAS接口+SATA片

优选顺序:①SSD②SAS 15K③NL-SAS④SATA

存储服务器:机械盘(SAS)当主存的情况下,必须有缓存(Cache)(速度快)。(写入数据时,先进入缓存,缓存再慢慢调给主存。)

            固态盘当主存的情况下,可以没有缓存。

(二)FusionStorage原理及功能特性

1. FusionStorage基础概念及关键原理

(1)基础概念

1. DHT: Distributed Hash Table(分布式哈希表/环),FusionStorage中指数据路由算法。

头:P0 尾:P(2^32)-1 线长=2^32=4G

2. Partition:代表了一块数据分区,DHT环上的固定Hash段代表的数据区。(最多3600分区(段))

3. Key-Value(键值):底层磁盘上的数据组织成Key-Value的形式(数据组织形式),每个Value代表一个块存储空间

每个IndexID(Key)对应一个Data。

 

哈希函数特点:Y=Hash(X) (Y:output  X:input)

 (1)不管输入的X多大(任意值),哈希函数得出的Y一定在0~(2^32)-1范围内(Y值一定在环内)。  哈希函数把任意数映射到这段数内。

 (2)不可逆

 

 

4. 资源池:FusionStorage中一组分区(partition)构成的存储池,对应到DHT环

5. Volume:应用卷,代表了应用看到的一个LBA连续编址

 资源池中有卷,卷在资源池中。

 

6. 数据副本: FusionStorage采用数据多副本备份机制来保证数据的可靠性,即同一份数据可以复制保存为2~3个副本

 

(2)FusionStorage数据路由原理

 

1. FusionStorage数据路由采取分层处理方式(两级定位数据位置):

(1)VBS通过计算确定数据存放在哪个服务器的哪块硬盘上

(2)OSD通过计算确定数据存放在硬盘的具体位置

   1)VBS通过SCSI方式收到Data(2M)。

   2)分解(Data1—Key1,Data2—Key2)key-value

   3)存在哪里?计算出位置(place)。

把hash(Key1)àDHTàpartition 2

hash(Key2)àDHTàpartition 4

     4)Partition视图:partition与Disk的对照表。

         Key1: Partition2àServer1. D1

         Key2: Partition4àServer5. D3

                         IP     Port(TCP)

 

场景:实验演示

 

2. FusionStorage组件功能及相互关系

一个存储池一个哈希环DHT。

(1)FusionStorage VBS模块及处理流程

1. VBS模块作为FusionStorage系统存储功能的接入侧,负责完成两大类业务:

(1)卷和快照的管理功能

(2)IO的接入和处理

 

(3)VBM模块负责完成卷和快照的管理功能:创建卷、挂载卷、卸载卷、查询卷、删除卷、创建快照、删除快照、基于快照创建卷等

(2)FusionStorage OSD模块及处理流程

1. FusionStorage存储池管理的每个物理磁盘对应一个OSD进程,OSD负责:

(1)磁盘的管理

(2)IO的复制

(3)IO数据的Cache处理

 

(3)FusionStorage OSD模块磁盘数据分区

1. 磁盘的每一个1M空间都固定的分配给一个key,一定数量连续的key组成一个chunk

2. Chunk:一个Partition的存储空间由1个或多个Chunk构成

 

(4)VDB(Key-Value DB)

 

(5)FusionStorage MDC模块功能

1. MDC(Metadata Controller):元数据控制器。是一个高可靠集群(3、5、7……奇数),通过HA(High Availability)机制保证整个系统的高可用性和高可靠性:

(1)通过ZooKeeper集群,实现元数据(如Topology、OSD View、Partition View、VBS View等)的可靠保存

(2)通过Partition分配算法,实现数据多份副本的RAID可靠性

(3)通过与OSD、VBS间的消息交互,实现对OSD、VBS节点的状态变化的获取与通知

(4)通过与Agent间的消息交互,实现系统的扩减容、状态查询、维护等

(5)通过心跳检测机制,实现对OSD、VBS的状态监控

2. Zookeeper(简称ZK) 分布式服务框架主要用来解决分布式应用中经常遇到的,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等,ZK主要工作包括三项:

(1)MDC主备管理: MDC采用一主两备部署模式;在MDC模块进程启动后,各个MDC进程会向ZK注册选主,先注册的为主MDC;运行过程中,ZK记录MDC主备信息,并通过心跳机制监控MDC主备健康状况,一旦主MDC进程故障,会触发MDC重新选主

(2)数据存储:在MDC运行过程中,会生成各种控制视图信息,包括目标视图、中间视图、IO视图信息等,这些信息的保存、更新、查询、删除操作都通过ZK提供的接口实现

(3)数据同步:数据更新到主ZK,由主ZK自动同步到两个备ZK,保证主备ZK数据实时同步。一旦ZK发生主备切换,业务不受影响

(6)FusionStorage 视图

1. IO View:partition主和osd节点的映射关系。

2. Partition View:partition主备对应的osd关系,ioview是partitionview的子集。

3. MDC通过心跳感知OSD的状态;OSD每秒上报给MDC特定的消息(比如:OSD容量等),当MDC连续在特定的时间内(当前系统为5s)没有接收到OSD的心跳信息,则MDC认为该OSD已经出故障(比如:OSD进程消失或OSD跟MDC间网络中断等),MDC则会发送消息告知该OSD需要退出,MDC更新系统的OSD视图并给每台OSD发送视图变更通知,OSD根据新收到的视图,来决定后续的操作对象。

4. 多副本复制取决于MDC的视图;两副本情况下,当client发送一个写请求到达该OSD的时候,该OSD将根据视图的信息,将该写请求复制一份到该Partition的备OSD。多副本情况下,则会复制发送多个写请求到多个备OSD上。

 

(7)FusionStorage 主要模块交互关系

1. 系统启动时,MDC与ZK互动决定主MDC。主MDC与其它MDC相互监控心跳,主MDC决定某MDC故障后接替者。其它MDC发现主MDC故障又与ZK互动升任主MDC

2. OSD启动时向MDC查询归属MDC,向归属MDC报告状态,归属MDC把状态变化发送给VBS。当归属MDC故障,主MDC指定一个MDC接管,最多两个池归属同一个MDC

   场景:假设现在有个资源池内有四台服务器,其中三台有MDC,如果现在又多了一个资源池OSD启动,那么第四台服务器会出现一个这个OSD的归属MDC。。(每多一个存储池会再MDC集群服务器上创建一个MDC进程,这个MDC是该存储池的归属MDC,降低MDC集群的压力,负责该存储池的维护,该MDC会把数据写到相应MDC集群里去。)

3. VBS启动时查询主MDC,向主MDC注册(主MDC维护了一个活动VBS的列表,主MDC同步VBS列表到其它MDC,以便MDC能将OSD的状态变化通知到VBS),向MDC确认自己是否为leader;VBS从主MDC获取IO View,主VBS向OSD获取元数据,其它VBS向主VBS获取元数据

 

(8)FusionStorage弹性扩展

1. FusionStorage的分布式架构具有良好的可扩展性,支持超大容量的存储

2. 扩容存储节点后不需要做大量的数据搬迁,系统可快速达到负载均衡状态

3. 支持灵活扩容计算节点、硬盘、存储节点,或者同时进行扩容

4. 机头、存储带宽和Cache都均匀分布到各个节点上,系统IOPS、吞吐量和Cache随着节点扩容线性增加

 

(9)FusionStorage快速数据重建

1. FusionStorage中的每个硬盘都保存了多个DHT分区(Partition),这些分区的副本按照策略分散在系统中的其他节点。当FusionStorage检测到硬盘或者节点硬件发生故障时,自动在后台启动数据修复

2. 由于分区的副本被分散到多个不同的存储节点上,数据修复时,将会在不同的节点上同时启动数据重建,每个节点上只需重建一小部分数据,多个节点并行工作,有效避免单个节点重建大量数据所产生的性能瓶颈,对上层业务的影响做到最小化

 

(10)FusionStorage Cache写机制

1. OSD在收到VBS发送的写IO操作时,会将写IO缓存在SSD cache后完成本节点写操作

2. OSD会周期将缓存在SSD cache中的写IO数据批量写入到硬盘,写Cache有一个水位值,未到刷盘周期超过设定水位值也会将Cache中数据写入到硬盘中

3. FusionStorage支持大块直通,按缺省配置大于256KB的块直接落盘不写Cache,这个配置可以修改

 

HDD:机械盘

(11)FusionStorage Cache读机制

1. FusionStorage的读缓存采用分层机制,第一层为内存cache,内存cache采用LRU机制缓存数据

2. 第二层为SSD cache,SSD cache采用热点读机制,系统会统计每个读取的数据,并统计热点访问因子,当达到阈值时,系统会自动缓存数据到SSD中,同时会将长时间未被访问的数据移出SSD

3. FusionStorage预读机制,统计读数据的相关性,读取某块数据时自动将相关性高的块读出并缓存到SSD中

 

 

(12)FusionStorage 分布式Cache

1. FusionStorage集群内各服务器节点的缓存和带宽都均匀分布到各个服务器节点上,不存在独立存储系统中大量磁盘共享计算设备和存储设备之间有限带宽的问题

2. FusionStorage支持将服务器部分内存用作读缓存,NVDIMM和SSD用作写缓存,数据缓存均匀分布到各个节点上,所有服务器的缓存总容量远大于采用外置独立存储的方案。即使采用大容量低成本的SATA硬盘,FusionStorage仍然可以发挥很高的IO性能,整体性能提升1~3倍

3. FusionStorage支持SSD用作数据缓存,除具备通常的写缓存外,增加热点数据统计和缓存功能,加上其大容量的优势,进一步提升了系统性能

 

 

(13)FusionStorage SSD存储与Infiniband网络

1. SSD存储介质:

(1)通过在存储节点上配置SSD盘或PCI-E SSD卡,FusionStorage可以将存储节点上的SSD组成1个虚拟存储资源池,为应用提供高性能读写能力

2. Infiniband高速网络:

(1)56Gbps FDR InfiniBand,节点间超高速互联

(2)标准成熟多级胖树组网,平滑容量扩容

(3)近似无阻塞通信网络,数据交换无瓶颈

(4)纳秒级通信时延,计算存储信息及时传递

(5)无损网络QOS,数据传送无丢失

(6)主备端口多平面通信,提高传输可靠性

(14)FusionStorage掉电保护

1. 系统运行过程中可能会出现服务器突然掉电的情况,FusionStorage使用保电介质来保存元数据和缓存数据,以防掉电而丢失

2. FusionStorage支持的保电介质为NVDIMM内存条(持久化保存,能做持久化数据存储)或SSD。程序运行过程中会把元数据和缓存数据写入保电介质中,节点异常掉电并重启后,系统自动恢复保电介质中的元数据和缓存数据

 

3. FusionStorage IO流程分析

(1)FusionStorage 读IO流程

1. APP下发读IO请求到OS,OS转发该IO请求到本服务器的VBS模块;VBS根据读IO信息中的LUN和LBA信息,通过数据路由机制确定数据所在的Primary OSD;如果此时Primary OSD故障,VBS会选择secondary OSD读取所需数据

2. Primary OSD接收到读IO请求后,按照Cache机制中的“Read cache机制”获取到读IO所需数据,并返回读IO成功给VBS

 

(2)FusionStorage 写IO流程

1. APP下发写IO请求到OS,OS转发该IO请求到本服务器的VBS模块;VBS根据写IO信息中的LUN和LBA信息,通过数据路由机制确定数据所在的Primary OSD

2. Primary OSD接收到写IO请求后,同时以同步方式写入到本服务器SSD cache以及数据副本所在其他服务器的secondary OSD,secondary OSD也会同步写入本服务器SSD cache。Primary OSD接收到两个都写成功后,返回写IO成功给VBS;同时,SSD cache中的数据会异步刷入到硬盘

3. VBS返回写IO成功,如果是3副本场景,primary OSD会同时同步写IO操作到secondary OSD和third OSD

 

(3)FusionStorage 数据处理过程

 

4. FusionStorage主要功能特性

(1)FusionStorage分布式存储软件总体框架

 

FS参与的盘越多,并发的就越多,性能就越好。

集群故障自愈:一个key-value成为partition存在一主一备两个OSD上,现在备OSD坏了,MDC会自动又找一个备OSD存上去。

其中某块盘坏了,管理员就拔下来换上新空白盘。

FusionStorage(非虚拟化存储):

①支持快照特性

②精简配置磁盘

③链接克隆(比虚拟化数据存储能力强,虚拟化数据存储一个母盘最多链接克隆128个差分盘,FS的一个母卷最多链接克隆2048个)

(2)FusionStorage块存储功能 - SCSI/iSCSI块接口

1. FusionStorage通过VBS以SCSI或iSCSI方式提供块接口:

(1)SCSI方式:安装VBS的物理部署、FusionSphere或KVM等采用SCSI方式

(2)iSCSI方式:安装VBS以外的虚拟机或主机提供存储访问,VMware、MS SQL Server集群采用iSCSI模式。走TCP、IP的。

SCSI和iSCSI都是业务平面。

用的SCSI还是iSCSI方式只跟VBS有关系。(没有IP的内部访问走SCSI,有IP的互访走iSCSI。)

(1)应用想要用计算资源先找OS内核,内核去找VBS用的SCSI方式。

(2)

1)应用服务器(SCSI启动器)去另一台服务器上找VBS(SCSI目标器)(软件机头)用的IP/TCP的SCSI方式(块接口)。

2)图二:硬盘直射到CVM虚拟机(裸设备映射RDM),VBS与iSCSI目标器之间IP可达。

 

 

 

(3)FusionStorage精简配置功能

 

1. 相比传统方式分配物理存储资源,精简配置可显著提高存储空间利用率

2. FusionStorage天然支持自动精简配置,和传统SAN相比不会带来性能下降

(4)FusionStorage快照功能

1. FusionStorage快照机制,将用户卷数据在某个时间点的状态保存下来,可用作导出数据、恢复数据之用

2. FusionStorage快照数据在存储时采用ROW(Redirect-On-Write)机制,快照不会引起原卷性能下降

3. 无限次快照:快照元数据分布式存储,水平扩展,无集中式瓶颈,理论上可支持无限次快照

4. 卷恢复速度快:无需数据搬迁,从快照恢复卷1S内完成(传统SAN在几小时级别)

 

(5)FusionStorage链接克隆功能

1. FusionStorage支持一个卷快照创建多个克隆卷,对克隆卷修改不影响原始快照和其它克隆卷

2. 克隆卷继承普通卷所有功能:克隆卷可支持创建快照、从快照恢复及作为母卷再次克隆操作

3. 支持批量进行虚拟机卷部署,在1秒时间内创建上百个虚拟机卷

4. 支持1:2048的链接克隆比,提升存储空间利用率

 

(6)FusionStorage自定义存储SLA

1. 根据业务诉求,用户可自定义多种资源池SLA规格

2. 同一个虚拟机的不同的数据卷可归属不同的存储池

 

(7)FusionStorage跨资源池的卷冷迁移

1. 跨资源池卷冷迁移:把卷从源资源池 迁移到目的资源池,即【创建目标卷】 à 【卷数据复制】 à【删除源卷】 à【目标卷改名】 à【完成】整个过程的实现

(1)迁移过程中,源卷不能有写数据的操作,所以叫做“冷”迁移

(2)亦可通过工具调用复制接口

2. 场景1:资源池之间的容量平衡,容量满的池迁移到一个空闲的池。

3. 场景2:卷在不同性能的资源池之间的迁移,从低性能的池向高性能的池迁移

 

5. FusionStorage跨服务器、机柜或机房数据可靠性

(1)FusionStorage跨服务器故障容忍

1. 数据可靠是第一位的,FusionStorage建议3副本配置部署

2. Google,facebook的副本数>=3副本

3. 左侧双故障节点情况,为3副本情形下

4. 如果服务器在同一个机柜,无法抗拒机柜整体断电断网等故障类型

 

(2)FusionStorage跨机柜故障容忍

 

FS添加服务器时的图。

 

创建存储资源池的图。

若选择服务器级别(2副本),则不允许2台服务器同时出故障。

若选择机柜级别(2副本),2个机柜很难同时挂掉(不放在同一机房)。

1. 机柜间要求有独立网络和电力供应

2. 如果机柜整体在同一个机房,无法抗拒机房整体断电断网,自然灾害等故障类型

3. 小于12台服务器不能使用机柜级安全

4. 超过64台服务器,必须使用机柜级安全

 

场景:

 

机柜级别这样规划:

 

这种情况下,一个机柜挂掉,其他机柜没挂数据依旧存在。

(3)FusionStorage跨机房故障容忍

 

(4)FusionStorage跨机房数据访问及流动

 

1. 支持数据跨机房访问

2. 支持数据卷从一个资源池迁移到另一个存储池,应用可以不修改

6. VMware VAAI兼容

(1)VAAI-Copy offload

 

1. Copy Offload:拷贝虚拟磁盘文件的操作,比如虚拟机克隆或通过模板部署新的虚拟机,可以通过阵列离线进行的方式实现硬件加速,而不是在ESX服务器端进行文件级的拷贝操作。这种技术同样可以应用于Storage vMotion功能,将一个虚拟机的数据从一台存储移动到另一台

(2)VAAI-Block Zeroing

 

1. Block Zeroing:在所有虚拟磁盘初始写入之前,必须进行清零操作,在该格式化过程中,大量的零数据从ESX/ESXi主机发送到要清零的阵列上的磁盘数据块是一项耗时且耗资源的过程。通过VMware Block Zeroing操作,阵列可以处理所有的清零过程,更为高效

(3)VAAI-Automatic Test and Set

 

1. Atomic Test and Set(ATS):VMFS文件系统允许多主机对同一共享逻辑卷的并发访问,这是vMotion运行的必要条件。VMFS有一个内置的安全机制,防止虚拟机被超过一台的主机同时运行或修改。 使用Atomic Test and Set(ATS)命令是一种硬件辅助的锁定机制,可以离线地对存储阵列个别磁盘数据块而非整个逻辑卷加锁。这可以使得余下的逻辑卷在锁定期间继续被主机访问,十分有助于避免性能下降

(4)VAAI- UNMAP/Reclaim

 

1. UNMAP/Reclaim command:VMFS 是文件系统,二下层为块。当删除或迁移虚拟机后,VMFS端看空间大,二下层未做实际的空间回收。ESXi 5.0后可通知下层回收,需要下层实现接口适配,当虚拟机从一个DataStore迁走或删除立即调用Unmap,阵列上的空间立即被回收

(三)FusionStorage部署规划

(四)FusionStorage安装部署简介

(五)FusionStorage操作维护

(六)FusionStorage故障处理

(七)FusionStorage性能优化

集群:即FusionStorage集群,FusionStorage以集群的形式提供分布式块存储服务。资源池:资源池是FusionStroage集群提供块存储资源的方式;管理员可以根据需要划分出不同用途,性能和规格的资源池满足不同的存储应用需求。卷:资源池为计算资源提供存储资源的基本单位。存储资源池中,2副本的服务器数量至少3台;3副本的服务器数量至少3台。一个存储资源池的最少要求:3台服务器,12块盘。一套FusionStorage可以是几个集群 ? 如何设置多集群 ?

4. FusionStorage逻辑架构

(1)FusionStorage逻辑架构

 

服务器5:可以通过VBS访问其他服务器的OSD进程所管的硬盘。

服务器6:负责IO数据的读写,维持两块盘

1. FSM(FusionStorage Manager):VM形态。FusionStorage管理模块,提供告警、监控、日志、配置等操作维护功能。一般情况下FSM主备节点部署。对管理员提供管理视图、运营、运维,把物理服务器组成池子。每个FSM虚拟机中都有一个自己的Gauss DB.

2. FSA(FusionStorage Agent):装在物理服务器上(是个软件)。代理进程,部署在各节点上,实现各节点与FSM通信。FSA包含MDC、VBS和OSD三种不同的进程。根据系统不同配置要求,分别在不同的节点上启用不同的进程组合来完成特定的功能。最多4096个。(因为物理服务器最多4096个)

服务器的操作系统必须是FSA能兼容的操作系统。(如:Cent OS、CNA(服务器)、Linux等(开源的))

FSA上有Driver的,使这些服务器能识别硬盘。

代理进程:包括MDC,VBS,OSD三种进程。可以任意组合。

3. MDC(MetaData Controller):元数据控制器,实现对分布式集群的状态控制,以及控制数据分布式规则、数据重建规则等。MDC默认部署在3个节点的ZK(Zookeeper)盘上,形成MDC集群。管理节点。MDC控制器的后台必须有一个所谓的数据库。记录一些系统元数据、规则、表、视图、数据重建规则、VBS进程状态和位置、OSD进程状态和位置、全网拓扑等等。

    ZK:是保证数据一致性的分布式的协调文件(是一个分布式文件系统)。一主多从。放数据存储。

 

4. VBS(Virtual Block System):虚拟块存储管理组件(块客户端)(块接口=SCSI接口(对外))(软件)称为块客户端,负责卷元数据的管理,提供分布式集群接入点服务,使计算资源能够通过VBS访问分布式存储资源。每个节点上默认部署一个VBS进程,形成VBS集群。节点上也可以通过部署多个VBS来提升IO性能。计算节点。访问软件存储池的入口。

5. OSD(Object Storage Device):对象存储设备服务,执行具体的I/O操作。在每个服务器上部署多个OSD进程,一块磁盘默认对应部署一个OSD进程。在SSD卡作主存时,为了充分发挥SSD卡的性能,可以在1张SSD卡上部署多个OSD进程进行管理,例如2.4TB的SSD卡可以部署6个OSD进程,每个OSD进程负责管理400GB。存储节点。

 

 

SQL:SCSI启动器(initiator)

VBS:SCSI目标器(target)

主存:FusionStorage用服务器的数据存储磁盘。Fusionstorage是个分布式的存储集群,有融合部署和分离部署两种场景。VBS和OSD提供块存储管理和对象存储管理,MDC负责维护存储集群的全部控制平面的数据,例如规则,它内部使用ZK集群算法来维护DB的一致性。VBS是分布式存储集群的入口,OSD负责具体的存储集群的数据的存放及一致性保证。在虚拟化和非虚拟化场景中,每个节点一个VBS,默认,可以更多,提高接入能力,提高IO性能。对象存储服务,和块存储? OSD ? 一块磁盘一个OSD 进程。 部署多个VBS的必要性为什么虚拟化应用建议采用集群部署? 计算节点和存储节点可以线性扩展。为什么分离部署多建议给对性能要求较高的数据库服务器,数据库服务器可独享单机资源。NBU是一款备份软件,symantec的,可以使用NBU来提供备份工作。NBU veritas的备份软件,即NetBackup软件。赛门铁克的备份软件,可以备份物理,虚拟化环境。ebackup可以对虚拟化环境的资源池的卷做备份。VRG由华为容灾软件UltraVR配套提供。华为的基于主机的异步IO复制,支持数据存储为:fs或vims,请问是否支持其它数据存储?DHT机制可以保证上层应用对数据的IO操作会均匀分布在不同服务器的不同硬盘上,不会出现局部的热点,实现全局复负载均衡。key-value是一种磁盘上的数据组织形式。Value代表存储空间,那value是一个指针吧。Key是什么?可以存放在哪里 ?key value是磁盘上的数据组织形式,而非数据传输所使用的格式scsi io ->get key = (lun, lba)  =key,对key进行hash后(0-2^32 ),再取模,得到partition 。与厂商专用硬件解耦:传统存储系统软硬件高度集成,Server SANc产品与硬件解耦,不与特定硬件绑定。存储与计算融合:Server SAN构建在通用X86服务器之上,计算和存储融合存在。volume:应用所使用的连续的逻辑存储空间。key是检索值,value代表存储空间。资源池: 类似于SAN的RAID组概念,与RAID相比,其优点是: 条带宽度:最大96块盘(2份拷贝),提升超大存储空间,避免高IO应用导致热点瓶颈动态热备:所有硬盘都可用作资源池的热备盘简单结构:资源池、Volume二层结构,没有LUN结构,服务器直接看到Volume系统自动将每个卷的数据块打散存储在不同服务器的不同硬盘上,冷热不均的数据会均匀分布在不同的服务器上,不会出现集中的热点。问题: 3600 partition是一个存储池中分配的空间?FusionStorage针对系统中的每1个卷,默认按照1MB进行分片,分片后的数据按照DHT算法保存集群节点上。对于服务器Server1的磁盘Disk1上的数据块P1,它的数据备份为服务器Server2的磁盘Disk2上P1’,P1和P1’构成了同一个数据块的两个副本。例如,当P1所在的硬盘故障时,P1’可以继续提供存储服务。数据分片分配算法保证了主用副本和备用副本在不同服务器和不同硬盘上的均匀分布,换句话说,每块硬盘上的主用副本和备副本数量是均匀的。扩容节点或者故障减容节点时,数据恢复重建算法保证了重建后系统中各节点负载的均衡性。算法1: 扩容或故障时的,数据恢复重建算法 。算法2: 数据分片算法,保证多副本及均匀性 ?系统初始化时,FusionStorage将哈希空间(0~2^32)划分为N等份,每1等份是1个分区(Partition),这N等份按照硬盘数量进行均分。例如:二副本场景下,系统N默认为3600,假设当前系统有36块硬盘,则每块硬盘承载100个分区。上述“分区-硬盘”的映射关系在系统初始化时会分配好,后续会随着系统中硬盘数量的变化会进行调整。该映射表所需要的空间很小,FusionStorage系统中的节点会在内存中保存该映射关系,用于进行快速路由。当硬盘数量变化时,分区的数量不会变化。FusionStorage会对每个LUN在逻辑上按照1MB大小进行切片,例如1GB的LUN则会被切成1024*1MB分片。当应用侧访问FusionStorage时候,在SCSI命令中会带上LUN ID和LBA ID以及读写的数据内容,OS转发该消息到本节点VBS模块,VBS根据LUN ID和LBA ID组成一个key,该key会包含LBA ID对1MB的取整计算信息。通过DHT Hash计算出一个整数(范围在0~2^32内),并落在指定Partition中;根据内存中记录的“分区-硬盘”映射关系确定具体硬盘,VBS将IO操作转发到该硬盘所属的OSD模块。每个OSD会管理一个硬盘,系统初始化时,OSD会按照1MB为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个1MB分片的分配信息。OSD接收到VBS发送的IO操作后,根据key查找该数据在硬盘上的具体分片信息,获取数据后返回给VBS。从而完成整个数据路由过程。举例说明:应用需要访问LUN1+LBA1地址起始的4KB长度的数据,首先构造key=LUN1+LBA1/1M,对该key进行HASH计算得到哈希值,并对N取模,得到partition号,根据内存中记录的“分区-硬盘“映射表可得知数据归属的硬盘  映射表放在内存中系统有36块盘,每块盘上100个(主)分区 。 共3600分区,有个分区硬盘对照。每块盘数据区按1M大小分成若干份,每份都有相应的Address指针,元数据区负责存放key及对应value(存储位置的指针)。VBS根据收到的SCSI指令识别出来LUN ID,LBA ID,生成key分区硬盘对照表,可以被称为数据路由表。IO在VBS进程中需要经过三个模块的处理,分别为SCSI、VBP、CLIENT: SCSI模块负责从内核(VSC.KO)中将IO引入VBS进程,SCSI模块接收到的IO是标准SCSI协议格式的IO请求,通过SCSI四元组(host_id/channel_id/target_id/lun_id)和该IO在块设备上的offset,读写的数据长度len唯一标识一个IO,SCSI模块将收到的IO信息交给VBP(Virtual Block Process)模块VBP内部将通用块格式的IO转换为FusionStorage内部Key-Value格式的IO下发给client,其中KEY的组成为:tree_id(4Byte)+block_no(4Byte)+ branch_id(2Byte)+snap_id(2Byte),tree_id/branch_id/snap_id是FusionStorage内部对卷、快照的唯一标识;block_no是将卷按照1M的块划分,本次IO落在哪一个1M块上的编号IO请求到达client模块后,client根据KEY中的tree_id/branch_id进行hash计算,确定本次IO发给哪一个OSD进程处理确定后将IO发给对应的OSD处理OSD并收取响应,然后逐层返回IO卷和快照的通用属性信息(如卷大小、卷名等)及卷和快照在DSware系统内部的一些私有属性(如用于定位卷和快照数据在系统中存储位置的tree_id/branch_id/snap_id)保存在DSware内部的一个私有逻辑卷中,该卷我们称为元数据卷OSD:主备模式,MDC实时监控OSD的状态,当指定Partition所在的主OSD故障时,存储服务会实时自动切换到备OSD,保证了业务的连续性。RSM:复制协议实现。RSM(Replicated State Machine) data layerSNAP:实现卷与快照的IO功能、磁盘空间的管理。CACHE:实现cache功能。AIO:实现异步IO下发到底层SMIO模块和通过调用SMIO接口来监控介质故障。SMIO:下发到IO到实际的物理介质、监控物理介质故障、获取磁盘信息。每个OSD会管理一个硬盘,系统初始化时,OSD会按照1MB为单位对硬盘进行分片管理,并在硬盘的元数据管理区域记录每个1MB分片的分配信息。OSD接收到VBS发送的IO操作后,根据key查找该数据在硬盘上的具体分片信息,获取数据后返回给VBS。从而完成整个数据路由过程。对于写请求,OSD根据分区-主磁盘-备磁盘1-备磁盘2映射表,通知各备OSD进行写操作,主与备OSD都完成写后返回VBS。VDB需要研发协助补充在FusionStorage典型部署中,为了保证系统可靠性,ZK采用一主两备部署模式,每个管理节点部署一个ZK进程,ZK主备管理由ZK内部机制保证。MDC进程与ZK进程采用C/S模式,TCP协议通信;MDC可以连接到任意一个ZK服务器,并且维持TCP连接。如果这个TCP连接中断,MDC能够顺利切换到另一个ZK服务器。MDC维护拓扑+视图,MDC作为C,而ZK作为S,通过TCP。MDC了解所有ZK的位置,并维护多个TCP连接。FusionStorage系统中会存在多个VBS进程,如果多个VBS同时操作元数据卷,会引起数据数被写坏等问题。为避免该问题,FusionStorage系统对VBS引入了主备机制,只有主VBS可操作元数据卷,所有的备VBS不允许操作元数据卷,一套FusionStorage系统中只存在一个主VBS;VBS的主备角色由MDC进程确定,所有VBS通过和MDC间的心跳机制保证系统中不会出现双主的情况。只有主VBS能够操作元数据,所有备VBS收到的卷和快照管理类命令需要转发到主VBS处理,对于挂载、卸载等流程,主VBS完成元数据的操作后,还需要将命令转到目标VBS实现卷的挂载、卸载等操作。扩容,可以添加存储节点或硬盘。1TB硬盘的重建时间小于30分钟。partition视图:partition和主OSD对照表,主OSD负责在备OSD间同步。每块硬盘上可以有100分区,如果两副本,则包含主分区和一个备分区,问:如果一个分区的数据以分片形式存放到某个disk上,但这个disk是主OSD,当一个数据分片到的时候,另一个数据分片可以放到其它OSD上,属于该分区的主分片在该disk上,但其它分片副本则在不同的disk上,保证每个disk上数据分片均匀分布。FusionStorage支持将服务器部分内存用作读缓存,NVDIMM和SSD用作写缓存。刷盘周期 或超过设定水位值就刷盘。NVDIMM 是在一种集成了DRAM + 非易失性内存芯片的内存条规格,能够在完全断电的时候依然保存完整内存数据,这次发布AGIGA860 采用了NAND 闪存作为内存条的非易失性存储芯片,而DRAM 部分则是DDR3-1600,内存条上没有采用电池,而是 SSD 上常见的超级电容来维持掉电后瞬时的数据转移电力,厂商提供了在线闪存固件更新服务。相比其他介质的非易失性内存,NVDIMM已逐步进入主流服务器市场,micron,viking,AGIGA等国外内存厂商皆以推出自己的NVDIMM。国内厂商云动科技也推出了自己的NVDIMM产品,并给出了基于NVDIMM的全系统保护演示示例。大块透写功能存储池大块透写功能默认关闭,当SSD设备作缓存,SATA或者SAS设备作主存,所有数据写入时先写入缓存再由缓存写入主存。当单存储节点缓存带宽小于1GB时,建议将大块透写功能打开。打开后,大块数据(≥256KB)写入时不经过缓存直接写入主存。如果系统由较早版本升级而来,存储池大块透写功能的开关状态和升级前保持一致。以dsware用户在FSM主节点执行sh dswareTool.sh --op poolParametersOperation -opType modify -parameter p_write_through_switch:open -poolId 存储池ID命令,打开存储池大块透写功能。OSD收到VBS发送的读IO操作的步骤处理: Step 1:从内存“读cache”中查找是否存在所需IO数据,存在则直接返回,并调整该IO数据到“读cache”LRU队首,否则执行Step 2Step 2:从SSD的“读cache”中查找是否存在所需IO数据,存在则直接返回,并增加该IO数据的热点访问因子,否则执行Step 3Step 3:从SSD的“写cache”中查找是否存在所需IO数据,存在则直接返回,并增加该IO数据的热点访问因子;如果热点访问因子达到阈值,则会被缓存在SSD的“读cache”中。如果不存在,执行Step 4Step 4:从硬盘中查找到所需IO数据并返回,同时增加该IO数据的热点访问因子,如果热点访问因子达到阈值,则会被缓存在SSD的“读cache”中读修复:在读数据失败时,系统会判断错误类型,如果是磁盘扇区读取错误,系统会自动从其他节点保存的副本读取数据,然后重新写入该副本数据到硬盘扇区错误的节点,从而保证数据副本总数不减少和副本间的数据一致性。Memcached使用的是LRU(Least Recently Used最近最少使用)算法来回收缓存,将那些属于LRU的数据移出内存,从而腾出空间来加载另外的数据。FusionStorage支持各种cache介质:如NVDIMM、SSD卡、SSD盘、内存cache、关闭cache 5种方式。FusionStorage可以支持华为自研SSD卡或者其他厂家主流PCI-E SSD卡。FusionStorage支持各种网络介质类型:Infiniband、10GE/GE等。 其实早在2006年,华为就已开始研发PCIe SSD产品,至今拥有7年的开发、商用经验,共发布了四代产品,并在百度、腾讯、阿里巴巴、蓝汛等客户上进行过大量应用。在第四代PCIe SSD卡——Tecal ES3000中,华为采用了与CPU直接通信的PCIe技术,缩短存储访问路径,解决存储IO瓶颈,从而得以大幅度提升系统IO性能。  容量方面,Tecal ES3000 PCIe SSD 卡主要有三种规格:800GB、1.2TB和2.4TB,采用MLC flash颗粒,全高半长尺寸,采用PCIe 2.0 x8接口,同时支持掉电保护功能。其读带宽为3.2GBps,读IOPS达77万(4KB 数据块),写带宽达2.8GBps,写IOPS达63万(4KB 数据块),写延迟仅有13us不支持迁移已挂载的“共享”类型的磁盘和链接克隆虚拟机的磁盘。不支持非持久化磁盘和开启iCache功能虚拟机磁盘的迁移。在条件允许的情况下,建议将虚拟机关闭后迁移。不支持目的数据存储或源数据存储为FusionStorage的迁移。在条件允许的情况下,建议将虚拟机关闭后迁移fs不支持跨主机和存储热迁移,除非冷迁移。使用SCSI存储接口时,支持快照、快照备份、链接克隆功能,iSCSI暂不支持前述特性。对于iSCSI协议的支持是通过VBS提供iSCSI Target,块存储使用方通过本机的Initiator与iSCSI Target联接来访问存储。FusionStorage支持以下安全访问的标准: CHAP身份验证LUN MASKING给Host对Lun的访问进行授权图中无内容空格不代表已分配空间,在磁盘上面不占用实际空间。副本数越多,存储空间利用率越低。VAAI(VMWare vSphere Storage API - Array Integration )

 


点击全文阅读


本文链接:http://zhangshiyu.com/post/49747.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1