文章

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

2017-08-02佚名

2061阅
云硬盘的数据存在云端,可以充分发挥云的能力,提供更丰富的功能,例如:快照,可以把云硬盘某一时刻的数据做快照,当数据发生异常是,用户可以任意的将数据回滚到这些快照时刻。
    什么是云硬盘?
 
    云硬盘,Cloud Block Service,简单来讲就是云上的硬盘。
 
    云硬盘提供硬盘所有的能力:就像大家个人电脑中的硬盘,可以创建文件系统,可以存电影,可以读写文件;甚至更多:因为云硬盘的数据存在云端,可以充分发挥云的能力,提供更丰富的功能,例如:快照,可以把云硬盘某一时刻的数据做快照,当数据发生异常是,用户可以任意的将数据回滚到这些快照时刻。
 
    用户只需要在腾讯云上购买一台云主机,就可以方便的使用腾讯云硬盘。
 
    如何实现云硬盘(弹性块存储)系统?
 
    CBS云硬盘起初是依赖腾讯已有的3个分布式系统:TFS提供冷数据存储、TSSD提供热数据存储和CKV提供分布式锁,用这三个分布式系统做简化整合从而产生了CBS 存储后台。
 
    其实最开始CBS是将这3个分布式存储系统拼凑在一起,并在前端封装一个iSCSI的块存储服务,这就是CBS1.0。
 
    但是这个1.0的产品依赖3个庞大的分布式系统,IO链、运维支撑链太长,系统臃肿,可用性极差;所以又把这3个分布式系统在代码层面做了简化整合,从而产生了CBS2.0。
 
    CBS2.0的架构是怎样的?
 
    首先,CBS2.0前端是一个接入集群:
 
    Client,即客户端,让服务器呈现一块硬盘;Proxy,即块设备的后台接入层,前端的云硬盘通过它才能将数据放到云端;Client和Proxy专业名次叫iSCSI initiator和iSCSI target,就像大家比较熟悉的CS结构一样;Master,集群总控节点,控制和协调整个集群的工作。
 
    同时后端是一个分布式存储集群:
 
    就像经典的分布式存储系统架构,首先接入模块Access提供接入访问服务;存储模块Chunk负责数据存储;同样它也是一个分布式系统,同样也有一个总控节点,就是Master。
 
腾讯云弹性块存储技术解密
 
    CBS2.0系统的运营状况怎样?
 
    目前CBS2.0的系统在线上已经安全运行了很久;为数十万商业客户提供服务;几十万块云硬盘在线上安全运营;存储规模百PB级别。
 
    大家可能对这个规模没有概念,打个比方,如果把存储的数据用书本记录下来的话,那将耗尽地球上的森林。这个规模还在快速增长。
 
    腾讯云硬盘提供3种规格的产品:HDD介质的普通云硬盘、HDD+SSD混合介质的高效云硬盘和高性能的SSD云硬盘;产品可靠性达到8个9的级别,在业界处于领先地位。
 
    CBS2.0的运营过程中的难题?
 
    首先是成本问题:成本是永恒的主题,特别是互联网海量存储中,任何的成本优化都会带来巨大的经济收益,特别是规模快速增长阶段的腾讯云硬盘。
 
    还有一个问题是高性能场景的使用性问题:在前边的架构图里可以看到,腾讯云硬盘的数据请求从用户到数据落地存储,经过了两个集群、四个层次,每一层的网络延时在几十个微秒级别,而这和作为高性能场景的存储介质SSD的操作时延在一个数量级,所以数据在访问路径上的耗时占比就太大了。
 
    如何去解决这些问题?
 
    契合文章的主体:大道至简,做减法,简化系统,去掉接入层。
 
腾讯云弹性块存储技术解密
 
    具体来说:上图左边是CBS2.0,也就是当前系统上规模运营的系统。它由接入系统和存储系统两个分布式集群组成;而腾讯云硬盘是个存储系统,接入是为了支撑存储的存在而存在的。
 
    所以最直接的想法,把接入层去掉,简化成两层架构,只保留Client客户端在主机上呈现硬盘设备,Chunk模块提供数据落地存储,Master总控节点负责整集群的管理。
 
腾讯云弹性块存储技术解密
 
    上图就是两层架构实现的CBS3.0的软件逻辑架构,和物理架构的三个节点对应:
 
    Driver,对应物理架构中的Client模块,在软件实现上称为Driver。
 
    Chunk,提供3副本存储的存储引擎。
 
    Master,总控节点,多机互备提供高可用性。
 
    两层架构的CBS3.0的技术难题?
 
    一、数据组织:数据按什么样的数据结构存在后台分布式系统中。
 
    二、数据路由:怎么确定数据存放的位置。
 
    三、路由同步:路由信息怎么在集群节点之间同步。
 
    四、数据多副本:作为一个高可靠性的存储系统,CBS三副本数据存储在不同机架的服务器上。
 
    五、故障恢复:海量存储中,硬件故障是一种常态,怎么在故障中快速恢复服务和数据。
 
    六、数据迁移:设备异常时或者集群扩容时,怎么讲数据从一个服务器迁移到另一个服务器。
 
    这些都是分布式存储系统设计中经常碰到的难题,而和两层分布式架构关系最紧密的是前三条,所以重点介绍:数据组织、数据路由和路由同步。
 

责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
读者评论 (0)
请您登录/注册后再评论