type
status
date
slug
summary
tags
category
icon
password
FusionStorage
架构
管理组件
1、FSM:管理,提供web界面
2、FSA:代理进程。1、实现FSM与节点的通信。2、包括三种进程,MDC\VBS\OSD。需要根据节点的用途不同,启用不同进程
存储组件
1、MDC:
1.1 控制节点MDC:元数据(Fusionstorage的视图)控制,存储集群数据分布式规则、重建规则。部署于系统盘中,元数据存储于ZK盘中。数量3、5、7。
1.2 存储节点MDC:管理存储池。
总的MDC数量3-96。存储池1-288,一个MDC可以管理多个存储池。
2、VBS
存储池块服务的入口。SCSI\ISCSI
卷和快照的管理。管理对应的卷元数据。(在FS中,卷元数据)1-4096个
内部子组件:
2.1 SCSI:将SCSI\ISCSI从OS内核中引入VBS。
2.2 VBP:将SCSI转化为KEY-VALUE
2.3 Client:对key值hash,对hash值取mod,每份是一个partition,查视图2.4 VBM:卷和快照的管理
2.5 Heart-beat:维持与MDC的心跳
3、OSD
3.1 RSM:主备OSD的同步写
3.2 cache:实现FS的读写cache
3.3 SMIO:实现磁盘的管理
组件交互关系
系统启动时,ZK选主,超过半数的投票机制。
控制节点的MDC与ZK互动决定主MDC。谁先注册,谁为主MDC。
主MDC与其它MDC相互监控心跳,主MDC决定某MDC故障后接替者。其它MDC发现主MDC故障又与ZK互动升任主MDC,同样谁先注册,谁为主MDC。
OSD启动时向控制节点MDC查询归属MDC(存储节点MDC),向归属MDC报告状态,归属MDC把状态变化发送给VBS。
当归属MDC故障,主MDC指定一个MDC接管,最多三个池归属同一个MDC
VBS启动时查询主MDC(实际VBS的配置文件中保存了控制节点MDC的IP,轮询所有控制节点MDC,寻找主MDC),向主MDC注册(主MDC维护了一个活动VBS的列表,主MDC同步VBS列表到其它MDC,以便MDC能将OSD的状态变化通知到VBS)向MDC确认自己是否为leader(VBS用于卷元数据修改,多个VBS同时修改,会有冲突问题,需要选举leader)
VBS从主MDC获取IO View,主VBS向OSD获取元数据,其它VBS向主VBS获取元数据
视图
名字 | 功能 |
partition view | 记录partition与主备OSD的关系,及OSD的状态 |
IO view | 相当于partition view的子集,记录parititon与主OSD的关系 |
OSD view | 记录OSD的列表,及状态 |
VBS view | 记录VBS的列表,及状态 |
DHT算法
1、OS发出SCSI\ISCSI到VBS
2、由VBS的SCSI模块接收SCSI。
3、由VBS的VBP模块将SCSI四元组(host_id/channel_id/target_id/lun_id)和该IO在块设备上的offset,读写的数据长度len唯一标识一个IO,结合起来,变成了key,再加上data,形成key-value格式。
4、由VBS的Client模块,对key值hash,得到2^32的hash值,对hash值取mod,变为3600份,每份是一个partition,查视图,首先查IO view,得到partition对应的主OSD。
4.1、如果是读的话,进入下一步
4.2、如果是写的话,则由主OSD再次进行DHT算法,查看partition view,得到主备的OSD。OSD通过RSM进行同步写。
5、进行相应cache过程。
5.1、读cache,内存->ssd读cache->ssd写cache->hdd
5.2、写cache
5.2.1、小IO,直接写入ssd cache。后期还会周期写、水位值下盘。
5.2.2、大于256K的IO,则直接写硬盘。
6、key-value发送至硬盘,查询磁盘的metadata区域,得到key值所对应的data区域,进行相应IO。
副本
副本是针对partition实现,可以是两、三副本。
快速数据重建
1、传统RAID:比如RAID5,多到1恢复过程,恢复速度取决于热备盘的速度
2、Fusionstorage:本身对partition做多副本,副本会均衡落在不同节点的不同硬盘上。当某块硬盘、某个节点故障以后,相当于是OSD故障,OSD与MDC有心跳关系。自动在后台启动数据修复。多到多的并行恢复。速度极快。
补充:当硬盘出现坏道导致数据损坏。只会出现某些数据无法读取。FS也有相应修复机制:在读数据时,当OSD发现数据损坏,会根据partition view,找到备的OSD,先读取正常的数据返回,并缓存。后续根据缓存的数据,在主OSD的disk中,修复数据。
cache
数据读写加速。
计算机中,程序通常是存放于硬盘中,硬盘速度太慢,CPU速度最快,所以如果直接在硬盘运行程序,系统速度受限于硬盘。所以在计算机中,出现了cache。
狭义cache:CPU中的缓存L1\L2\L3,内存
广义cache:任何速度比HDD硬盘快的介质,比如SSD
在Fusionstorage支持的CACHE:内存(读cache)、NVDIMM、SSD卡、SSD盘按照性能:内存>NVDIMM>SSD卡>SSD盘
按照价格:NVDIMM>内存>SSD卡>SSD盘
内存是易失性介质,断电会丢失数据,所以出现了NVDIMM(带电池的内存)为什么读使用内存做为cache,写不使用内存做为写cache?
因为写cache的数据,在硬盘没有,也就是只有cache中有,一旦内存断电,数据丢失。
读cache
1、内存
2、SSD读cache
3、SSD写cache:在SSD写cache中,会存在一部分数据,没有落盘。
4、HDD
在2、3、4中,会有热点因子机制。数据每访问一次,会增加热点因子,热点因子达到一定量后,数据就被认为是热数据。把热数据缓存到SSD中。同时会将长时间未被访问的数据移出SSD
在1中,使用LRU机制,当有热数据缓存进来,会最后面的数据移出。数据被访问,就被提到队列最前面。
写cache
1、将数据写入SSD写cache,完成写动作。
2.1 周期写,每隔一定周期,将写cache中的数据,刷入HDD硬盘
2.2 水位值写,如果未到周期,写cache中数据超过一定水位值,刷入HDD硬盘还支持大块直通,数据大于256K,则直接写入HDD硬盘。
cache共享
1、传统存储不共享
2、Fusionstorage也不共享(不能够跨服务器访问),有时候会认为是分布式共享(从OS角度看,每次IO时,会均衡打散至若干个节点的硬盘,每个节点都有自己的cache,可认为是共享的)
块存储接口
由VBS提供的两个协议:1、SCSI 2、ISCSI
SCSI:小型计算机内部总线。计算机直接访问硬盘使用
ISCSI:封装在以太网上的SCSI。比如用于服务器访问IPSAN的lun
区别 | SCSI | ISCSI |
VBS是否直接部署在主机OS上 | 是 | 否 |
应用场景 | FC、KVM、linux等 | windows、esxi等 |
性能 | 好 | 封装、解封装,性能较差 |
资源占用 | 主机需要预留资源 | 不需要 |
注意:FusionCompute\kvm\linux也可以使用ISCSI
内部并非一定比外部快
融合、分离与是否是SCSI\ISCSI没有联系
融合部署、分离部署
融合部署:VBS和OSD安装在一起
分离部署:VBS和OSD不安装在一起
部署FS的一些注意事项
1、在vmware场景下CVM需要直通硬盘、raid卡
2、在vmware场景下CVM需要开机自启
3、在vmware场景下CVM需要配置高规格
4、某些raid卡在FS下面,会导致无法认识硬盘。需要做单盘raid0
FS的虚拟化特性
FS的存储虚拟化特性是依赖于FS本身,而不依赖于主机或者虚拟化文件系统。
FS本身的DHT算法
1、精简配置
天然支持:不需要依赖CNA添加虚拟化文件系统
性能不下降:传统存储会碎片化、添加文件系统,性能下降
2、FS采用ROW快照性能不下降
传统存储COW写性能下降,ROW读性能下降,快照次数越多,性能下降越快,会限制快照个数。快照会导致碎片化。
3、链接克隆
4、卷迁移
同一个FS的不同存储池。不同FS则不可以
故障容忍级别
1、跨服务器
2、跨机柜(注意ZK也需要部署在不同机柜上)
3、跨机房(实际上不支持)
FS的可靠性
类型 | 实现 |
数据可靠性 | 二、三副本,副本与副本间通过RSM模块保证强一致性,节点、硬盘故障,快速数据重建、坏道恢复 |
故障容忍级别 | 跨服务器、机柜、机房等 |
组件可靠性 | FSM主备、FSA\MDC\VBS\OSD\ZK集群,故障恢复机制 |
掉电保护 | 使用非易失性介质,保存缓存、元数据 |
其他 | 快照 |
FS相比传统存储的优势?
ㅤ | 传统存储 | FS |
控制
器 | 2-16控 | 1-4096,支持线性扩展 |
性价
比 | 专用设备,价格较高 | 通用设备,利旧。通过使用廉价的HDD配合CACHE,仍然有较高的性能 |
IO、
元数
据 | 受限于归属控制器 | 分布式dht算法 |
cache | 内存,一般GB级别 | 可以使用大容量SSD,可以轻易达到TB级别 |
数据
重建 | 盘级虚拟化技术(RAID),重建速度慢 | 多点到多点并发重建,较快 |
管理 | 数据中心可能有多套不同厂商存储,不易于统一管理 | 软件与硬件解耦,易于管理 |
... | ㅤ | ㅤ |
cache:新的高端存储,cache可以轻易达到TB级别。
某些存储也支持SSD做为cache。比如华为smartcache,利用SSD做为读cache。
数据重建:新存储中,基本不会直接使用RAID,比如华为RAID2.0+(先分再合、再分再合),也是多到多的并发重建,速度与FS相当
- Author:always1ov
- URL:https://always1ov.com/article/%EF%BC%88%E6%97%A7%EF%BC%89%E5%8D%8E%E4%B8%BA%E4%BA%91%E8%AE%A1%E7%AE%97%E7%AC%94%E8%AE%B0%EF%BC%88%E4%BA%94%EF%BC%89
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts
