个人可以用腾讯云干嘛(腾讯云可以注册公司吗)〔腾讯云个人账号可以备案企业吗〕

21CTO社区导读:

本文为TEG TALK上的分享整理之内容 ,内容包罗 腾讯云云硬盘产物 (CBS)的背景 体系 的演进进程 、核心 技能 以及大道至简的方法论。

什么是云硬盘?

个人可以用腾讯云干嘛(腾讯云可以注册公司吗) 个人可以用腾讯云干嘛(腾讯云可以注册公司吗)〔腾讯云个人账号可以备案企业吗〕 新闻资讯

云硬盘,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三副本数据存储在差别 机架的服务器上。

五、故障规复 :海量存储中,硬件故障是一种常态 ,怎么在故障中快速规复 服务和数据 。

六 、数据迁徙 :装备 非常 时大概 集群扩容时,怎么讲数据从一个服务器迁徙 到另一个服务器。

这些都是分布式存储体系 计划 中常常 碰到 的困难 ,而和两层分布式架构关系最精密 的是前三条 ,以是 重点先容 :数据构造 、数据路由和路由同步。

数据构造 :

先看看数据构造 中最底子 的题目 :数据怎么分片,大概 说数据的分片粒度应该多大。

假如 数据分片粒度太小会那么路由信息太大,导致路由同步机遇 群的负担太大 ,特别 是在两层分布式架构中,路由必要 同步给成千上万的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的发展进程 就是一个“简 ”的过程;在最新的两层架构计划 中 ,领会 到以简致胜的真谛,不做太过 计划 ,提供用户真正必要 的功能;所谓大道至简 ,简化体系 架构,提供高性能、高可靠性 、易用的服务,和用户创造共赢。

作者:Yh , 2010年参加 腾讯,有12年的存储履历 ,在弹性块存储技能 方面履历 丰富。