首页 > 其他分享 >详解RAID6种磁盘阵列模式

详解RAID6种磁盘阵列模式

时间:2023-09-19 18:07:47浏览次数:51  
标签:RAID 详解 写入 模式 RAID6 数据 硬盘 磁盘阵列

所谓RAID就是Redundant Array of Independent Disk的缩写,中文意思是“独立冗余磁盘阵列”,简单来说就是一种利用多个硬盘来提高系统对磁盘的读写速度及其数据安全系数的一种技术。RAID技术开始一般用于服务器或大型工作站上面,但随着RAID技术的不断成熟,现在不少的家用PC的主板都内置了RAID芯片。RAID技术主要有6类磁盘阵列模式,分别为RAID 0~RAID 5,它们各有各的优缺点,所以应根据不同的实际情况选用不同的技术。下面我们就简单介绍一下这6种磁盘阵列模式。

RAID 0

RAID 0磁盘阵列模式的原理很简单,就是将n个硬盘并联起来,然后把一大段的数据分成大小一定的带区(striping),再将每一个带区分成n份同时写入各个硬盘。这样一来数据的读写速度将提高n倍,但是RAID 0没有冗余功能,一旦其中一个硬盘损坏,所有的数据将会无法使用,所以其可靠性也会大大降低,仅等于当单独使用一块硬盘时的1/n,因此RAID0技术不适合于执行要害任务的环境。

RAID 1

RAID 1磁盘阵列模式运用的是磁盘镜像技术,就是将偶数个硬盘分成两份,将其中的一半拿来做另外一半的备份,这样做的好处就是在不影响性能的情况下,能够最大限度地保证系统的可靠性和可修复性。当然,在6类的RAID技术中,RAID 1磁盘阵列模式的成本是最高的,硬盘的利用率是最低的——仅为50%。因此RAID 1主要用于要保存要害数据的场合。

RAID 2

RAID 2磁盘阵列模式综合利用了共轴同步技术和ECC(Error Checking and Correcting)检验技术,原理是将若干个硬盘分成两组,分别用来储存数据和校验用的海明码。RAID2是将数据分散为位(bit)分别并算出其ECC代码,然后同时写入各硬盘。假如某一个硬盘发生故障,系统也能够根据海明码和其余的有效数据算出正确的数据进行恢复。因为RAID2的存取是所有硬盘同时进行的,用的是又单位元的存储,所以小于一个扇区的存取会大大削弱其性能,在磁盘利用率方面,RAID2磁盘阵列模式一般只有在使用15个硬盘以上的系统中才会凸显其利用率的优势。因此RAID2不适合用于网络服务器,小型机或PC上。

RAID 3

RAID 3 磁盘阵列模式与RAID2 相似,只不过用奇偶校验码来代替了ECC代码,所以只需要一个硬盘来存储校验码,但其存在的问题是当要向某一个硬盘的某一个扇区写入数据的时候,就要读取其他数据硬盘相同位置的数据,并算出校验码再写入存储校验码的硬盘。所以,RAID3 磁盘阵列模式也不适合需要经常写入零碎文件的场合。显然,在某一个硬盘出现故障的时候系统仍能够正常工作并可以恢复,其磁盘的利用率为(n-1)/n。

RAID 4

RAID 4磁盘阵列模式虽然也是选用了一个硬盘用来存储奇偶校验码,但RAID对数据的读写实按块来进行,所以在读取数据方面会比RAID3快了不少,但写入方面则因要读取其他数据盘在同一位置上的数据块,速度会比RAID3要慢,其他方面,跟RAID3磁盘阵列模式都基本上一样。

RAID 5

RAID5磁盘阵列模式又是RAID4的改进,它将本来存储在一个硬盘上的奇偶校验块按一定的顺序平均放到每一个硬盘上。这样做就避免了在存储数据的时候对校验硬盘过于频繁的读写,同时这也大幅度提高了写入零散数据时的效率。RAID5一样具有容错能力和较高的磁盘利用率,但RAID5磁盘阵列模式的读写控制比较复杂,所以RAID的芯片造价也比较高,一般只用于联机交易处理。

标签:RAID,详解,写入,模式,RAID6,数据,硬盘,磁盘阵列
From: https://blog.51cto.com/u_12816728/7527720

相关文章

  • React hooks详解
    importReact,{useEffect,useState}from'react';hook是react16.8的新增特性,他可以让你不在编写class的情况下shiystate以及react的特性Hooks的出现,首先解决了以下问题:告别了令人疑惑的生命周期告别类组件中烦人的this告别繁重的类组件,回归到了熟悉的函数组件reac......
  • [转]C#Invoke和BeginInvoke应用详解
    最近,在研究Invoke的使用,但是真的是一头雾水,网上看了很多资料,感觉还是看不懂,因为对于入门级的小白,想像不出Invoke的应用场景,更谈不上如何用了?1、Invoke到底是什么?Invoke的本质只是一个方法,方法一定是要通过对象来调用的。一般来说,Invoke其实用法只有两种情况:Control的Invoke......
  • 【MyAndroid】AndroidManifest.xml合并规则详解和注意事项
    APK或AndroidAppBundle文件只能包含一个AndroidManifest.xml文件,但AndroidStudio项目可以包含多个清单文件,这些清单文件由主源代码集、build变体和导入的库提供。因此,在构建应用时,Gradle构建系统会将所有清单文件合并成一个清单文件打包到应用中。清单合并工具遵循某些......
  • ipmitool 参数详解和常用命令列举
    ipmitool是一种可用在linux系统下的ipmi平台管理工具,它支持ipmi1.5规范(最新的规范为ipmi2.0),通过它可以实现获取传感器的信息、显示系统日志内容、网络远程开关机等功能。 [root@localhost~]#ipmitool-hipmitoolversion1.8.18usage:ipmitool[options...]<co......
  • SQL update select结合语句详解及应用
    SQLupdateselect结合语句详解及应用 QLupdateselect语句最常用的update语法是:12UPDATETABLE_NAMESETcolumn_name1=VALUEWHRERcolumn_name2=VALUE如果我的更新值Value是从一条select语句拿出来,而且有很多列的话,用这种语法就很麻烦第一,要sel......
  • MySQL篇:第八章_详解TCL语言
    事务一、含义事务:一条或多条sql语句组成一个执行单位,一组sql语句要么都执行要么都不执行二、特点(ACID)A原子性:一个事务是不可再分割的整体,要么都执行要么都不执行C一致性:一个事务可以使数据从一个一致状态切换到另外一个一致的状态I隔离性:一个事务不受其他事务的干扰,多个......
  • Python变量:创建、类型、命名规则和作用域详解
    变量变量是用于存储数据值的容器。创建变量Python没有用于声明变量的命令。变量在您第一次为其分配值时被创建。示例x=5y="John"print(x)print(y)变量不需要声明为特定类型,并且甚至在设置后可以更改类型。示例x=4#x的类型为intx="Sally"#现在x的......
  • 【愚公系列】2023年09月 WPF控件专题 DataGrid控件详解
    (文章目录)前言WPF控件是WindowsPresentationFoundation(WPF)中的基本用户界面元素。它们是可视化对象,可以用来创建各种用户界面。WPF控件可以分为两类:原生控件和自定义控件。原生控件是由Microsoft提供的内置控件,如Button、TextBox、Label、ComboBox等。这些控件都是WPF中常见......
  • 单例模式详解
    饿汉单例模式packagecom.std.www.singletonmode;importjava.util.UUID;publicclassScpD{privatefinalstaticScpDscpD=newScpD();publicstaticScpDgetScpD(){returnscpD;}}类一经创建就会给对象分配内存,这种方式会造成不必要的内......
  • MySQL三大日志(binlog、redo log和undo log)详解
    硬核干货!一文掌握binlog、redolog、undolog(qq.com)MySQL日志:undolog、redolog、binlog(qq.com)MySQL三大日志(binlog、redolog和undolog)详解|JavaGuide(Java面试+学习指南)MySQL日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。其......