RAID介绍

RAID介绍

RAID

    RAID,Redundant Arrays of Inexpensive(Independent)Disks,是多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。
    独立磁盘冗余阵列(RAID, Redundant Array of Independent Disks),在早期也称为廉价磁盘冗余阵列,简称为磁盘列。
    Raid就是将两个以上的物理磁盘在逻辑上捆绑在一起,数据以条带式的形式顺序保存在各个磁盘上,对外作为一个逻辑的设备提供服务。
    磁盘阵列中可包含配置成Raid的磁盘和用于后备的磁盘。
    简单来说,RAID把多个物理硬盘组合成为一个逻辑磁盘,因此,操作系统只会把一个raid阵列当作一个硬盘。
    RAID常被用在服务器计算机上,并且常使用完全相同的硬盘作为组合。
    由于硬盘价格的不断下降与RAID功能更加有效地与主板集成,它也成为了一个选择,特别是需要大容量存储空间的工作。
    最初的RAID分成了不同的等级,每种等级都有其理论上的优缺点,不同的等级在两个目标间取得平衡,分别是增加数据可靠性以及增加存储器(集群)读写性能。
    常见RAID级别分为RAID-0,RAID-1,RAID-5,RAID-6,RAID-1E,RAID-10,RAID-50,RAID-60。
    Raid可以按照不同的标准进行分类,按照其实现方法分类可分为硬件Raid和软件Raid。
    硬件Raid的主要特点是其I/O处理有专门的IOP(IO处理器)来执行,软件Raid的I/O指令从主机的CPU获得。
    根据不同的链接方式,Raid又可分为外接式和内置式。
    RAID可提高I/O 能力,由磁盘并行读写来实现。
    RAID可提高耐用性,由磁盘冗余来实现。
    RAID的级别是由多块磁盘组织在一起的工作方式的不同来决定的。

RAID 实现的方式:

    外接式磁盘阵列:
        通过扩展卡提供适配能力
    内接式RAID :
        主板集成RAID 控制器,安装OS前在BIOS里配置
    软件RAID :
        通过OS实现

RAID-0

1)
    将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O,速度最快,RAID-0亦称为带区集,它是将多个磁盘并列起来,成为一个大磁盘。
    在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中,所以在所有的级别中,RAID-0的速度是最快的。
    但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失,危险程度与JBOD相当。
    理论上越多的磁盘性能就等于“单一磁盘性能”ד磁盘数”,但实际上受限于总线I/O瓶颈及其它因素的影响,RAID性能会随边际递减。
    也就是说,假设一个磁盘的性能是50MB每秒,两个磁盘的RAID-0性能约96MB每秒,三个磁盘的RAID 0也许是130MB每秒而不是150MB每秒。
    可使用容量是硬盘总数乘以单块硬盘的最小容量:Size=(N)*min(S1,S2,S3…Sn).
2)
    RAID-0:
        读、写性能提升;
        可用空间:N*min(S1,S2,...)
        无容错能力
        最少磁盘数:2, 2
        两块磁盘都用作读写,坏一块RAID就坏了。

RAID-1

1)
    RAID-1是将一个两块硬盘所构成RAID磁盘阵列,其容量仅等于一块硬盘的容量,因为另一块只是当作数据“镜像”。
    RAID-1磁盘阵列显然是最可靠的一种阵列,因为它总是保持一份完整的数据备份。
    它的性能自然没有RAID-0磁盘阵列那样好,但其数据读取确实较单一硬盘来的快,因为数据会从两块硬盘中较快的一块中读出。
    RAID-1磁盘阵列的写入速度通常较慢,因为数据得分别写入两块硬盘中并做比较。
    RAID-1磁盘阵列一般支持“热交换”,就是说阵列中硬盘的移除或替换可以在系统运行时进行,无须中断退出系统。
    RAID-1磁盘阵列是十分安全的,不过也是较贵一种RAID磁盘阵列解决方案,因为两块硬盘仅能提供一块硬盘的容量。
    RAID-1磁盘阵列主要用在数据安全性很高,而且要求能够快速恢复被破坏的数据的场合。
2)
    RAID-1:
        读性能提升、写性能略有下降;
        可用空间:1*min(S1,S2,...)
        有冗余能力
        最少磁盘数:2, 2N
        两块或两块的倍数,用一半作为读写,一半作为备用校验,同时坏了主备两个RAID就坏了。

RAID-5

1)
    RAID-5是一种储存性能、数据安全和存储成本兼顾的存储解决方案,它使用的是Disk Striping技术。
    RAID-5至少需要三颗硬盘,它不是对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID-5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。
    当RAID-5的一个磁盘数据发生损坏后,可以利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。
    RAID-5可以理解为是RAID-0和RAID-1的折衷方案。
    RAID-5可以为系统提供数据安全保障,但保障程度要比镜像低而磁盘空间利用率要比镜像高。
    RAID-5具有和RAID-0相近似的数据读取速度,只是因为多了一个奇偶校验信息,写入数据的速度相对单独写入一块硬盘的速度略慢,若使用“回写高速缓存”可以让性能改善不少。
    同时由于多个数据对应一个奇偶校验信息,RAID-5的磁盘空间利用率要比RAID=1高,存储成本相对较便宜。 
    可使用的容量为硬盘总数减去1的差,乘以单块硬盘的最小容量,公式为Size=(N-1)*min(S1,S2,S3…Sn)。
2)
    RAID-5: 
        读、写性能提升
        可用空间:(N-1)*min(S1,S2,...)
        有容错能力:允许最多1块磁盘损坏,带奇偶校验的条带机 
        最少磁盘数:3, 3+
        其他的同RAID4一样,唯一不同的是校验位不是放在一个盘上,每个盘都是校验盘,允许最多坏一块硬盘。

RAID-6

1)
    与RAID-5相比,RAID-6增加了第二个独立的奇偶校验信息块。
    两个独立的奇偶系统使用不同的算法,数据的可靠性非常高,即使两块磁盘同时失效也不会影响数据的使用。
    但RAID-6需要分配给奇偶校验信息更大的磁盘空间,相对于RAID-5有更大的“写损失”,因此“写性能”非常差。
    较差的性能和复杂的实作方式使得RAID-6很少得到实际应用,同一数组中最多容许两个磁盘损坏。
    更换新磁盘后,数据将会重新算出并写入新的磁盘中,依照设计理论,RAID-6必须具备四个以上的磁盘才能生效。
    可使用的容量为硬盘总数减去2的差,乘以单块硬盘的最小容量,公式为Size=(N-2)*min(S1,S2,S3…Sn)。
2)
    RAID-6: 
        读、写性能提升
        可用空间:(N-2)*min(S1,S2,...)
        有容错能力:允许最多2块磁盘损坏
        最少磁盘数:4, 4+
        有两个校验位,且又添加了一块备用硬盘,允许最多2块硬盘损坏

RAID-10和RAID-01

1)
    RAID-10是RAID-1与RAID-0的组合,先作RAID-1,再作RAID-0,也就是对多组RAID-1彼此构成Stripe访问。
    由于RAID-10是以RAID-1为基础,而RAID-1至少需要2块硬盘,因此要以多组RAID-1构成RAID-10,至少需要4块硬盘。
    以RAID-10最小的4台硬盘组态为例,先把4台硬盘分为2组,每组2台构成RAID-1,如此就得到两组RAID-1,然后再把两组RAID-1构成RAID-0。
    RAID-10在底层的任一组或多组RAID-1中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID-1中的两块硬盘损毁,整组RAID-10就会失效。
    RAID-10由于在上层把多组RAID-1构成Stripe,容量利用率是50%,例如:4块硬盘做的raid10的总容量是两块硬盘的容量。
    先是RAID-1,然后集合同配为RAID-0,某个RAID-1坏了,整体就坏了。
2)
    RAID-01是RAID-0与RAID-1的结合,先是RAID-0,然后集合同配为RAID-1,同时坏2个RAID-0,整体就坏了。
    RAID-01的特点使其特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域。
    RAID-01是存储性能和数据安全兼顾的方案,它在提供与RAID 1一样的数据安全保障的同时,也提供了与RAID 0近似的存储性能。

RAID-50

    RAID-5与RAID-0的组合,先作RAID-5,再作RAID-0,也就是对多组RAID-5彼此构成Stripe访问。
    由于RAID-50是以RAID-5为基础,而RAID-5至少需要3台硬盘,因此要以多组RAID-5构成RAID-50,至少需要6台硬盘。
    以RAID-50最小的6台硬盘组态为例,先把6台硬盘分为2组,每组3台构成RAID-5,如此就得到两组RAID-5,然后再把两组RAID-5构成RAID-0。
    RAID-50在底层的任一组或多组RAID-5中出现1台硬盘损坏时,仍能维持运作,不过如果任一组RAID-5中出现2台或两台以上硬盘损毁,整组RAID-50就会失效。
    RAID-50由于在上层把多组RAID-5构成Stripe,性能比起单纯的RAID-5高,容量利用率比RAID-5要低。
    比如同样9块硬盘,RAID-50则3个RAID-5组成RAID-0,每个RAID-5会损失一块硬盘的容量,利用率为(1-3/9),RAID-5则为(1-1/9)。

RAID-60

    RAID-6与RAID-0的组合,先作RAID-6,再作RAID-0。
    换句话说,就是对两组以上的RAID-6作Stripe访问。
    RAID-6至少需具备4块硬盘,所以RAID-60的最小需求是8块硬盘。
    由于底层是以RAID-6组成,所以RAID-60可以容许任一组RAID-6中损毁最多2块硬盘,而系统仍能维持运作。
    不过只要底层任一组RAID-6中损毁3块硬盘,整组RAID-60就会失效,当然这种情况的机率相当低。
    比起单纯的RAID-6,RAID-60的上层通过结合多组RAID-6构成Stripe访问,因此性能较高。
    不过使用门槛高,而且容量利用率低是较大的问题

RAID7和JBOD

RAID7
    可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID 模式。
JBOD :Just a Bunch Of Disks
    功能是将多块磁盘的空间合并一个大的连续空间使用
    可用空间:sum(S1,S2,...)

xen虚拟机(Centos6.6)的创建和扩容

  好久没来更博了,从这篇开始,我准备好好梳理一下Hadoop的那些“事”。本人技术渣一枚,只是本着知识共享的原则,希望将我所掌握的知识分享出来。若文中...

工作疑问之iptables过滤链接mongodb的地址

主机:aws ec2 linux 服务:mongodb   iptables规则: 1.主机允许指定的pc访问27017端口 iptables -I INPUT -p tcp –dport 51376 -m mac –m...

unix2dos和dos2unix处理换行问题

今天同事QQ给发来一个文件内容如下: 希望把文件内容转换为update table_name set col_name=第一列 where col_name=第二列;这种SQL格式,使用UE列模式秒秒钟...

logstash grok 内置正则

参考地址:https://github.com/elastic/logstash/blob/v1.4.2/patterns/grok-patterns USERNAME [a-zA-Z0-9._-]+ USER %{USERNAME} INT (?:[+-]?(?:[0-9]+))...

linux常用命令和参数总结(基础)

1. 用户家目录(~)   在linux系统中,用户都有一个属于自己的家目录,你可以放置自己的配置文件和其他东西 2. pwd:列出当前目录   可选参数 -P:当...

逻辑卷管理

逻辑卷管理 逻辑卷管理器(LVM) 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小允许在多个物理设备间重新组织文件系统 将设备指定...