什么是RAID?
RIAD(Redundant Array of Independent Disk,獨立冗余磁盤陣列)技術是加州大學伯克利分校1987年提出,最初是為了組合小的廉價磁盤來代替大的昂貴磁盤,同時希望磁盤失效時不會使對數據的訪問受損失而開發出一定水平的數據保護技術。RAID就是一種由多塊廉價磁盤構成的冗余陣列,在操作系統下是作為一個獨立的大型存儲設備出現。RAID可以充分發揮出多塊硬盤的優勢,可以提升硬盤速度,增大容量,提供容錯功能夠確保數據安全性,易于管理的優點,在任何一塊硬盤出現問題的情況下都可以繼續工作,不會受到損壞硬盤的影響。
RAID的實現方式:
RAID的實現方式有三種:
1、外接式磁盤陣列:通過擴展卡提供適配能力
2、內接式RAID:主板集成RAID控制器
3、利用軟件方式實現RAID功能
幾種常用的RAID
1、RAID0
即條帶卷,RAID0可以把多塊硬盤連成一個容量更大的硬盤群,可以提高磁盤的性能和吞吐量。
特點: 容錯能力: 無 數據冗余: 無 寫 性 能: 提升 讀 性 能: 提升 需要的磁盤數: 2,2+ 可用容量: 總的磁盤的容量
如圖所示條帶化有很好的性能。在RAID0(條帶化)中數據將使用切片的方式被寫入到磁盤。一半的內容放在一個磁盤上,另一半內容將被寫入到另一個磁盤。在這種情況下,如果驅動器中的任何一個發生故障,我們就會丟失數據,因為一個盤中只有一半的數據,不能用于重建 RAID。
2、RAID1
即鏡像卷,把一個磁盤的數據鏡像到另一個磁盤上,在不影響性能情況下最大限度的保證系統的可靠性和可修復性上,具有很高的數據冗余能力。
特點: 容錯能力: 有 數據冗余: 有 寫性能: 下降 讀性能: 提升 需要的磁盤數: 2,2+ 可用容量: 總磁盤容量的50%
如圖所示,鏡像可以對我們的數據做一份相同的副本。假設我們有兩個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為磁盤數)
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為磁盤數)
RAID6技術是在RAID5基礎上,為了進一步加強數據保護而設計的一種RAID方式,實際上是一種擴展RAID5等級。與RAID5的不同之處于除了每個硬盤上都有同級數據XOR校驗區外,還有一個針對每個數據塊的XOR校驗區。當然,當前盤數據塊的校驗數據不可能存在當前盤而是交錯存儲的,具體形式見圖。這樣一來,等于每個數據塊有了兩個校驗保護屏障(一個分層校驗,一個是總體校驗),因此RAID 6的數據冗余性能相當好,即使有2個驅動器發生故障,依然可以更換新的驅動器后重建數據。但是,由于增加了一個校驗,所以寫入的效率較RAID 5還差,而且控制系統的設計也更為復雜,第二塊的校驗區也減少了有效存儲空間.
5、RAID10
RAID10可以被稱為1+0或0+1。它將做鏡像+條帶兩個工作。在RAID10中首先做鏡像然后做條帶。在RAID01上首先做條帶,然后做鏡像。
特點: 容錯能力: 有 數據冗余: 有 寫性能: 提升 讀性能: 提升 需要的磁盤數: 4,4+ 可用容量: 總磁盤容量的50%
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
贊~能很好的了解各raid模式和使用場景會更好~繼續加油~