单节点 RAID6 可靠性模型
介绍
独立磁盘冗余阵列(Redundant Arrays of Independent Disks, RAID)是存储业界为保证数据可用性、可靠性和完整性所采用的重要技术,即使在分布式多副本如此流行和普遍的今天,许多分布式单节点依然会采用 RAID 技术来提升系统可靠性。
本文将关注在单个节点内,或者集中式存储设备中,采用双盘冗余 RAID 技术的系统可靠性模型。
背景
所谓双盘冗余,存在 2 种方式: RIAD1 3-way mirror 和 RAID6,即 3 副本存储和双校验盘(P+Q)存储,此两种技术都能够保证,在 2 块盘或者同一数据条带中 2 个硬盘位置出错,数据无法读出或者校验出错的情况下,系统能够保证读写依然正常进行和操作结果的正确性。
那么,在实际应用中,如果确定使用双盘冗余,如何选择 RAID1 或者 RAID6 呢?如果采用 RAID1 3-way mirror 类型(3 副本)来存储数据,数据的性能和单磁盘读写性能相当(单节点,无网络延迟和开销,副本映射开销忽略不计),但是,系统的空间利用率只有原来的 1/3,这对于大多数拥有海量数据的客户来讲,成本是不可承受之重。而采用 RAID6 类型来存储数据,在达到和 3 副本相同的数据安全性的前提下,空间利用率能够达到 2/3,4/5 甚至更高(这依赖于系统使用 RAID6 所采用的的宽度,如 4 data + P + Q 利用率为 2/3,8 data + P + Q 利用率为 4/5)。当然,RAID6 提升空间利用率付出的代价就是性能相比 3 副本有所下降,下降的原因是每个数据条带中冗余盘的数据需要通过特定算法计算得出(如 LDPC, Reed-Solomon ),然后再进行存储。在Intel 开源库 ISA-L 中,RIAD6 P 盘是同条带的所有数据盘执行 XOR 运算,Q 盘则是采用 Reed-Solomon 算法。如果不使用硬件加速器进行计算卸载,相对 3 副本存储来讲,RAID6 存储就要占用 CPU 计算资源执行算法计算,这或多或少会影响系统的性能。
RAID1 3-way mirror 和 RAID6 各有利弊,适用于不同的应用场景和数据类型。在实际的商用存储设备中,同一存储系统中大体可以分为 2 种数据类型:元数据和用户数据。元数据主要是为了保证用户数据的快速索引和安全性而存储的额外数据,存在数据量小、性能要求高、要求出错率极低等特点。因此,RAID1 3-way mirror 和 RAID6 混合使用同一物理空间分别存储元数据和用户数据,是包括 Dell EMC,NetApp 等一线存储厂商产品中采用的通用方案。
在商用的存储系统中,除了存在冗余盘来保证数据安全性和提升系统可靠性外,还有热备技术保证系统的自恢复能力,即在无人为干预的情况下,如果有硬盘损坏或下线,能够自动重建数据,让系统尽快恢复到正常状态,提升后续抗风险能力。当然,热备技术需要预留额外空间,以便恢复丢失的数据。这里就存在一个问题:如何平衡数据重建和正常读写的工作负载呢?系统工作负载不重的情况下,数据重建能够很快做完;但是在工作负载很重的情况下,务必基于系统允诺的可靠性前提下,在有限时间内,保证数据重建完成。
基于以上应用场景和系统可靠性要求(如 99.999%,99.9999%),建立双盘冗余的 RAID6 可靠性模型如下。
建模
业界通常使用指数分布来建立硬盘的失败概率模型,其概率密度函数和累积分布函数如下:
\\
F(t)= 1 - e{-\lambda t}, t > 0
\]
其中,$ \lambda $ 是 $ MTTF $ 的函数, $ \lambda = \frac{1}{MTTF} $.
一般的企业级 SSD 给出的 $ MTTF $ 都是 $ 2,000,000 $ 小时,因此,$ \lambda = 5 \times 10^{-7} $。
集中式存储系统或者单节点内,硬盘数量是有限的,单个或两块硬盘故障不会扩展到其他节点,该相对独立的环境称为错误域(fault domain)。在本模型中,基于当前市场上常见的存储设备,做如下设定:错误域内硬盘数量 $ N $ 最多 32 块,每块硬盘最大容量 $ Cap $ 为 32 TiB,每块硬盘的利用率 $ ratio $ 达到 80%。假定,硬盘之间相互独立,失败互不影响。
一年内 ($ T=24 \times 365 \ hours $),硬盘失败的概率 $ AFR = F(T) = 4.37 \times 10^{-3} $。因此,错误域内,一年内单块硬盘失败的概率为
= {N \choose 1} \times AFR^{1} \times (1-AFR)^{N - 1} = 0.1221
\]
当存在硬盘下线,数据丢失,系统启动数据热备和重建过程,重建过程中如果继续有硬盘故障,那么就存在数据丢失可能。对于本文基于 RAID1 3-way mirror 和 RAID6 建立的可靠性模型来讲,系统允许在重建过程中再有一块硬盘故障,总数超过 2 块,则数据丢失无法恢复。因此,数据恢复的时间,决定了数据的恢复速度和系统的可靠性。一般来讲,企业要求 24 小时必须完成系统恢复,假定 $ T_R=4\ hours $。
在 $ T_R $ 时间内,硬盘失败的概率
=F(T_R)=F(4)=2 \times 10^{-6}
\]
那么,在数据重建期间第 2 块盘失败的概率为
\]
数据重建期间第 3 块盘失败的概率为
\]
因此,数据丢失的概率为 $ P=P_1 \times P_2 \times P_3=4.54 \times 10^{-10} $,即如果能够在 $ T_R $ 小时内恢复丢失的最多 32TiB 数据,系统就能保证 9 个 9 的可靠性。
根据以上模型,下表给出在不同的重建时间下的系统可靠性数据:
| Probability | $ T_R=4\ hours $ | $ T_R=8\ hours $ | $ T_R=12\ hours $ | $ T_R=24\ hours $ |
|---|---|---|---|---|
| $ P_1 $ | 1.2210E-01 | 1.2210E-01 | 1.2210E-01 | 1.2210E-01 |
| $ P_2 $ | 6.1996E-05 | 1.2398E-04 | 1.8597E-04 | 3.7186E-04 |
| $ P_3 $ | 5.9996E-05 | 1.1999E-04 | 1.7997E-04 | 3.5987E-04 |
| $ P $ | 4.5415E-10 | 1.8164E-09 | 4.0863E-09 | 1.6339E-08 |
总结
本文只关注硬盘失败导致系统数据丢失的概率模型,并且是基于一些理想化的假设,如一块硬盘损坏不会对其他硬盘有任何影响。在实际的系统中,系统可靠性的影响因素非常多,单单就是硬盘生命周期,就不能使用简单的指数分布来表示。但是,数据的重建和恢复,如果建立在极其复杂的模型之上,对于系统开发者是一个不小的挑战,可能给调优和运维也带来一些挑战,而且带来的受益可能也并不大,因为系统中其他问题带来的不稳定性可能远远超过硬盘问题。因此,本模型虽然简单,在实际开发中,还是具备参考意义的。
单节点 RAID6 可靠性模型的更多相关文章
- Vertica集群单节点宕机恢复方法
Vertica集群单节点宕机恢复方法 第一种方法: 直接通过admintools -> 5 Restart Vertica on Host 第二种方法: 若第一种方法无法恢复,则清空宕机节点的c ...
- Hbase入门教程--单节点伪分布式模式的安装与使用
Hbase入门简介 HBase是一个分布式的.面向列的开源数据库,该技术来源于 FayChang 所撰写的Google论文"Bigtable:一个结构化数据的分布式存储系统".就像 ...
- 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练
原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔® 架构机器学习愿景. 英特尔正在实现 Prad ...
- 单节点部署Hadoop教程
搭建HDFS 增加主机名 我这里仅仅增加了master主机名 [root@10 /xinghl/hadoop/bin]$ cat /etc/hosts 127.0.0.1 localhost 10.0 ...
- js 节点 document html css 表单节点操作
js 节点 document html css 表单节点操作 节点操作:访问.属性.创建 (1)节点的访问:firstChild.lastChild.childNodes.parentChild(父子 ...
- Hadoop 2.6.4单节点集群配置
1.安装配置步骤 # wget http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm # rpm -i ...
- 单节点nginx为两台apache服务器提供负载均衡
需求:本实验为单节点nginx为两台apache服务器提供负载均衡,所有配置为最简单 1.初始化3台测试server,该关的关了 [root@host101 ~]# vim /etc/hosts 19 ...
- Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装
Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...
- Openstack Grizzily 单节点测试机安装( All In One CentOS/RHEL)
Openstack Grizzily版本已经相当完善,根据官方文档安装基本不存在什么问题,但是想快速测试了解Openstack功能的用户非常多,devstack的安 装需要check最新的代码,时常碰 ...
- 恒天云单节点部署指南--OpenStack H版本虚拟机单节点部署解决方案
本帖是openstack单节点在虚拟机上部署的实践.想要玩玩和学习openstack的小伙伴都看过来,尤其是那些部署openstack失败的小伙伴.本帖可以让你先领略一下openstack的魅力.本I ...
随机推荐
- Windows常用的 CMD 命令合集
常用的 CMD 命令合集: 基础命令 dir:列出当前目录中的文件和子目录. cd:更改当前目录.例如,cd Documents 将当前目录更改为 Documents 文件夹. md 或 mkdir: ...
- 用 Python 帮运营妹纸快速搞定 Excel 文档
Microsoft Office 被广泛用于商务和运营分析中, 其中 Excel 尤其受欢迎.Excel 可以用于存储表格数据.创建报告.图形趋势等.在深入研究用 Python 处理 Excel 文档 ...
- VLAN——提高网络性能、安全性和灵活性的利器
前言 VLAN是Virtual Local Area Network的缩写,它是一种通过网络交换机虚拟划分局域网的技术.VLAN可以将一个物理局域网划分成多个逻辑上的虚拟局域网,各个虚拟局域网之间相互 ...
- 【技术积累】Python中的Pandas库【三】
什么是Series Series是一种带有标签的一维数组,可以容纳各种类型的数据(例如整数,浮点数和字符串).每个Series对象都有一个索引,它可以用来引用每个元素.Series对象的主要特征是可以 ...
- ChatGPT+Mermaid自然语言流程图形化产出小试
ChatGPT+Mermaid语言实现技术概念可视化 本文旨在介绍如何使用ChatGPT和Mermaid语言生成流程图的技术.在现代软件开发中,流程图是一种重要的工具,用于可视化和呈现各种流程和结构. ...
- rocketmq-console基本使用
rocketmq-console基本使用 作用:rocketmq-console是rocketmq的一款可视化工具,提供了mq的使用详情等功能. 一.安装部署 下载rocketmq组件 rocketm ...
- 使用 Sa-Token 实现不同的登录模式:单地登录、多地登录、同端互斥登录
一.需求分析 如果你经常使用腾讯QQ,就会发现它的登录有如下特点:它可以手机电脑同时在线,但是不能在两个手机上同时登录一个账号. 同端互斥登录,指的就是:像腾讯QQ一样,在同一类型设备上只允许单地点登 ...
- vue和servlet 前后端分离 (复习)
一.vue复习 1.vue的使用步骤: (1)导入vue.js (2)创建除body以外最大的div标签,给定id值 (3)创建vue对象 new Vue({ el:"#app", ...
- Git无法push提示报错443
更新 设置代理不能完美解决问题,需要检查本地的SSH配置是否正确,以及正确配置SSH密钥关联github账户 配置SSH参考链接: <GitHub如何配置SSH Key> https:// ...
- 2023ccpc大学生程序设计竞赛-zzh
比赛开始没有开到签到题,看了一会别的题才开始跟榜.A题我写的,不过没有考虑到S长度为1的情况,wa了一次.然后lhy和zx把F题做了出来.接着他俩去看H,我去看B.他俩把H过了,B我想出了一个n*根n ...