• 概念
    1. 分布式存储软件,提供文件、对象、块三种存储服务
    2. 提供SCSI、ISCSI存储接口:提供NFS、CIFS、FTP等文件存储接口
    • 块存储服务组网结构
    1. 管理平面:FusionStorage Manager——FusionStorage Agent
    2. 存储平面:MDC、VBS、OSD之间通讯网络
    3. 业务平面:应用访问VBS使用的网络平面
    • 组成
    1. FusionStorage Manager(FSM):管理模块,虚拟机主备部署,提供告警、监控、日志、配置等操作系统维护功能。
    2. FusionStorage Agent(FSA):代理进程,在各节点部署,实现各节点间及FSM互通,包含MDC,VBS、OSD,三种进程

    MDC(MetaData Controller):元数据控制

    • 部署在3、5、7节点的ZK盘上,形成控制集群。ZK(Zookeeper):集群管理软件,奇数部署,投票选主,主ZK写,同步到非主、非只读ZK。ZK做MDC底层,管理主备MDC,MDC数据同步
    • MDC总数量最多96个,每创建一个存储池自动部署一个归属MDC,每个MDC可管理两个存储池
    • MDC实现对分布式集群状态控制、以及控制数据分布式规则,数据重建规则
    • VBS(Virtual Block System):虚拟块存储管理组件
    • 负责卷元数据管理,提供分布式集群接入服务,使计算资源能够通过VBS访问分布式存储资源。
    • 部署再使用存储资源的服务器上
    • VBS提供块存储服务类型

    SCSI:直接再HOST OS上部署VBS,IO通过SCSI总线到达VBS。KVM、LINUX、XEN
    ISCSI:通过IP网络去访问VBS。IO通过封装再IP网络传输,到达VBS后封装。适用于大多数场景,性能次与SCSI
    OSD(Object Storage Device):对象存储设备

    1. 执行具体IO
    2. 一般一个硬盘部署一个OSD,SSD卡可对应多个OSD
    • DHT(Distributed Hash Table)

    数据路由算法

    • Hash环:0~2^32-1环形存储空间(约4G)
    • Partition:Hash环平均分成3600份,每份一个partition,每个partition对应一个OSD,partition中存储key
    • key:LUN ID+LAB ID/1M 取整 余数=offset
    • LAB ID:数据块在LUN中的偏移量
    • offset:数据在Value块内的偏移量
    • LUN空间切割成为1M的块,硬盘的Value区也切割成1M的块,形成映射关系,每个1M的空间对应一个Key
    • Key-Value:每个Key对应硬盘中1块区域(1M空间)

    读写数据

    • 写数据
    1. VBS收到写IO,将数据转为Key-Value
    2. 讲Key存放到paritition
    3. 通过IO View找到主OSD,将数据写入OSD
    4. 主OSD通过Parition View找到备OSD,将数据同步到备OSD
    • 读数据
    1. VBS收到读IO,算出Key,offer,Len(长度)
    2. 根据Key找到对应的partition,根据Paritition ID通过 IOVIew找到主OSD
    3. 从主OSD对应的硬盘中找到Key对应的Value块,根据offset定位数据的起始位置,根据Len算出文件的结尾

    存储池内数据同步、重构由OSD完成——当主OSD故障,由MDC指定新主
    Cache

    • 主存为机械硬盘,必须配缓存
    • 统一资源池中的存储节点上,缓存的类型,数量必须一致
    • 读Cache:内存——读Cache——HDD
    • 写Cache:内存——写Cache——HDD(落盘) 落盘:周写、水位填写、大块直通(默认256K,可修改)

    组件交互

    • MDC:系统启动时,MDC与ZK互动决定主MDC,主MDC和其他MDC相互监控心跳,主MDC指定备MDC,当主MDC故障去升备MDC为主。
    • OSD:OSD启动时向MDC查询归属MDC,向归属MDC报告状态,归属MDC把状态变化发送给VBS,当归属MDC故障时,主MDC指定一个MDC接管,最多两个池归属一个MDC。
    • VBS:VBS启动时查询主MDC,向主MDC注册,并确认之际是否为Leader;VBS从主MDC获取IO View,主VBS向OSD获取元数据,其他VBS向主VBS获取元数据。

    传统存储与FusionStorage的区别

    • 个人总结
    1. 机头:传统存储一般2—16可线性扩展
    2. 传统存储有元数据瓶颈,FusionStorage分布式结构
    3. 传统存储有IO瓶颈(控制器)
    4. Cache瓶颈,传统存储为控制器内存。FusionStorage分布式Cache
    5. 数据重建,FusionStorage采用分布式结构,重建速度快
    6. FusionStorage适用大规模场景,小规模场景适用传统存储
    7. FusionStorage至少3节点部署,二副本,三副本
    • IE PPT
    • 高扩展性

    传统存储:扩展存储需要增加控制器个数更换设备
    FusionStorage:容量与线性增加,性能超越中高端存储

    • 高性价比

    传统存储设备:成本随性能提升大幅增加,存储更新换代速度快
    FusionStorage:支持融合部署,通用服务器堆叠扩展节约成本;网络扁平化,扩展简单;已有设备利旧,保护投资。

    • 高可靠性

    传统存储设备:硬盘故障需立即更换,实时手动恢复
    FusionStorage:提高机柜间、服务器间、可靠性、故障业务无影响;硬盘故障无需手动管理,自动数据重建恢复

    • 并行快速数据重建

    传统存储设备:数据重建慢(1T需要12个小时)
    FusionStorage:分布式全资源池跨机柜、跨服务器重建数据(重建1T小于10min)

    • 部署方式

    分离部署:OSD与VBS不同节点
    融合部署:OSD与VBS同节点

    • 单存储池服务器数

    2副本:3—16台服务器 12~96块硬盘
    3副本:4~255台服务器 12~2048块硬盘
    机柜级至少要12台服务器,超64台服务器必须选择机柜级
    服务器之间硬盘数相差不能超过2块且容量不能超过20%