分布式存储系统如何应对SSD硬盘UNC坏块可靠性问题?

news2024/9/25 1:24:45

Uncorrectable Bit Errors(UNC),也有时候叫做Media Error(介质错误)是指在闪存设备中出现的无法修复的位错误。Media Error的产生意味着即使硬盘自身已经用尽了所有容错手段(如LDPC解码,retry等),该扇区(LBA)的数据已经无法被正确读出,这些错误是由于闪存单元的物理磨损或损坏所导致的,随着闪存设备使用时间的增长,出现UNC的可能性也逐渐增加。

对云数据中心和业务的影响主要体现在以下几个方面:

  1. 数据可靠性下降:UNC的出现意味着数据已经发生了永久性的损坏,无法被修复。这将对云数据中心的数据可靠性造成负面影响,可能导致数据丢失或损坏,进而影响业务的正常运行。
  2. 设备寿命缩短:随着UNC的出现,闪存设备的寿命也将逐渐缩短。这将增加云数据中心的运营成本,需要更频繁地更换设备,同时也可能导致设备供应短缺。
  3. 性能下降:闪存设备在出现UNC之前,往往会首先出现可纠正的位错误(CE)。随着CE数量的增加,设备需要进行更多的错误修复操作,这将消耗更多的资源并降低设备的性能。
  4. 安全风险增加:UNC的出现可能会导致数据被篡改或窃取,进而增加云数据中心的安全风险。如果UNC发生在关键的业务数据上,可能会对业务造成重大影响。

综上所述,Uncorrectable Bit Errors(UNC)对云数据中心和业务的影响非常大,需要采取有效的措施来预防和处理UNC的出现。

近日看到一篇关于Facebook工程师通过分布式系统优化降低UNC影响的论文,小编觉得挺好的,这里分享下这篇文章的核心思路,心急的朋友可以直接点击文章底部“阅读原文”直接获取论文pdf文档。

本文提出了一种解决闪存寿命问题的方案DIRECT(Distributed error Isolation and RECovery Techniques),通过采用更密集、可靠性更低的闪存存储技术,以允许设备以更高的位错误率运行。DIRECT使用端到端的方法,包括数据编码、解码和错误纠正等技术,以实现数据的持久性和可用性。

DIRECT策略是一种用于提高分布式存储系统可靠性的方法,其主要内容包括以下几个方面:

  1. 错误放大减少:DIRECT策略要求系统减少数据对象的错误放大,并修复远程副本中的损坏。错误放大是指当存储系统中发生错误时,这些错误会在数据读取和写入过程中被放大。通过减少错误放大,DIRECT可以减少数据的损坏,提高系统的可靠性。
  2. 本地元数据错误放大减少:DIRECT策略还要求系统减少本地元数据的错误放大。元数据是描述数据的数据,例如文件的名称、大小、创建时间等等。由于元数据在存储系统中的重要性,其错误放大会比数据错误放大更加严重。通过减少本地元数据的错误放大,DIRECT可以提高系统的可靠性。
  3. 安全恢复语义:DIRECT策略要求系统确保安全恢复语义。这意味着在发生故障时,系统能够恢复到一致的状态,而不会出现数据丢失或损坏的情况。通过确保安全恢复语义,DIRECT可以提高系统的可靠性

DIRECT策略是一种利用分布式级别冗余来提高闪存存储技术可靠性的策略。它通过使用端到端的方法来增加分布式存储系统的可靠性。在ZippyDB和HDFS两个真实的分布式存储系统中实施DIRECT策略

  1. 在ZippyDB中,DIRECT通过减少应用程序可见的错误率和恢复时间来提高可靠性。它能够将应用程序可见的错误率降低100倍以上,并将恢复时间缩短10000倍以上。这意味着,如果出现错误,DIRECT可以更快地将系统恢复到正常状态,从而减少了故障对应用程序的影响。

  1. 在HDFS中,DIRECT则允许系统容忍更高的位错误率,而不会出现应用程序可见的错误。具体来说,DIRECT可以使HDFS容忍比传统存储系统高10000到100000倍的位错误率。这意味着,使用DIRECT的HDFS可以在更恶劣的存储条件下运行,而不会影响到应用程序的正常运行。

从这篇论文的技术分享来看,分布式存储系统的软件强大,可以极大概率弥补硬件上的可靠性问题,减少对云存储系统的安全性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

75.颜色分类

原地排序&#xff1a;空间复杂度为1 class Solution { public:void sortColors(vector<int>& nums) {if(0){//法一&#xff1a;单指针两个遍历int nnums.size();int ptr0;for(int i0;i<n;i){if(nums[i]0){swap(nums[i],nums[ptr]);ptr;}}for(int iptr;i<n;i){…

win11安装双系统Ubuntu的坎坷记录

之前一直装的都是在一个硬盘中&#xff0c;这是是两块盘。 我的电脑是惠普暗影精灵8Pro 一 安装前的准备工作 1.1 记得先关闭&#xff0c;Bitlocker 输入wins&#xff0c;搜索框输入&#xff1a;设备加密设置 1.2 BIOS设置 &#xff08;惠普这电脑是开机时按 F10&#xff0…

断点测试怎么做,一文教你用Charles 工具做好接口测试!

在测试工作过程中&#xff0c;我们经常会在程序的某一行或者某一环节设置断点&#xff0c;在程序请求的过程中&#xff0c;修改断点处的参数、请求或者响应&#xff0c;这就是所谓的断点测试。这类断点测试主要用于接口测试。 断点测试可以通过查看接口返回数据可以方便定位是前…

015-衍生版本开发

衍生版本开发 文章目录 衍生版本开发项目介绍衍生版本开发波形分析设置CPU 亲缘性 总结 关键字&#xff1a; Qt、 Qml、 关键字3、 关键字4、 关键字5 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&#…

【Linux】基本指令-入门级文件操作(一)

目录 前言 ⭕linux的树状文件结构 ⭕绝对路径和相对路径 ⭕当前路径和上级路径 ⭕隐藏文件 基本指令&#xff08;重点&#xff09; 1 pwd 指令 2 mkdir 指令 3 touch 指令 4 ls 指令 4.1 ls只加选项不加文件/目录名&#xff0c;默认查看当前目录下的文件 4.1.1 ls -a…

360 G800行车记录仪,不使用降压线如何开机,8芯插头的定义。

G800记录仪的插头是这样的&#xff0c;图中标出了线的颜色。其中红色为常电V&#xff0c;黑色为GND负极&#xff0c;黄色为ACC受车是否启动控制。 这个记录仪原装的电源线没有降压功能&#xff0c;所以这里的V是12V。 记录仪内部有电源板&#xff0c;负责将12V降压为5V。 如果…

CSS盒子定位的扩张

定位的扩展 绝对定位&#xff08;固定定位&#xff09;会完全压住盒子 浮动元素不会压住下面标准流的文字&#xff0c;而绝对定位或固定位会压住下面标准流的所有内容 如果一个盒子既有向左又有向右&#xff0c;则执行左&#xff0c;同理执行上 显示隐藏 display: none&…

Tasmota系统之MQTT配置和使用篇

Tasmota系统之MQTT配置和使用篇 &#x1f6a9;相关篇《ESP32/ESP8266在线刷写Sonoff Tasmota固件以及配置简要》&#x1f4cc;《Tasmota系统之外设配置》&#x1f4cd;Tasmota官方对MQTT功能使用介绍&#xff1a;https://tasmota.github.io/docs/MQTT/ &#x1f6e0;MQTT本地化…

消息队列 Kafka

Kafka Kafka 是一个分布式的基于发布/订阅模式的消息队列&#xff08;MQ&#xff0c;Message Queue&#xff09;&#xff0c;主要应用于大数据实时处理领域 为什么使用消息队列MQ 在高并发环境下&#xff0c;同步请求来不及处理会发生堵塞&#xff0c;从而触发too many conne…

团队协作中如何处理ConflictingBeanDefinitionException异常

&#x1f47c; 前言 当使用Spring框架进行Java应用程序开发时&#xff0c;可能会遇到ConflictingBeanDefinitionException异常。 如&#xff1a; org.springframework.context.annotation.ConflictingBeanDefinitionException: Annotation-specified bean name ‘xxxBean’ …

Spring5应用之AOP注解编程

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言开发…

2.1 Qemu系统模拟:简介

目录 1 后端/加速器2 特性简介3 运行 1 后端/加速器 系统模拟主要用于在host设备上运行guest OSQEMU支持多种hypervisors,同时也支持JIT模拟方案&#xff08;TCG&#xff09; 例如从上表我们可以看出&#xff0c;运行在x86硬件上的Linux系统支持KVM,Xen,TCG 2 特性简介 提供…

【kubernetes】带你了解k8s中PV和PVC的由来

文章目录 1 为什么需要卷(Volume)2 卷的挂载2.1 k8s集群中可以直接使用2.2 需要额外的存储组件2.3 公有云 2 PV(Persistent Volume)3 SC(Storage Class) 和 PVC(Persistent Volume Claim)4 总结 1 为什么需要卷(Volume) Pod是由一个或者多个容器组成的&#xff0c;在启动Pod中…

C++11(下)

目录 一、类的新功能1.1 默认成员函数1.2 类成员变量初始化1.3 强制生成默认函数的关键字default1.4 禁止生成默认函数的关键字delete1.5 继承和多态中的final与override关键字 二、可变参数模板三、lambda表达式3.1 C98中的一个例子3.2 lambda表达式3.3 lambda表达式语法3.4 函…

CUDA----window更新升级cuda版本

在安装库的过程中发现cuda版本不匹配。我torch安装的是11.7&#xff0c;但是我电脑上安装的是11.2故想升级。 但是我用nvidia-smi命令查询cuda是12.2&#xff0c;这让我费解&#xff0c;后来发现是得使用nvcc -V来查询安装的cuda版本。 详细的升级过程可以看这篇博客&#xff…

Android约束布局ConstraintLayout的Guideline,CardView

Android约束布局ConstraintLayout的Guideline&#xff0c;CardView <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:a…

C++ 类和对象篇(八) const成员函数和取地址运算符重载

目录 一、const成员函数 1. const成员函数是什么&#xff1f; 2. 为什么有const成员函数&#xff1f; 3. 什么时候需要使用const修饰成员函数&#xff1f; 二、取地址运算符重载 1. 为什么需要重载取地址运算符&#xff1f; 2. 默认取地址运算符重载函数 3. 默认const取地址运…

016-第三代软件硬件及系统选型

第三代软件硬件及系统选型 文章目录 第三代软件硬件及系统选型项目介绍硬件选型软件系统选型总结 关键字&#xff1a; Qt、 Qml、 研华、 ubuntu、 x86 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项目结合了 QML&#xff08;Qt Meta-Object Language&…

java基础 日期工具类

目录结构&#xff1a; DateUtils.java package dateStudy; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;public class DateUtils {private static final String FORMAT_1"yyyy-MM-dd HH:mm:ss";//私有方法&#xf…

国家开放大学 模拟试题 训练

试卷代号&#xff1a;2136 管理会计 参考 试题 一、单项选择题&#xff08;每小题1分&#xff0c;共20分&#xff09; 1.管理会计依靠各种功能来助力企业战略&#xff0c;下列哪项是管理会计的核心功能( )。 A.评价功能 B.预测功能 C.决策功能…