阅读本文大概需要 3 分钟。
来自:腾讯云
最近小编老是会被问:如果抽出一块正常工作的服务器硬盘,结果会怎样?
数据会不会丢?
业务会不会受影响?
答案是,不会丢!不受影响!
保护“使命重大”的硬盘,分两步走,下面以腾讯云为例:
先判断硬盘状态,看看数据丢没丢
如果一块正常工作的硬盘被抽出,服务器首先会做出反应。
服务器在硬盘读写数据时,设有特殊校验节点进行定时检查。
校验节点是数据存储的“边界”,节点之间的数据构成了存储的一个单位。服务器通过检查这些节点是否正常、完备,可以判断存储服务是否正常。
如果抽出的硬盘重新插入后,服务器发现节点正常,就会判断数据没有缺失,硬盘会进入正常运行状态。
但如果被抽出的硬盘正在读写数据,节点丢失,服务器会发起请求,申请替换新硬盘,并在其他硬盘上恢复损失的用户数据。
如果数据丢了,怎么找回来?
如果被抽出的硬盘正在读写数据,怎么保证用户服务不受影响?
分情况。
根据存储需求的不同,腾讯云为用户准备了CBS(云硬盘)、CFS(文件存储)、COS(对象存储)等多种服务来存储数据、运行业务。
这些服务都使用多副本技术保障用户服务。但服务不同,技术也不同:
一种是COS使用的腾讯自研存储引擎YottaStore中采用的纠删码冗余技术。
当用户写入1份数据时,YottaStore技术会将其均匀分成若干份数据块、校验块。每个分组由k个数据块和n个校验块组成,最后打散存储到磁盘中。
这些数据块和校验块分组数量可以多达两位数,分别放置在不同园区、不同机架、不同服务器的硬盘中,同一块硬盘上只放一个副本数据。
如果检查到硬盘出现掉线或损坏等故障——YottaStore检测到某处数据块或校验块被判断为不可用时,就会立即停用这部分数据。
紧接着,会用纠删码等技术将其他组的数据块、校验块重建丢失数据,并更新到其他硬盘当中。
另一种是是腾讯自研存储产品CBS和CFS采用的「三副本技术」。
CBS和CFS服务,会把用户存储数据,拆分成若干固定大小的数据块,写入不同机柜不同服务器的不同硬盘中,共有三个副本。
如果硬盘被抽出,用户发起的请求,将指向正常工作的副本,用户服务不受影响。
CBS和CFS的系统也会进行自检。检查到因硬盘故障(设备只读、节点宕机)或网络故障(如链路异常或断开、网络探测延迟增大等)导致其中一个副本不可用时,系统会将其剔除。
三副本技术会自动发起副本恢复,在最短的时间内将用户数据恢复成三副本的工作状态。
当然,如果因为一些其他原因,导致多副本或三副本全部丢失,不在本文讨论范围之内。
其实,服务器和底层存储技术方面的技术只是硬盘、用户数据保护中的冰山一角。
现实中,抽出一块正常运行硬盘几乎不可能:
硬盘本身有生命周期,硬盘替换是常规操作。为准确运维,腾讯云的硬盘都给拉手条设计LED指示灯,作为待运维硬盘的位置指示,颜色和闪烁频率代表硬盘的健康状态;
抽出硬盘对服务器整体几乎不会造成影响。硬盘设有独立电子断路器eFuse,可实现插拔电源缓启动、去抖和硬盘故障隔离,避免电压变化影响其它硬盘和服务器工作;
数据中心内外有多重安保措施,实时监控服务器和网络设备开机状态。进入服务器存储区间,要经过生物识别+门禁卡双重识别;异常关网络端口拔插操作会触发告警,运维人员或IDC安保人员在5分钟内就会到场查看。
未经用户授权,腾讯云绝不主动触碰用户硬盘中数据。即便用户授权,腾讯云也会通过权限划分确保权限最小化,所有额外权限均需要经过多级评审批准 ......
现在,你知道为了保护一块硬盘和其中的数据,服务商有多努力了吧!
别忘记点个赞,咱们下篇见!
每天进步一点点 慢一点才能更快
<END>
本文发于 微星公众号「程序员的成长之路」,回复 [ 2048 ] 免费领取C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等 5T 学习资料。