FusionStorage原理及组件

简介: FusionStorage原理及组件

目录

一、FS的部署模式

1)融合部署

2)分离部署

3)scsi和iscsi使用场景

二、FS的灾备

FS的高级特性

三、FS的DHT算法

四、存储池和卷

五、FS的可靠性和安全级别

可靠性

安全级别

六、VBS结构

scsi:将内核态VSC模块的scsi流引入VBS用户态

七、OSD结构

八、FS的IO流程

1)写IO

2)读IO

九、ZK的作用

MDC主备管理:

数据存储

数据同步

十、FS的视图

十一、FS组件交互过程

1)创建控制集群   自动ZK  控制MDC

2)创建存储池

3)创建块客户端


一、FS的部署模式


1)融合部署


VBS和OSD合部在同一节点


2)分离部署


VBS和OSD分开部署在不同的节点


3)scsi和iscsi使用场景


业务与VBS是否合部

如果合部---scsi

如果分开部署在不同节点----iscsi

无论是scsi还是iscsi,都支持融合部署和分离部署

通常在应用场景上考虑是融合还是分离,多在scsi场景考虑

scsi场景下

如果业务需要大量计算资源保障,此时考虑分离部署----关键业务系统,例如数据库

如果服务器主机有足够计算资源支持业务和FS的组件运行,此时考虑融合部署----云场景

融合部署的成本低于分离部署


二、FS的灾备


image.png

image.png

 

备份主要用来保证业务的安全性

容灾主要作用是保护业务的连续性

容灾又分为异地容灾和同城容灾

FS作为生产存储支持ebakcup或者第三方备份管理软件的备份


FS的高级特性


双活

hyper metro

远程复制(异步)

hyper replication

可以实现存储层容灾

image.png

三、FS的DHT算法


DHT(分布式哈希表,Distrubuted Hash Table

111  698d51a19d8a121ce581499d7b701668

112  7f6ffaa6bb0b408017b62254211691b5

将十进制的数,转化为2的128次方的数,就可以实现平均切随机

一个存储池对应一个DHT环(逻辑)

image.png

读写流程:

1.scsi流交给vbs--->vbs转换scsi流为key-value

2.对key值进行--->hash寻址

目的:将主机下发的IO平均且随机的落到存储池各个OSD对应硬盘上

也就是为了实现IO的负载均衡

3.经过hash得到一个2的32次方的数值--->模运算-->得到patition

目的:缩减表的尺度,加速查找DHT

4.查询由MDC维护的映射表记录的是patition和osd的关系patition--->得到osd

目的:解决坏盘或者扩容场景,准确定位patition对应的osd位置

5.osd做key-value到iscsi流的转化,做磁盘的读写操作

image.png

四、存储池和卷


存储池是由一组服务器本地硬盘构成,硬盘类型相同、容量相同、参数相同等限制(参考产品文档)

主存类型:SATA机械  SAS机械   SAS-SSD   SATA-SSD  NVME SSD盘、SSD卡

一块硬盘只能属于一个存储池

一个存储池可以划多个卷(划卷依赖vbs)

一个卷只能属于一个存储,不能跨存储池

卷可以通过scsi挂载给vbs或者iscsi映射给业务主机使用

一个主机可以使用多个卷,多个卷可以来自不同存储池


五、FS的可靠性和安全级别


可靠性


副本机制:

2副本--50%   3副本--33.3%

EC机制: M=2,3,4  N最大22

EC(Erusure code)算法,分布式raid算法,可以跨界点raid

N+M   坏M块硬盘或者M个节点数据不丢失,业务不中断

N是数据分片

M是校验分片

image.png

N+M:B   坏M块硬盘或者B=1个节点数据不丢失,业务不中断

22+2保护  高达91%空间利用率


image.png

安全级别


FSM配置界面创建存储池仅支持服务器级和机柜级

服务器级安全:数据副本或者EC的数据分片一定不会放在同一个服务器节点内

机柜级安全:数据副本或者EC的数据分片一定不会放在同一个机柜内

机房级安全:数据副本或者EC的数据分片一定不会放在同一个机房内

不同的存储池可配置不同的数据保护方式和安全级别


六、VBS结构


image.png

scsi:将内核态VSC模块的scsi流引入VBS用户态


VBP:scsi流转换成key-value

client:key--hash---mod--patition--查io-view--主OSD 走存储网络平面将io流转发至主OSD

VBM:卷和快照生命周期管理操作  创建卷、挂载卷、卸载卷、查询卷、删除卷、创建快照、删除快照、基于快照创建卷等

hearbeat:心跳模块  通过存储平面与MDC交互心跳包  使MDC维持VBS view状态视图


七、OSD结构


image.png

RSM:复制协议实现。

SNAP:实现卷与快照的IO功能、磁盘空间的管理。

CACHE:实现cache功能。

AIO:实现异步IO下发到底层SMIO模块和通过调用SMIO接口来监控介质故障。

SMIO:下发到IO到实际的物理介质、监控物理介质故障、获取磁盘信息。


八、FS的IO流程


1)写IO


APP--》OS--》scsi/iscsi---》VSC内核模块接收---》scsi initiator--》scsi target---》VBP(LUN ID/LBA ID/length-->key data-->value)

---》client(key--hash--mod--patition--查io view--主OSD)---》主OSD(key--hash--mod--patition--查patition view--备OSD)--》主OSD一方面下发写IO到本端cache,一方面通过RSM复制IO到备OSD---》主备OSD同步写cache成功--》由主OSD返回VBS写成功(回写),VBS返回APP写成功。


2)读IO


APP--OS--scsi/iscsi---VSC内核模块接收---scsi initiator--scsi target---VBP(LUN ID/LBA ID/length-->key data-->value)---client(key--hash--mod--patition--查io view--主OSD)---主OSD

1、主OSD正常,先读cache,如果cache读命中,返回读成功,如果未读命中,主OSD向主存disk查询读数据。

2、主OSD异常,MDC会检测硬盘异常触发退盘,修改视图(OSD view  IO view  Patition view),指导VBS引流到备OSD(新主OSD读数据),先读cache,如果cache读命中,返回度成功,如果未读命中,主OSD向主存disk查询读数据。


九、ZK的作用


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


MDC主备管理:


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


数据存储


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


数据同步


数据更新到主ZK,由主ZK自动同步到备ZK,保证主备ZK数据同步,一旦ZK发生主备切换,业务不受影响

为什么奇数部署ZK

在ZK集群中,如果大于等于半数ZK节点宕机那么整个集群不可用

比如部署4个ZK,是只允许坏一个ZK

部署3个ZK,也是只允许坏一个ZK

部署3台和4台都是只允许一台宕机,既然是同样的容错能力,那么考虑节省服务器资源,所以推荐奇数部署

帮助MDC选主

持久保存MDC管理的系统元数据

帮助MDC实现元数据同步


十、FS的视图


VBS view   VBSid---VBS status

OSD view   OSDid---OSD status

IO view    patitionid----主OSD

Patition view   patitionid---主OSD/备OSD--主备OSD的status

视图持久化保存在ZK盘或者ZK分区

MDC所在主机内存缓存所有视图

VBS所在主机内存缓存io view

OSD所在主机内存缓存 patition view


十一、FS组件交互过程


1)创建控制集群   自动ZK  控制MDC


ZK启动形成ZK集群,MDC找ZK注册,最先注册成功的为主MDC,MDC与ZK位置心跳,MDC通过ZK形成集群关系

主MDC故障,其他MDC与ZK联动重新注册选举主MDC

备MDC故障,上报FSM,管理员看到进程异常告警及时处理


2)创建存储池


主MDC确定是否需要启动新的归属MDC管理该存储,或者用现有MDC作为该存储池归属MDC管理存储池

如果归属MDC故障,由主MDC决定归属MDC的接替者

一个归属MDC最多管理2个存储池

启动OSD,OSD向MDC查询自己的归属MDC,向归属MDC上报状态,维持心跳

如果OSD异常,超过5S,归属MDC检测OSD异常修改视图,数据引流、数据重建


3)创建块客户端


VBS启动时查询主MDC,向主MDC注册

主MDC维护了一个活动VBS的列表,主MDC同步VBS列表到其它MDC,以便MDC能将OSD的状态变化通知到VBS

VBS向主MDC确认自己是否为leader(最先注册成功的为主)

VBS从主MDC获取IO View

主VBS向OSD获取元数据,其它VBS向主VBS获取卷的元数据。


相关文章
|
消息中间件 负载均衡 算法
聊聊 RocketMQ中 Topic,Queue,Consumer,Consumer Group的关系
本文详细解析了RocketMQ中Topic、Queue、Consumer及Consumer Group之间的关系。文中通过图表展示了Topic可包含多个Queue,Queue分布在不同Broker上;Consumer组内多个消费者共享消息;并深入探讨了集群消费与广播消费模式下Queue与Consumer的关系,以及Rebalancing机制在实例增减时如何确保负载均衡。理解这些关系有助于更好地掌握RocketMQ的工作原理,提升系统运维效率。
3395 2
|
存储 Linux
Linux 本地yum源配置 (详简篇)
Linux 本地yum源配置 (详简篇)
6580 1
国内开源镜像站点
阿里开源镜像站:https://opsx.alibaba.com/mirror 网易开源镜像站:http://mirrors.163.
41172 1
|
缓存 Linux 开发工具
CentOS 7- 配置阿里镜像源
阿里镜像官方地址http://mirrors.aliyun.com/ 1、点击官方提供的相应系统的帮助 :2、查看不同版本的系统操作: 下载源1、安装wget yum install -y wget2、下载CentOS 7的repo文件wget -O /etc/yum.
270279 0
|
存储 SQL 算法
MySQL索引从基础到原理,看这一篇就够了
MySQL索引从基础到原理,看这一篇就够了
18771 6
MySQL索引从基础到原理,看这一篇就够了
|
安全 Linux 网络安全
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
【工具使用】几款优秀的SSH连接客户端软件工具推荐FinalShell、Xshell、MobaXterm、OpenSSH、PUTTY、Terminus、mRemoteNG、Terminals等
140159 0
讲真的,遇到接口自协商故障,可以试着这样处理!
讲真的,遇到接口自协商故障,可以试着这样处理!
941 1
|
Ubuntu 网络安全 Docker
OpenSatck Ironic实现裸机管理
OpenStack Ironic项目
4727 0
|
存储 传感器 SQL
MRS IoTDB时序数据库的架构设计与实现(总)
MRS IoTDB是FusionInsight MRS大数据套件最新推出的时序数据库产品,其领先的设计理念在时序数据库领域展现出越来越强大的竞争力,得到了越来越多的用户认可。为了大家更好地了解MRS IoTDB,本文将会系统地为大家介绍MRS IoTDB的来龙去脉和功能特性,重点为大家介绍MRS IoTDB时序数据库的整体架构设计与实现,现在来为大家介绍MRS IoTDB的整体架构设计。
1281 0
MRS IoTDB时序数据库的架构设计与实现(总)
|
数据采集 人工智能 数据可视化
复盘丨中建三局:在数字世界里盖一座摩天大厦
建筑业几乎可以和农业相比,争夺数字化转型倒数的“桂冠”。而当古老的建筑行业遇上新兴的数字技术,新的故事已然在谱写。 建筑行业的数字化不是单点问题,而是全局问题,所以必然需要从顶层至底层的方法论,同时也要找到小场景的切入口,切实解决生产中的疑难杂症。中建三局一公司果断地将所有的数据和应用全部放在阿里云上,将原来的软件进行重构,显示出绝对的魄力。
1292 0
复盘丨中建三局:在数字世界里盖一座摩天大厦