RAID磁盤陣列

什么是RAID?

   RIAD(Redundant Array of Independent Disk,獨立冗余磁盤陣列)技術是加州大學伯克利分校1987年提出,最初是為了組合小的廉價磁盤來代替大的昂貴磁盤,同時希望磁盤失效時不會使對數據的訪問受損失而開發出一定水平的數據保護技術。RAID就是一種由多塊廉價磁盤構成的冗余陣列,在操作系統下是作為一個獨立的大型存儲設備出現。RAID可以充分發揮出多塊硬盤的優勢,可以提升硬盤速度,增大容量,提供容錯功能夠確保數據安全性,易于管理的優點,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。

RAID的實現方式:

  RAID的實現方式有三種:

    1、外接式磁盤陣列:通過擴展卡提供適配能力
    2、內接式RAID:主板集成RAID控制器
    3、利用軟件方式實現RAID功能

幾種常用的RAID

1、RAID0

    即條帶卷,RAID0可以把多塊硬盤連成一個容量更大的硬盤群,可以提高磁盤的性能和吞吐量。
特點:
    容錯能力:                 無 
    數據冗余:                 無
    寫 性 能:                提升                             
    讀 性 能:                提升
    需要的磁盤數:           2,2+                                    
    可用容量:              總的磁盤的容量
2.png
如圖所示條帶化有很好的性能。在RAID0(條帶化)中數據將使用切片的方式被寫入到磁盤。一半的內容放在一個磁盤上,另一半內容將被寫入到另一個磁盤。在這種情況下,如果驅動器中的任何一個發生故障,我們就會丟失數據,因為一個盤中只有一半的數據,不能用于重建 RAID。

2、RAID1

    即鏡像卷,把一個磁盤的數據鏡像到另一個磁盤上,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,具有很高的數據冗余能力。
特點:
    容錯能力:                   有
    數據冗余:                   有
    寫性能:                    下降
    讀性能:                    提升
    需要的磁盤數:               2,2+
    可用容量:                  總磁盤容量的50%
3.png
如圖所示,鏡像可以對我們的數據做一份相同的副本。假設我們有兩個2TB的硬盤驅動器,我們總共有4TB,但在鏡像中,放在RAID控制器后面的驅動器形成了一個邏輯驅動器,我們只能看到這個邏輯驅動器有2TB。當我們保存數據時,它將同時寫入這兩個2TB驅動器中。創建RAID1(鏡像化)最少需要兩個驅動器。如果發生磁盤故障,我們可以通過更換一個新的磁盤恢復RAID。如果在RAID1中任何一個磁盤發生故障,我們可以從另一個磁盤中獲取相同的數據,因為另外的磁盤中也有相同的數據。所以是零數據丟失。由于對存儲的數據進行百分之百的備份,在所有RAID級別中,RAID 1提供最高的數據安全保障。同樣,由于數據的百分之百備份,備份數據占了總存儲空間的一半,因而鏡像盤的磁盤空間利用率低,存儲成本高。 RAID1雖不能提高存儲性能,但由于其具有的高數據安全性,使其尤其適用于存放重要數據,如服務器和數據庫存儲等領域。

3、RAID 5

    即分布式奇偶校驗,RAID5可以理解為是RAID0和RAID1的折衷方案,但沒有完全使用RAID1鏡像理念,而是使用了“奇偶校驗信息”來作為數據恢復的方式。
特點:
    容錯能力:                   有
    數據冗余:                   有
    寫性能:                    提升
    讀性能:                    提升
    需要的磁盤數:               3,3+
    可用容量:                  (n-1)/n的總磁盤容量(n為磁盤數)
4.png
RAID5是一種存儲性能、數據安全和存儲成本兼顧的存儲解決方案。 以四個硬盤組成的RAID5為例,其數據存儲方式如圖所示:圖中,Ap為A1,A2和A3的奇偶校驗信息,其它以此類推。由圖中可以看出,RAID5不對存儲的數據進行備份,而是把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,并且奇偶校驗信息和相對應的數據分別存儲于不同的磁盤上。當RAID5的一個磁盤數據發生損壞后,利用剩下的數據和相應的奇偶校驗信息去恢復被損壞的數據,但是如果驅動器損壞個數超過1個會導致數據的丟失。RAID5可以為系統提供數據安全保障,但保障程度要比RAID1低而磁盤空間利用率要比RAID1高。RAID5具有和RAID0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由于多個數據對應一個奇偶校驗信息,RAID5的磁盤空間利用率要比RAID1高,存儲成本相對較低。

4、RAID6

    即雙分布式奇偶校驗,RAID6和RAID5相似但它有兩個分布式奇偶校驗。
特點:
    容錯能力:                   有
    數據冗余:                   有
    寫性能:                    提升
    讀性能:                    提升
    需要的磁盤數:               4,4+
    可用容量:                  (n-2)/n的總磁盤容量(n為磁盤數)
5.png
RAID6技術是在RAID5基礎上,為了進一步加強數據保護而設計的一種RAID方式,實際上是一種擴展RAID5等級。與RAID5的不同之處于除了每個硬盤上都有同級數據XOR校驗區外,還有一個針對每個數據塊的XOR校驗區。當然,當前盤數據塊的校驗數據不可能存在當前盤而是交錯存儲的,具體形式見圖。這樣一來,等于每個數據塊有了兩個校驗保護屏障(一個分層校驗,一個是總體校驗),因此RAID 6的數據冗余性能相當好,即使有2個驅動器發生故障,依然可以更換新的驅動器后重建數據。但是,由于增加了一個校驗,所以寫入的效率較RAID 5還差,而且控制系統的設計也更為復雜,第二塊的校驗區也減少了有效存儲空間.

5、RAID10

    RAID10可以被稱為1+0或0+1。它將做鏡像+條帶兩個工作。在RAID10中首先做鏡像然后做條帶。在RAID01上首先做條帶,然后做鏡像。
特點:
    容錯能力:                   有
    數據冗余:                   有
    寫性能:                    提升
    讀性能:                    提升
    需要的磁盤數:               4,4+
    可用容量:                  總磁盤容量的50%

1481211841889976.jpg          

8.png

                                                            

RAID01和RAID10非常相似,二者在讀寫性能上沒有什么差別。但是在安全性上RAID10要好于 RAID01。如圖中所示,假設DISK0損壞,在RAID10中,在剩下的3塊盤中,只有當DISK1故障, 整個RAID才會失效。但在RAID01中,DISK0損壞后,左邊的條帶將無法讀取,在剩下的3快盤 中,只要DISK2或DISK3兩個盤中任何一個損壞,都會導致RAID失效。

 

軟RAID創建示例:

創建一個大小為10G的RAID1,要求有空閑盤,而且CHUNK大小為128k。

第一步:先創建三個大小為10G的分區,分區類型修改為Linux raid autodetect
    [root@localhost ~]# fdisk -l /dev/sdb

    Disk /dev/sdb: 37.6 GB, 37580963840 bytes
    255 heads, 63 sectors/track, 4568 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0xfeadeb63

       Device Boot      Start         End      Blocks   Id  System
    /dev/sdb1               1        1306    10490413+  fd  Linux raid autodetect
    /dev/sdb2            1307        2612    10490445   fd  Linux raid autodetect
    /dev/sdb3            2613        3918    10490445   fd  Linux raid autodetect

第二步:創建RAID1并指明CHUNK大小為128KB
    [root@localhost ~]# mdadm -C /dev/md0 -a yes -n 2 -x 1 -l 1 -c 128 /dev/sdb{1,2,3}
        \* -a 是否自動創建目標RAID設備的設備文件
           -n 指明RAID磁盤個數
           -x 指明空閑盤的個數
           -l 指明要創建的RAID級別
           -c 指明CHUNK大小
        */
    [root@localhost ~]# cat /proc/mdstat   \*查詢md0狀態*\
    Personalities : [raid1] 
    md0 : active raid1 sdb3[2](S) sdb2[1] sdb1[0]
          10482112 blocks super 1.2 [2/2] [UU]

    unused devices: <none>

 

創建一個大小為4G的RAID5設備,chunk大小為256k,格式化為ext4文件系統,要求可開機自動掛載至/backup目錄,而且不更新訪問時間戳,且支持acl功能。

第一步:創建五個大小為1G的分區,分區類型修改為Linux raid autodetect
    [root@localhost ~]# fdisk -l /dev/sdb
        Device Boot      Start         End      Blocks   Id  System
    /dev/sdb5             397         528     1060258+  fd  Linux raid autodetect
    /dev/sdb6             529         660     1060258+  fd  Linux raid autodetect
    /dev/sdb7             661         792     1060258+  fd  Linux raid autodetect
    /dev/sdb8             793         924     1060258+  fd  Linux raid autodetect
    /dev/sdb9             925        1056     1060258+  fd  Linux raid autodetect
第二步:創建RAID5并指明CHUNK大小為256KB
    [root@localhost ~]# mdadm -C /dev/md0 -a yes -n 5 -l 5 -c 256 /dev/sdb{5,6,7,8,9}

    [root@localhost ~]# cat /proc/mdstat 
    Personalities : [raid6] [raid5] [raid4] 
    md0 : active (auto-read-only) raid5 sdb9[5] sdb8[3] sdb7[2] sdb6[1]
          4236288 blocks super 1.2 level 5, 256k chunk, algorithm 2 [5/4] [_UUUU]

    unused devices: <none>
第三步:格式化為ext4文件系統
    [root@localhost ~]# mke2fs -t ext4 -L myraid5 /dev/md0

第四步:設置開機自動掛載
    [root@localhost ~]# echo "UUID=a4ed7b82-223f-bd1c-1b39-316a2c92d2bb /backup  ext4 acl,noatime 0 0" >> /etc/fstab

 

原創文章,作者:641348038@qq.com,如若轉載,請注明出處:http://www.www58058.com/63040

(0)
641348038@qq.com641348038@qq.com
上一篇 2016-12-13
下一篇 2016-12-13

相關推薦

  • OpenStack之keystone

    一、什么是OpenStack    OpenStack是一種云操作系統,它控制著一個數據中心里大量的計算、存儲和網絡資源。管理員在一個web界面內通過儀表盤方便地管理,控制,授權用戶,以提供各種資源。 二、云服務分類 可分為IAAS, PAAS, SAAS等 IAAS:Infrastructure as a Service (操作系統級別…

    Linux干貨 2017-01-19
  • 圖解LVM(邏輯卷管理)

    圖解LVM 1 什么是LVM?為什么要使用LVM? lvm(Logical Volume Manager)邏輯卷管理,是一種更為靈活彈性的磁盤管理工具。 通過邏輯卷管理,能夠解決傳統磁盤管理管理困難的問題,比如靈活的增刪磁盤容量,增刪磁盤分區等。 LVM由pv(Physical Volume),vg(Volume Group),lv(logical volu…

    2017-04-23
  • Find命令簡介與使用

    用途:         find命令用來在指定目錄下查找文件。任何位于參數之前的字符串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。并且將查找到的子目錄和文件全部進行顯示。 語法: find [OPTION]… [查找…

    Linux干貨 2016-08-30
  • 腳本小練習

    1、編寫腳本/root/bin/systeminfo.sh,顯示當前主機系統信息,包括主機名,IPv4地址,操作系統版本,內核版本,CPU型號,內存大小,硬盤大小。                            …

    Linux干貨 2016-08-15
  • 馬哥教育網絡班22期-第九周課程作業

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash # declare -i count=0 declare -i bash_num=0 declare -i&nbs…

    Linux干貨 2016-11-21
  • 6個變態的C語言Hello World程序

    下面的六個程序片段主要完成這些事情: 輸出Hello, World 混亂C語言的源代碼 下面的所有程序都可以在GCC下編譯通過,只有最后一個需要動用C++的編譯器g++才能編程通過。 hello1.c   #define _________ }     #define …

    Linux干貨 2015-04-01

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-12-23 12:28

    贊~能很好的了解各raid模式和使用場景會更好~繼續加油~

欧美性久久久久