导图社区 FusionStorage存储架构知识点学习总结
FusionStorage存储架构知识点学习总结,包括FusionStorage、存储池特点、FusionStorage缺点、FusionStorage架构等内容。
编辑于2022-11-16 17:31:36 广东FusionStorage存储架构知识点学习总结
Server SAN
定义
由多个独立服务器自带的存储组成一个存储资源池,同时融合了计算和存储资源
特点
专用设备变通用设备
计算和存储资源深度融合,支持线性扩展
管理简单,减低TCO成本
FusionStorage
定义
分布式块存储软件
将通用X86服务器的本地HDD、SSD等介质通过分布式技术组织成大规模存储资源池
对非虚拟化环境的上层应用和虚拟机提供工业界标准的SCSI和iSCSI接口
注意事项
(最新版本的FusionStorage已支持块存储服务、分布式文件存储服务、分布式对象存储服务)
特点
分布式架构,分布式集群管理,分布式DHT算法,分布式机头,分布式智能cache,使整个系统不存在单点故障
高性能高可靠性,FS的存放数据是打散的,不会出现热点,高效的DHT算法以及分布式cache保证系统的高性能;存在副本机制,每个副本存放在不同磁盘或者服务器上,保证数据高可用性
并行快速故障重建,当磁盘发生故障时自动数据重建,并且多节点同步进行,重建效率高
易扩展以及超大容量,可支持线性扩展
FS系统会自动保证多个副本数据的强一致性(RSM模块)
应用场景
大规模云计算数据中心
将通用X86存储服务器池化,建立大规模块存储资源池,提供标准的块存储数据访问接口(SCSI和iSCSI等)。支持各种虚拟化Hypervisor平台和各种业务应用(如SQL、Web、行业应用等等);可以和各种云平台集成,如华为FusionSphere、VMvare、开源OpenStack等,按需分配存储资源
企业关键IT基础设施
通过Infiniband进行服务器互联以及SSD做Cache或主存等关键技术,将存储系统的性能和可靠性得到极大的提高,又保留了分布式存储的高扩展性基因,从而支持企业关键数据库、关键ERP/CRM等应用的使用,解决这些关键应用的大数据量需求
与传统存储的区别
机头
传统存储的机头一般为2-16控,且无法线性扩展,在增加节点时只能扩展存储系统的容量;FS采用分布式控制器,可以线性扩展到4096节点,增加节点时,既能扩展存储系统的性能也能扩展存储系统的容量
元数据
传统存储的元数据服务集中于机头,且针对于某个LUN而言,它的元数据集中于某个控制器,当过多的主机使用同一个LUN的时候,都要经过机头访问它的元数据,所以这种情况下,元数据就会出现瓶颈。而FS元数据服务由分布式控制器提供,当访问同一个LUN的时候,或者去操作元数据的时候,都是通过VBS来操作的,不会出现LUN归属控制器的问题,且通过DHT算法算出来的
可靠性实现
传统存储实现可靠性的方式有:RAID、BBU、远程复制、双活等等;而FusionStorage采用副本机制:数据在存储时被分片并通过多副本机制分布在不同的硬盘、不同的存储节点、不同的机柜之间;当硬盘发生故障时,FusionStorage通过内部的自检机制,自动发现数据故障并启动数据修复机制,在后台自动修复数据;同时FusionStorage可以采用NVDIMM保电缓存介质,运行中可以将数据写入到保电介质中,当服务器意外掉电时可以从保电介质中恢复数据,从而保证数据不丢失;以及现在FusionStorage也能够实现容灾功能(远程复制、双活)
(由于数据被分散到多个不同的存储节点上保存,数据修复时,在不同的节点上同时启动修复,每个节点上只需修复一小部分数据,多个节点并行工作,有效避免单个节点修复大量数据所产生的性能瓶颈,对上层业务的影响做到最小化)
组网
传统存储的组网成本高,但是组网逻辑简单;FusionStorage组网成本低(由于都是通用设备),但是组网逻辑复杂(区分开管理网络和存储网络)
管理
传统存储通常需要专用设备进行管理,不同厂商管理系统难以统一管理;FS通过FSM提供的Web界面可以对资源进行统一管理
存储池特点
每个服务器上可以使用的硬盘数为3-36个,2副本每个服务器可提供硬盘数为3-12个,3副本每个服务器可以提供的硬盘数为3-36个
2副本每个资源池最大盘数为96块,3副本每个资源池盘数为2048块
**每个存储池中硬盘数不能少于12块
**同一资源池中硬盘数之差不能大于2块,若等于2块则不能超过硬盘数最多的30%
**同一资源池中主存类型需要一致
**同一资源池中硬盘容量建议一致,若不一致,会以最小的为基准
每个服务器可以给每个存储池提供0-4个缓存
同一资源池缓存类型以及数量需要保持一致
FusionStorage缺点
采用两副本或三副本的机制,存储利用率较低
至少三节点起步,而且需要达到一定规模性能才能赶超传统存储
小规模场景,FusionStorage的实施比传统存储复杂许多(FusionStorage需要考虑MDC、VBS、OSD)
传统存储的部署
1) 开箱验货,上架
2) 通过交换机、网络连接存储设备
3) 通过管理端口登陆到DeviceManager
4) 申请导入license
5) 填写基本信息(名称、位置、密码)
6) Devicemanager上创建硬盘域、存储池、LUN、LUN组、主机、主机组,映射视图
7) 打开主机的iSCSI启动器发起iSCSI连接,在磁盘管理中将磁盘格式化即可使用
不支持FC网络
FusionStorage架构
FSM
FusionStorage管理模块,管理整个FusionStorage资源,主要向管理员提供图形化的管理界面,提供告警、监控、日志、配置等操作维护功能。(通常FS为了提高可用性,FSM是一个主备的部署方式,并且两者形成浮动IP对外提供服务)
FSA
FusionStorage代理进程,部署在各节点上,实现各节点与FSM通信。接收FSM下发的管理控制信息,并执行相应的动作(安装、配置、启动、升级等),以及收集节点的信息并反馈给FSM
FSA包含以下进程
MDC
元数据控制组件,是业务控制进程,实现对分布式集群的状态控制,以及控制数据分布式规则、数据重建规则等。MDC默认部署在3个节点的ZK(Zookeeper)盘上,形成MDC集群。MDC数量=ZK/MDC+归属MDC
VBS
虚拟块存储管理组件,是业务IO进程,负责卷元数据的管理,提供分布式集群接入点服务,使计算资源能够通过VBS访问分布式存储资源。每个节点上默认部署一个VBS进程,形成VBS集群。节点上也可以通过部署多个VBS来提升IO性能
OSD
对象存储设备组件,是业务IO进程,执行具体的I/O操作,将数据写入到具体的磁盘中。在每个服务器上部署多个OSD进程,一块磁盘默认对应部署一个OSD进程。在SSD卡作主存时,为了充分发挥SSD卡的性能,可以在1张SSD卡上部署多个OSD进程进行管理,例如2.4TB的SSD卡可以部署6个OSD进程,每个OSD进程负责管理400GB。
ZK
分布式应用协调服务,用于状态同步服务,集群管理
作用
MDC 主备管理,负责MDC选主
存放视图
状态同步,主ZK负责将数据同步到其他备ZK上
数量
3/5/7:选主机制必须超过半数
奇偶数可坏硬盘数一致
7个经验值已经够用
所有ZK均为AA的运行
部署
服务器数量≤32时,默认选择3个独立的ZK盘(推荐HDD)
32<服务器数量≤128时,默认选择5个独立ZK盘(推荐HDD)
服务器数量>128时,默认选择5个独立ZK盘(推荐SSD)。其中根据规划以及客户需求,还可以选择7个独立的元数据盘(推荐SSD)
组件交互
交互流程
首先会采用投票的方式选出主ZK,获取半票即可成为主ZK,主ZK会将数据同步至备ZK
系统启动时,MDC与ZK互动决定主MDC,最先注册的为主MDC,主MDC与归属MDC相互监控心跳,当归属MDC故障,主MDC指定一个MDC接管,最多两个池归属同一个MDC。控制集群的MDC发现主MDC故障又与ZK互动选择主MDC
OSD启动时,会向MDC查询归属MDC,向归属MDC上报状态,归属MDC将状态同步至VBS(主MDC维护一个活动的VBS列表,主MDC可以将VBS状态同步至备MDC,使其他MDC可以将OSD的状态信息同步至VBS)
OSD如何找到归属MDC
OSD进程在启动时会加载相应的配置文件,文件中包含所有MDC的IP及端口号,所以OSD可以向这些MDC确定归属MDC
VBS启动时会向主MDC确认自己是否为Leader,VBS向主MDC获取IO view,主VBS向OSD获取元数据,其他VBS向主VBS获取元数据
VBS如何查询主MDC
VBS进程在启动时会加载相应的配置文件,文件中包含所有MDC的IP及端口号,所以OSD可以向这些MDC查询主MDC
组件心跳
ZK与MDC
心跳为1S,10S内为未收到心跳则会认为MDC故障
MDC与VBS
心跳为1S
MDC与OSD
心跳为1S,5S未收到则认为OSD异常,将OSD踢出,并修改OSD View、IO View、Partition View进行引流,5分钟内未收到心跳,则自动进行数据重构
数据路由
路由流程
APP发起IO请求到OS中,OS将请求发送到VBS,VBS接收到的指令是SCSI格式的IO,通过VBP模块转换成Key-Value格式,并通过OSD Client模块进行Hash后得到Hash值,对Hash值取模得到partition号,根据Partition号检索IO View,找到主OSD从主OSD读取所需数据
如果是写IO,主OSD负责将数据下盘并再通过一次DHT算法得到partition号,检索Partition view将数据同步至备OSD中
IO路径
OS ---“SCSI/iSCSI”-->VBS---"key-value"--->OSD---“SCSI”--->Disk
FS数据强一致性
定义
当应用程序成功写入一份数据时,其他副本的数据必然是一致的,当应用程序再次读时,无论读哪一个副本都是之前写入的数据
实现
通过OSD的RSM模块实现数据的同步,保证副本数据的强一致性
数据一致性模型
N:数据的副本总数;W:写操作被确认接受的副本数量;R:读操作的副本数量
强一致性:R+W>N,以保证对副本的读写操作会产生交集,从而保证可以读取到最新版本
弱一致性:R+W<=N,如果读写操作的副本集合不产生交集,就可能会读到脏数据;适合对一致性要求比较低的场景
例如
Swift 默认配置是N=3,W=2>N/2,R=1或2,即每个对象会存在3个副本,这些副本会尽量被存储在不同区域的节点上;W=2 表示至少需要更新2个副本才算写成功;当R=1 时意味着某一个读操作成功便立刻返回,此种情况下可能会读取到旧版本(弱一致性模型);当R=2 时,需要通过在读操作请求头中增加x-newest=true 参数来同时读取2 个副本的元数据信息,然后比较时间戳来确定哪个是最新版本(强一致性模型)
视图
OSD view:OSD ID+OSD Status
IO view:Partition ID+主OSD
Partition view:Partition view+主OSD+备OSD+OSD status
这些视图作为元数据被MDC所管理,存放在两个位置: 1.由ZK管理的ZK空间中;2. MDC管理的内存中。 VBS及OSD也保存它们需要的部分元数据。例如VBS需要的IO View,OSD需要的PartitionView。
坏块修复
当VBS将读IO发送到OSD时,如果读取的数据是坏块对应的位置则会返回读取失败,那么OSD会根据DHT算法找到对应的备OSD,从备OSD读取相应的数据返回给VBS,同时将数据写入到新的位置并建立映射关系,从而保持数据一致性以及副本数量不变
cache流程
读cache
OSD收到VBS的读请求时去内存中读数据,命中则读出
若数据不在内存中则读cache中的读cache,若命中则读出,并将读出的数据置于队首
若数据不在读cache中则读写cache,若命中则读出,并增加该数据的热点因子,当热点因子达到阈值则将数据放置读cache中
若数据不在写cache中则直接读硬盘,并增加该数据的热点因子,当达到阈值则将数据放置读cache中
写cache
OSD收到VBS的写请求时,会将数据写入cache的写cache中,同时写cache会根据刷盘周期或者达到水位值后将数据写到硬盘当中
FS支持大块直通,当数据大于256K时直接写入硬盘当中(大小可以修改)
网络平面
管理平面
FSM与FSA通信的平面
存储平面
OSD、VBS、MDC之间通信的平面
业务平面
OS与VBS通信的平面
部署模式
方式
融合部署
VBS与OSD部署在同一主机上,适用于对性能要求不高的场景,例如虚拟化应用
分离部署
VBS与OSD部署在不同主机上,适用于性能要求较高的场景,例如高性能数据库
使用
FusionSphere以及VMware场景都适用分离部署以及融合部署
软件的使用
在FC上添加存储接口
接入服务器
安装FSA
创建控制集群
创建存储池
存储类型
主存
SAS、SATA、SSD卡、SSD盘
缓存
NVDIMM、SSD卡、SSD盘、无
注意事项
主存选择SATA必须选择三副本
存储池扩减容
扩容
扩容存储服务器,扩容磁盘
减容
减容服务器
创建块客户端
FC使用FS方式
池
将整个FS存储池以资源池的方式挂载给FC使用,FC的数据存储类型为非虚拟化数据存储,但是支持虚拟化数据存储的高级特性
卷
在存储池中划分卷,以卷的形式使用SCSI或者ISCSI方式挂载给FC使用,FC的数据存储类型为SAN存储
SCSI和ISCSI
定义
SCSI是小型计算机系统存储接口,用于计算机与智能设备之间交互的通用的接口标准,而ISCSI是主机系统与存储设备之间数据交互封装在IP网络中的过程,SCSI和ISCSI是VBS提供的访问FS存储资源的两种方式,使主机能够使用到FS提供的存储空间
区别
使用方式上
SCSI通过系统的内部总线实现OS与VBS通信
ISCSI通过IP网络实现OS与VBS通信
性能损耗上
ISCSI需要进行封装以及解封装,在性能上相对SCSI较差
应用场景上
SCSI主要应用在主机能支持安装VBS的场景,比如FusionSphere
ISCSI主要应用在主机能不支持安装VBS的场景,比如VMware
VMware使用FS
在华为官网中下载CVM模板
在VMware平台中导入模板部署CVM虚拟机
根据FS配置要求修改CVM的规格,例如内存、CPU
若需要在CVM中部署OSD,则需要配置RAID卡和硬盘直通(使OSD进程能够对存储介质进行读写操作。需要直通的设备用作主存和缓存的RAID卡和SSD卡,服务器操作系统所在盘的RAID卡不能进行直通操作,否则将需要重新安装操作系统
设置CVM为自启动方式,配置相应的网络平面
在FSM中以添加服务器方式添加CVM,并安装FSA
在FSM中为CVM安装块客户端(VBS)并开启ISCSI开关,进行ISCSI端口配置
在ESXI主机上创建存储资源并关联主机,获取到wwn号(设备的全球唯一标识)
在FSM中创建主机,并配置启动器
创卷,以ISCSI方式映射到主机
在ESXI主机上发起连接,建立ISCSI连接,建立会话
在vsphere扫描存储设备并添加数据存储