858 字
4 分钟
分布式块存储
  • MDBS(MacroSAN Distributed Block Storage):宏杉分布式块存储,通过组织服务器的本地硬盘,提供高性能和高可靠性的存储业务

  • 存储池:存储池是一种逻辑结构,将多个磁盘组成一个存储池,然后进行逻辑划分,主要用于数据隔离。存储池安全级别支持硬盘级(默认支持)、节点级、机柜级

  • 卷:卷是存储池的逻辑划分,通常一个卷对应一个逻辑磁盘,卷大小必须小于等于存储池大小

  • RCache(读缓存):每个节点固定划分512MB内存作为卷的读缓存,单个Cache块大小为64KB。支持对单个卷启用禁用RCache。RCache能有效提升性能

  • SSD读写缓存:选用SSD(NVMe/SAS/SATA)作为缓存盘,每块SSD盘均匀划分出N个区,每个分区对应一个HDD的数据盘,用作数据盘的读写缓存。目前2U服务器暂定N=6,即1块SSD对应6块HDD,SSD划分6个分区

  • OSD:每个OSD对应一个HDD硬盘,运行在服务器上,是一个管理HDD的服务进程,负责存储数据、读写数据

  • 读IO流程(仅可能从本地副本读取数据): img.png

      1. 从内存读Cache中获取数据,若命中,则直接返回数据,否则继续下一步
      1. 从SSD Cache中获取数据,若命中,则返回数据,并且如果该IO数据达到一定的读取次数将被缓存到RCache中;否则继续下一步
      1. 从HDD硬盘中获取数据,返回数据,如果该IO数据达到一定的读取次数将被缓存到SSD Cache中
  • 写IO流程(所有写IO均需经过内存读缓存,若有写命中读,则将对应读数据置为无效(旧数据已过时)):

    • 小IO:将小IO缓存在SSD Cache后,完成本节点的写操作。当SSD写缓存中的数据达到一定量或者一定周期后,批量将数据写入HDD
    • 大IO:直接透写入HDD
  • 多副本:MDBS利用多副本机制保证数据可靠性,同一份数据可以复制保存为2~3个副本;创建存储池时,可选择副本数量(2或3),以及数据可读写策略(1/3,2/3):指在决策过程中,需要多少个副本达成一致才能进行下一步。 如2/3,一次写操作必须至少成功写入2个副本,这次写操作才会被系统认为是成功的。一次读操作必须至少从2个副本读取到数据,并比对一致后,才能将结果返回给用户

  • 精简配置:可创建容量大于存储池物理容量的逻辑卷,以满足特殊的容量规划需求,再按需分配空间,提升空间的利用率

  • 快照:将用户的卷数据在某个时间点的状态保存下来,后续可恢复数据。MDBS快照数据在存储时采用ROW(Redirect on write)写时重定向机制,不会造成源卷性能下降 img_1.png

    • 创建快照时会将源卷拷贝一份,快照卷指向源卷相同的存储空间
    • 当源卷发生写入时,源卷会将原来的存储空间拷贝出一份用于写入并替代原存储空间(COW,copy on write 写时拷贝)