《大话存储2》读书笔记——第4章 北斗七星 大话/详解7种RAID

转自于http://www.cnblogs.com/jfzhu/p/3999283.html

http://www.cnblogs.com/xiaoluo501395377/archive/2013/05/25/3099464.html

https://msdn.microsoft.com/en-us/library/ms190764.aspx

http://blog.csdn.net/ronmy/article/details/5819270

传统磁盘的劣势

  我们知道一台PC机种都会包含CPU、内存、主板、硬盘、网卡等硬件,影响计算机性能的组建包括:CPU、主板总线IO、内存IO、硬盘IO、网卡IO等。可能我们在一提到影响计算机的性能时,首先想到的就是CPU。但是随着计算机的发展,特别是对于现代的处理器来说,其运算速度已经是非常快的了,同时我们的内存IO速度也已经达到了非常快的地步了(差不多应该有5G每秒),而我们也知道数据都是保存硬盘上的,所以计算机其实是先将硬盘的数据传递给内存,然后CPU再从内存中加载数据来进行运算的,所以由此看来影响整个计算机性能的因素就是我们的硬盘IO速度了。我们来看看目前流行的硬盘类型及速度(数据可能不准确,不过基本差不多)

  硬盘类型     速度
  SATA  <150M/s
  SCSI <200M/s
  SAS 200M/s左右
  SSD固态硬盘   500M/s左右

  我们目前的PC机上基本上都是使用SATA接口的硬盘,读的速度大概不超过150M/s,写的速度就更慢了,而生产环境下的服务基本上都是使用SAS(串行SCSI)硬盘,速度最快的是SSD固态硬盘,其速度几乎是SATA的4-5倍。但是即使是使用SSD固态硬盘,其速度在500M/s左右,也远远达不到我们内存以及CPU的处理速度。所以,硬盘是绝大多数计算机的性能的瓶颈。现代磁盘的缺陷就是:I/O性能极差,稳定性极差。

RAID概述

  I/O性能我们刚已经看到了,就算是使用SSD固态硬盘,其还是会大大影响计算机的性能,稳定性差表现在,如果一个硬盘发生了故障或者损坏,那么这块硬盘就已经不能再使用了,这如果是在对数据保存要求特别高的地方来说,其是不可想象的。正因为如此,就诞生了一种新的技术--RAID。

  独立硬盘冗余阵列(RAID, Redundant Array of Independent Disks),旧称廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),简称硬盘阵列。

  其基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。

RAID的评判标准

①速度:读写速度的提升

②磁盘使用率:多磁盘的空间使用率

③冗余性: 能够支持几块磁盘损坏而不丢失数据

RAID 0

  它将两个以上的磁盘串联起来,成为一个大容量的磁盘。它可以合并的硬盘数量是2-32个硬盘,合并后的硬盘容量即为每个硬盘容量的总和。举个例子,有四块硬盘,每个硬盘容量都是250GB,那么Disk Striping Array的容量就为1TB。

  它在向磁盘存放数据时,将数据分段(以位或字节为单位)后分散存储在这些磁盘中。比如要保存一个Excel文档,这个文档的bit 1被写到磁盘1中,bit 2被写到磁盘2中,bit 3被写到磁盘3中,bit 4被写到磁盘4中,然后bit 5又被写到bit 1中,这样循环下去,只到整个文档都被写完。因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失,整个RAID就毁了, 危险程度很高。

Volume = Sum(S1, S2, S3,…)

①空间利用率:   所有硬盘空间之和

②性能:      所有硬盘读写速度之和

③冗余能力:    无

RAID1

  Disk Mirroring 的意思是多块硬盘互为镜像,其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据,当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的,可靠性最高。RAID 1支持热插拔,如果有一块硬盘坏掉,可以把它直接拔下来,然后热插上一块新硬盘,新硬盘会把另一块硬盘内容拷贝过来。在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,但写入速度有微小的降低。另外无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。

Volume = min(S1, S2, S3…)

①空间利用率:     所有磁盘中最小的那块(其实在使用RAID时,最好每块硬盘的大小及型号都一样)

②性能:      读性能是所有硬盘之和,写性能有所减弱。硬盘写速度降低,硬盘利用率低

③冗余能力:    只要有一块硬盘正常,数据就正常

RAID 2

  这是RAID 0的改良版,以汉明码(Hamming Code)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。因为在数据中加入了错误修正码(ECC,Error Correction Code),所以数据整体的容量会比原始数据大一些。

RAID 3

ddddddddddddddddddddddddd

RAID 4

ddddddddddddddddddddddddd

RAID 5

  RAID 5可以理解为是RAID 0和RAID 1的折衷方案,它兼顾了储存性能、数据安全和存储成本。RAID 5需要至少3块硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID 5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。

  RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。

Volume = (N - 1) * min(S1, S2, S3…, SN)

①空间利用率:   1 - 1/n

②性能:      读性能接近RAID0,写性能相比RAID0要弱一些

③冗余能力:    可以接受1块硬盘的损坏

磁盘容量利用率较高   (RAID 0 > RAID 5 > RAID 1)

硬盘读速度较快    (RAID 0 > RAID 5 > RAID 1)

RAID 6

  RAID6至少需要4块硬盘,RAID6与RAID5相类似,读写数据的时候会将数据分布的读写到所有硬盘上。在写数据的时候RAID5会对数据进行奇偶校验运算,并将校验信息也保存在了硬盘上,但是RAID6会比RAID5多保存一份校验信息,所以RAID6的冗余性比RAID5就有所提升,可以允许2块硬盘发生损坏。

①空间利用率:     1 - 2/n

②性能:      读性能接近RAID5,写性能相比RAID5还要弱一些

③冗余能力:    可以接受2块硬盘的损坏

RAID 10/01

RAID 10是先镜像再分割资料,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。

RAID 01则是跟RAID 10的程序相反,是先分割再将资料镜像到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RAID 0运作。

当RAID 10有一个硬盘受损,其余硬盘会继续运作。RAID 01只要有一个硬盘受损,同组RAID 0的所有硬盘都会停止运作,只剩下其他组的硬盘运作,可靠性较低。如果以六个硬盘建RAID 01,镜像再用三个建RAID 0,那么一个硬盘坏便会有三个硬盘离线。因此,RAID 10远较RAID 01常用,零售主机板绝大部份支援RAID 0/1/5/10,但不支援RAID 01。

            

  应该说能够与RAID10竞争的只有RAID 5了,两者在不同的场景有大量的使用。在安全性上RAID 10要比RAID 5强,当RAID 5有一块硬盘损坏时,读性能有很大的下降,因为损坏硬盘中的数据要通过其他硬盘中的数据和校验一起才能计算出来,所以在数据库存储时一般选择RAID 10。在磁盘使用率上RAID 5要比RAID 10高很多,所以对安全性要求不是特别高的场合比如文件存储一般大量使用RAID 5。相反,安全性要求很高,不计成本,小数据量频繁写入的系统采用RAID 10的方式比较好。

四种常用的RAID

  RAID0、RAID1、RAID5、RAID6是我们最常用的四种级别,对于个人PC机来说,可能我们最需要提高的是硬盘存储性能,所以基本上使用的是RAID0,其读写性能得到了最大的提高,但是其冗余性为0,当硬盘发生损坏时,数据也就损坏了。而在生产环境下的服务器,使用的最多是RAID5或者RAID6,其即提供了读写性能,也提供了冗余性。RAID1通常会对于那些对数据准确性要求及其严格的场合才会使用。

我们来总结一下这4个常用的RAID级别各自的优缺点:

  RAID级别           速度   冗余性     磁盘利用率  
  RAID 0       读写速度均有提升   0   所有磁盘之和
  RAID 1     读速度有提示   n   一个磁盘大小
  RAID 5     读写速度均有提升       1   1-1/n
  RAID 6     读写速度均有提升   2   1-2/n

RAID的实现有两种方式

①软件RAID

通过系统功能或者RAID软件来实现RAID,没有独立的硬件和接口,需要占用一定的系统资源(CPU、硬盘接口速度),并且受到操作系统稳定性的影响

②硬件RAID

通过独立的RAID硬件卡实现,有些主板集成了RAID硬件,有些需要购买独立的RAID硬件卡,硬件RAID实现不需要占用其他硬件资源,稳定性和速度都比软件RAID要强,所以对于服务器来说,最好是使用硬件RAID来提高计算机的性能

时间: 2024-12-15 06:53:26

《大话存储2》读书笔记——第4章 北斗七星 大话/详解7种RAID的相关文章

【大话存储】学习笔记(14章), 虚拟化.md

操作系统对硬件的虚拟化 操作系统:就是为其他程序提供编写和运行环境的程序. 由程序来运行程序,而不是程序自己来运行,这是操作系统提供的虚拟化的表现. 加电之后,首先运行OS,随时可以载入其他程序执行.执行完以后切换回OS本身. 但是每次还是要等待这个程序执行完毕,才能接着载入下个程序执行.任何中断事件,都会中断正在运行的程序. 程序执行完毕,会将CPU归还给OS.从而继续OS本身的运行.这种操作系统就是单任务操作系统,典型代表就是DOS. 而批处理就是操作系统将多个程序一个一个的排列起来.省去了

【大话存储】学习笔记(16章),数据保护和备份技术

数据保护 所谓数据保护是指对当前时间点上的数据进行备份, 如果说一份数据被误删除了,可以通过备份数据找回来. 从底层来分,数据保护可以分为文件级保护和块级保护. 文件级备份 文件级备份:将磁盘上所有文件通过调用文件系统接口备份到另一个介质上.也就是把数据以文件形式读出,然后存储在另一个介质上面. 此时备份软件只能感知到文件这一层. 我们知道一般来说,文件在原来的介质上,可以是不连续存放的,通过文件系统来管理和访问.当备份到新的介质上以后,文件完全可以连续存放.正因为如此,没有必要备份元数据,因为

【大话存储】学习笔记(17章),数据容灾

数据容灾 数据备份系统只能保证实际上被安全复制了一份,如果生产系统故障,必须将备份数据尽快的恢复到生产系统中继续生产,就叫容灾. 容灾可以分为四个级别: 数据级容灾:只是将生产站点的数据同步到远端. 与应用结合的数据级容灾:保证对应应用数据一致性. 应用级容灾:需要保证灾难发生以后,需要保证原生成系统中的应用系统在灾备站点可用. 业务级容灾:除了保证数据.应用系统在灾备站点可用,还要保证整个企业的业务系统仍对外可用,是最终层次的容灾. 概述 如果要充分保证数据的安全,只是在本地做备份是不够的,所

【大话存储】学习笔记(20章),云存储

目前云计算.云存储.云备份等技术可谓是铺天盖地,其中不乏有很多是浑水摸鱼的,本来没有多少云的性质,只是打着云的旗号来炒作而已. 目前市场对一款产品是否是云,没有明显的界定.因为云本来就没有一个标准. 云的是怎么来的 国外在指代一堆设备的时候,一般使用Cluster这个词,而中文翻译一般是"簇"或者"集群".云这个词来源已不可考,也许是某个人在讲授PPT的时候,顺口说了一句"The Servers in the cloud"的吧,这样Cloud这个

【大话存储】学习笔记(7章), OSI模型

任何系统之间,如果需要通信,都需要一套自己的协议系统.这个协议系统一般要定义互相通信的语言,以及硬件. OSI是被提取抽象出来的系统间通信模型,中文意思是"开放式系统互联",是描述多个系统之间交流的通用模型. OSI模型 OSI初步 在讲OSI之间,我们首先看一个例子,PC a向PC b发送数据包的过程如下: a在内存中通过定义的语言生成数据包 将数据包通过总线传给TCP/IP协议处理单元,告诉对方的IP地址.UDP还是TCP.端口号 TCP/IP处理模块收到包之后,封装,通过总线发送

JavaPersistenceWithHibernate第二版笔记-第四章-Mapping persistent classes-002identity详解

一.简介 1.You now have three methods for distinguishing references: ? Objects are identical if they occupy the same memory location in the JVM . This can be checked with the a == b operator. This concept is known as object identity.? Objects are equal i

【大话存储】学习笔记(7,8章),FC协议

Fibre Channnel 我们之前引入了SAN的概念,SAN首先是个网络,而不是存储设备.这个网络是专门来给主机连接存储设备用的. 我们知道按照SCSI总线16个节点的限制,不可能接入很多的磁盘,要扩大SAN的规模,只使用SCSI总线是不行的,所以必须找到一种可寻址容量大.稳定性强.速度块.传输距离远的网络结构.FC网络就应运而生. FC网络 Fibre Channnel也就是网状通道,FC协议从1988年出现,最开始作为高速骨干网技术. 任何互联系统都逃不过OSI模型,所以我们可以用OSI

SQL Server2012 T-SQL基础教程--读书笔记(5-7章)

SQL Server2012 T-SQL基础教程--读书笔记(5-7章) SqlServer T-SQL 示例数据库:点我 Chapter 05 表表达式 5.1 派生表 5.1.1 分配列别名 5.1.2 使用参数 5.1.3 嵌套 5.1.4 多个引用 5.2 公用表表达式 5.2.1 分别列别名 5.2.2 使用参数 5.2.3 定义多个CTE 5.2.4 CTE的多次引用 5.2.5 递归CTE 5.3 视图 5.3.1 视图和ORDER BY 子句 5.3.2 视图选项 5.4 内嵌表

MySQL技术内幕-InnoDB存储引擎-读书笔记(二)

MySQL技术内幕-InnoDB存储引擎-读书笔记(二) 作为php开发,使用mysql总是少不了的 系列文章博客链接 http://itsong.net/articles/466.html 第三章 文件 mysql与innodb几个类型的文件 参数文件,配置路径.初始化参数.内存大小等 日志文件,包括错误日志,二进制日志,慢查询日志,查询日志 socket文件,用unix域套接字,unix domain socket来进行连接时需要的文件,这一般是本机连接,比通常tcp快 pid文件,进程id