e-works数字化企业网  »  文章频道  »  基础信息化  »  云计算和虚拟化

腾讯云弹性块存储技术解密

2017/8/2    来源:腾云阁    作者:佚名      
关键字:云计算  腾讯云  存储  
云硬盘的数据存在云端,可以充分发挥云的能力,提供更丰富的功能,例如:快照,可以把云硬盘某一时刻的数据做快照,当数据发生异常是,用户可以任意的将数据回滚到这些快照时刻。

    数据组织:
 
腾讯云弹性块存储技术解密
 
    先看看数据组织中最基础的问题:数据怎么分片,或者说数据的分片粒度应该多大。
 
    如果数据分片粒度太小会那么路由信息太大,导致路由同步时机群的负担太大,特别是在两层分布式架构中,路由需要同步给成千上万的Client节点,过大的路由信息对总控节点崩溃。
 
    反过来如果数据分片太大,因为每个数据分片是分配给一个用户使用的,如果用户只写入4K数据,而分配一个1M的数据分片,那会造成存储系统空间的浪费,导致空间利用率低。
 
    为了解决这个矛盾,CBS在数据组织上引入了虚拟分区Partition的概念。在物理上硬盘被分为多了固定大小的Block,物理上每个Block属于一个硬盘,而在逻辑上又将多个Block组织为一个Partition,Block和硬盘的关系是固定的,但是Block和Partition的关系只是为了完成特定的功能需求而存在的。
 
    数据路由:
 
腾讯云弹性块存储技术解密
 
    基于Partition的数据组织方式,数据怎么路由呢?即数据怎么定位到存储的位置呢?
 
    当前端数据访问时,它携带diskid、blockid或者说lba、snap id(快照id号),CBS系统将这3个参数通过一致性哈希,计算出对应的Partition;而Partition和物理服务器、物理硬盘的对应关系是在集群初始化的时候配置的,这样前端的数据请求就路由到了需要存储的物理位置,这就是CBS基于虚拟分区Partition的数据路由方式。
 
    路由同步:
 
腾讯云弹性块存储技术解密
 
    在两层架构中,没有接入节点,实际上会导致所有的Client节点都会成为接入节点,因为每一个Client都需要有路由信息进行数据访问;而接入节点成千上万,需要总控节点和成千上万的Client去同步巨大的信息,实际上总控节点会被压垮。
 
    为了解决这个问题,CBS参考了一种懒汉做事的方法:尽量少做事、晚做事、非做不可的时候再去做。
 
    在CBS架构中:Master是个懒人,当Master总控节点发生路由变更的时候,本来需要将路由信息推送到所有的Driver模块,但是因为Master是个懒人,它只简单的把路由信息推送到Chunk模块;Chunk也是个懒人,Chunk收到路由推送之后,它也只是简单的将路由信息存到了本地;Driver发起数据访问的时候,Chunik检测IO中携带的路由版本和Chunk本身的路由版本是否一致;如果不一致,Chunk通知Driver需要路由更新,Chunk虽然懒,但很负责;Driver收到存储节点的通知,它尝试从存储节点Chunk更新路由;如果Chunk因为宕机或其他异常不能及时响应Driver的更新请求,Driver就向Master发起路由更新请求,Master具有最高的权威,它将正确的路由信息反馈给你Driver,最终完成路由同步;整个路由推送处处体现懒人风格,谁都尽量少做事、晚做事、非做不可的时候再去做,当然懒人没问题,但一定要是一个负责人的懒人。
 
    王银虎团队给这种懒人风格的路由推送算法起了个名字:lazy路由同步或者叫惰性路由同步。
 
    用虚拟分区Partition的方式进行数据组织和路由,用lazy路由同步的算法进行路由同步,从而解决了两层架构中最关键的数据组织、数据路由、路由同步问题。
 
    两层架构的效果怎么样?
 
    两层架构的CBS3.0已经上线,上线后普通云硬盘的成本降低46%;两层架构的CBS3.0提供了一个统一的平台,不仅支持通用的普通云硬盘,也支持高性能场景的高效云硬盘和SSD云硬盘。
 
    业界对比
 
腾讯云弹性块存储技术解密
 
    CBS在自身发展的同时,也在紧跟业界发展动态,例如目前开源里比较流行的ceph。
 
    CBS和ceph都是两层架构的实现。但是CBS在性能方面要远高于ceph。
 
    CBS支持精细化运维,CBS有完善的监控告警系统,但CBS只提供了一个简单的通用运维系统,如果使用ceph,需要在运维系统方面有巨大的投入。
 
    CBS在可控性方面也要远高于ceph,例如数据安全可控性,CBS在任何场景下都不能丢数据,数据安全是一种信仰,但是ceph在某些特定的故障场景,数据安全是没有办法保证的。
 
    当然ceph也有很多值得我们借鉴的东西:例如CBS是块存储平台(目前已经支持文件存储),而ceph一开始就是作为统一存储平台设计的,同时支持块存储、文件存储和对象存储;CBS的是镜像多副本存储,但是ceph在支持镜像多副本的同时,还支持纠删码,特别是一些成本特别敏感的应用场景是很有优势的。
 
腾讯云弹性块存储技术解密
 
    总结
 
    CBS的发展历程就是一个“简”的过程;在最新的两层架构设计中,体会到以简致胜的真谛,不做过度设计,提供用户真正需要的功能;所谓大道至简,简化系统架构,提供高性能、高可靠性、易用的服务,和用户创造共赢。
 
责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐