来自:腾讯云
最近小编老是会被问:如果抽出一块正常工作的服务器硬盘,结果会怎样?
答案是,不会丢!不受影响!
保护“使命重大”的硬盘,分两步走,下面以腾讯云为例:
如果一块正常工作的硬盘被抽出,服务器首先会做出反应。服务器在硬盘读写数据时,设有特殊校验节点进行定时检查。校验节点是数据存储的“边界”,节点之间的数据构成了存储的一个单位。服务器通过检查这些节点是否正常、完备,可以判断存储服务是否正常。如果抽出的硬盘重新插入后,服务器发现节点正常,就会判断数据没有缺失,硬盘会进入正常运行状态。但如果被抽出的硬盘正在读写数据,节点丢失,服务器会发起请求,申请替换新硬盘,并在其他硬盘上恢复损失的用户数据。如果被抽出的硬盘正在读写数据,怎么保证用户服务不受影响?根据存储需求的不同,腾讯云为用户准备了CBS(云硬盘)、CFS(文件存储)、COS(对象存储)等多种服务来存储数据、运行业务。这些服务都使用多副本技术保障用户服务。但服务不同,技术也不同:一种是COS使用的腾讯自研存储引擎YottaStore中采用的纠删码冗余技术。当用户写入1份数据时,YottaStore技术会将其均匀分成若干份数据块、校验块。每个分组由k个数据块和n个校验块组成,最后打散存储到磁盘中。这些数据块和校验块分组数量可以多达两位数,分别放置在不同园区、不同机架、不同服务器的硬盘中,同一块硬盘上只放一个副本数据。如果检查到硬盘出现掉线或损坏等故障——YottaStore检测到某处数据块或校验块被判断为不可用时,就会立即停用这部分数据。紧接着,会用纠删码等技术将其他组的数据块、校验块重建丢失数据,并更新到其他硬盘当中。另一种是是腾讯自研存储产品CBS和CFS采用的「三副本技术」。CBS和CFS服务,会把用户存储数据,拆分成若干固定大小的数据块,写入不同机柜不同服务器的不同硬盘中,共有三个副本。如果硬盘被抽出,用户发起的请求,将指向正常工作的副本,用户服务不受影响。CBS和CFS的系统也会进行自检。检查到因硬盘故障(设备只读、节点宕机)或网络故障(如链路异常或断开、网络探测延迟增大等)导致其中一个副本不可用时,系统会将其剔除。三副本技术会自动发起副本恢复,在最短的时间内将用户数据恢复成三副本的工作状态。当然,如果因为一些其他原因,导致多副本或三副本全部丢失,不在本文讨论范围之内。其实,服务器和底层存储技术方面的技术只是硬盘、用户数据保护中的冰山一角。现在,你知道为了保护一块硬盘和其中的数据,服务商有多努力了吧!推荐阅读:
毕设有着落了!一套开源的,基于SpringBoot的车牌识别系统
飞天茅台超卖事故:Redis分布式锁请慎用!
5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!微信扫描二维码,关注我的公众号
朕已阅