|如果,腾讯云的一块硬盘被抽出……


最近小编老是会被问:如果抽出一块正常工作的服务器硬盘 , 结果会怎样?

    数据会不会丢?
    业务会不会受影响?
答案是 , 不会丢!不受影响!
【|如果,腾讯云的一块硬盘被抽出……】保护“使命重大”的硬盘 , 分两步走:
先判断硬盘状态 , 看看数据丢没丢
如果一块正常工作的硬盘被抽出 , 服务器首先会做出反应 。
服务器在硬盘读写数据时 , 设有特殊校验节点进行定时检查 。
校验节点是数据存储的“边界” , 节点之间的数据构成了存储的一个单位 。 服务器通过检查这些节点是否正常、完备 , 可以判断存储服务是否正常 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

如果抽出的硬盘重新插入后 , 服务器发现节点正常 , 就会判断数据没有缺失 , 硬盘会进入正常运行状态 。
但如果被抽出的硬盘正在读写数据 , 节点丢失 , 服务器会发起请求 , 申请替换新硬盘 , 并在其他硬盘上恢复损失的用户数据 。 (损坏硬盘的归宿 , 可点击:《 在腾讯云 , 有一个鲜为人知的硬盘毁灭计划…… 》)
如果数据丢了 , 怎么找回来?
如果被抽出的硬盘正在读写数据 , 怎么保证用户服务不受影响?
分情况 。
根据存储需求的不同 , 腾讯云为用户准备了CBS(云硬盘)、CFS(文件存储)、COS(对象存储)等多种服务来存储数据、运行业务 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

这些服务都使用多副本技术保障用户服务 。 但服务不同 , 技术也不同:
一种是COS使用的腾讯自研存储引擎YottaStore中采用的纠删码冗余技术 。
当用户写入1份数据时 , YottaStore技术会将其均匀分成若干份数据块、校验块 。 每个分组由k个数据块和n个校验块组成 , 最后打散存储到磁盘中 。
这些数据块和校验块分组数量可以多达两位数 , 分别放置在不同园区、不同机架、不同服务器的硬盘中 , 同一块硬盘上只放一个副本数据 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

如果检查到硬盘出现掉线或损坏等故障——YottaStore检测到某处数据块或校验块被判断为不可用时 , 就会立即停用这部分数据 。
紧接着 , 会用纠删码等技术将其他组的数据块、校验块重建丢失数据 , 并更新到其他硬盘当中 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

另一种是是腾讯自研存储产品CBS和CFS采用的「三副本技术」 。
CBS和CFS服务 , 会把用户存储数据 , 拆分成若干固定大小的数据块 , 写入不同机柜不同服务器的不同硬盘中 , 共有三个副本 。
如果硬盘被抽出 , 用户发起的请求 , 将指向正常工作的副本 , 用户服务不受影响 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

CBS和CFS的系统也会进行自检 。 检查到因硬盘故障(设备只读、节点宕机)或网络故障(如链路异常或断开、网络探测延迟增大等)导致其中一个副本不可用时 , 系统会将其剔除 。
三副本技术会自动发起副本恢复 , 在最短的时间内将用户数据恢复成三副本的工作状态 。
当然 , 如果因为一些其他原因 , 导致多副本或三副本全部丢失 , 不在本文讨论范围之内 。
|如果,腾讯云的一块硬盘被抽出……
本文插图

其实 , 服务器和底层存储技术方面的技术只是硬盘、用户数据保护中的冰山一角 。


推荐阅读