linux RAID詳解及創建,維護過程

RAID

獨立磁盤冗餘陣列(RAID,redundant array of independent disks)是把相同的數據存儲在多個硬盤的不同的地方(因此,冗餘地)的方法。通過把數據放在多個硬盤上,輸入輸出操作能以平衡的方式交疊,改良性能。因爲多個硬盤增加了平均故障間隔時間(MTBF),儲存冗餘數據也增加了容錯。

RAID類型 個數 利用率 優缺點
RAID0條帶集 2或2+ 100% 讀寫性能提升,不容錯
RAID1鏡像集 2或2+ 50% 讀性能提升,寫性能下降,有冗餘能力
RAID5奇偶校驗條帶集 3+ n-1 讀寫性能提升,容錯,允許壞一個盤
RAID6奇偶校驗條帶集雙校驗 4+ n-2 讀寫性能提升,容錯,允許壞2個盤
RAID10 4+ 50% 讀寫性能提升,容錯
RAID01 4+ n-4 讀寫性能提升,容錯
RAID50 6 n-2 讀寫性能提升,容錯
RAID60 8 n-4 讀寫性能提升,容錯

RAID0

定義:
RAID 0又稱爲Stripe或Striping,它代表了所有RAID級別中最高的存儲性能。RAID 0提高存儲性能的原理是把連續的數據分散到多個磁盤上存取,這樣,系統有數據請求就可以被多個磁盤並行的執行,每個磁盤執行屬於它自己的那部分數據請求。這種數據上的並行操作可以充分利用總線的帶寬,顯著提高磁盤整體存取性能
原理:
系統向三個磁盤組成的邏輯硬盤(RAID0 磁盤組)發出的I/O數據請求被轉化爲3項操作,其中的每一項操作都對應於一塊物理硬盤。通過建立RAID 0,原先順序的數據請求被分散到所有的三塊硬盤中同時執行
在這裏插入圖片描述

RAID1

定義:
RAID 1通過磁盤數據鏡像實現數據冗餘,在成對的獨立磁盤上產生互爲備份的數據。當原始數據繁忙時,可直接從鏡像拷貝中讀取數據,因此RAID 1可以提高讀取性能。RAID 1是磁盤陣列中單位成本最高的,但提供了很高的數據安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數據。
工作原理:
RAID1是將一個兩塊硬盤所構成RAID磁盤陣列,其容量僅等於一塊硬盤的容量,因爲另一塊只是當作數據“鏡像”
在這裏插入圖片描述

RAID5

定義:
RAID 5具有和RAID0相近似的數據讀取速度,只是多了一個奇偶校驗信息,寫入數據的速度比對單個磁盤進行寫入操作稍慢。同時由於多個數據對應一個奇偶校驗信息,RAID5的磁盤空間利用率要比RAID 1高,存儲成本相對較低,是目前運用較多的一種解決方案

工作原理:
RAID5把數據和相對應的奇偶校驗信息存儲到組成RAID5的各個磁盤上,並且奇偶校驗信息和相對應的數據分別存儲於不同的磁盤上,其中任意N-1塊磁盤上都存儲完整的數據,也就是說有相當於一塊磁盤容量的空間用於存儲奇偶校驗信息。因此當RAID5的一個磁盤發生損壞後,不會影響數據的完整性,從而保證了數據安全。當損壞的磁盤被替換後,RAID還會自動利用剩下奇偶校驗信息去重建此磁盤上的數據,來保持RAID5的高可靠性

在這裏插入圖片描述

RAID6

定義:
引入雙重校驗的概念,它可以保護陣列中同時出現。兩個磁盤失效時,陣列仍能繼續工作不會發生數據丟失。RAID6等級是在RAID5的基礎上,爲了進一步增長數據保護而設計的一種方式,它可以看作是一種擴展RAID5等級。

在這裏插入圖片描述

RAID10

定義:
RAID10也被稱爲鏡象陣列條帶。象RAID0一樣,數據跨磁盤抽取;象RAID1一樣,每個磁盤都有一個鏡象磁盤, 所以RAID 10的另一種會說法是 RAID 0+1

實現原理:
Raid10其實結構非常簡單,首先創建2個獨立的Raid1,然後將這兩個獨立的Raid1組成一個Raid0,當往這個邏輯Raid中寫數據時,數據被有序的寫入兩個Raid1中。磁盤1和磁盤2組成一個Raid1,磁盤3和磁盤4又組成另外一個Raid1;這兩個Raid1組成了一個新的Raid0

在這裏插入圖片描述

RAID01

定義:RAID01兼備了RAID0和RAID1的優點,他先用兩塊磁盤建立鏡像,然後再在鏡像內部做條帶化。RAID1的數據將同時寫入到兩個磁盤陣列中,如果其中一個陣列損壞。仍可繼續工作。保證數據安全性的同時又提高了性能。RAID1和RAID0內部都含有RAID1的模式。因此整體磁盤利用率均爲50%。

在這裏插入圖片描述

創建RAID5

使用mdadm工具

-C 或–create 創建一個新RAID
-A 或–assemble 加載一個已存在的陣列,後面跟陣列以及設備的名稱。
-D或–detail 輸出指定RAID設備的詳細。
-S或–stop 停止指定的RAID設備。
-l或–level 設置raid級別 ( -l=#)
-n或–raid-devices 指定陣列中活動磁盤的數量
–spare-devices 指定陣列中的備用磁盤數目。
-s或–scan 掃描配置文件或/proc/mdstat文件來搜索軟raid的配置信息,該參數不能單獨使用,只能配置其他參數才能使用

準備4個空閒磁盤

1創建分區

[root@xiaoagiao ~]# fdisk /dev/sdc                    //分別對四塊磁盤進行分區
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xfed67348.

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M
Partition 1 of type Linux and of size 100 MiB is set

Command (m for help): w

2 創建RAID5

[root@xiaoagiao ~]# mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 /dev/sd[c-f]1  //創建一個RAID5,/dev/md0,活動磁盤數量爲3,一個備用
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.


[root@xiaoagiao ~]# mdadm -D /dev/md0   //查看/dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat Apr  4 02:02:27 2020
        Raid Level : raid5                   //RAID類型
        Array Size : 200704 (196.00 MiB 205.52 MB)
     Used Dev Size : 100352 (98.00 MiB 102.76 MB)
      Raid Devices : 3                    //可用爲3個
     Total Devices : 4                    //總計4個
       Persistence : Superblock is persistent

       Update Time : Sat Apr  4 02:02:29 2020
             State : clean
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : xiaoagiao:0  (local to host xiaoagiao)
              UUID : 24a8ee5f:4b36775e:a6681144:a9d26e98
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1
       4       8       65        2      active sync   /dev/sde1

       3       8       81        -      spare   /dev/sdf1


3創建RAID配置文件

RAID配置文件“mdadm.conf”,默認是不存在的。所以需要手工創建。該配置文件存在的主要作用是啓動系統的時候。能夠自動加載軟RAID,同時方便日後管理。
mdadm.conf包括:用於軟raid的所有設備。ARRAY選項所指定陣列設備名,RAID級別,陣列中活動設備數目及UUID

[root@xiaoagiao ~]# mdadm  --detail  --scan > /etc/mdadm.conf       //創建mdadm.conf,但需要修改內容
[root@xiaoagiao ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 spares=1 name=xiaoagiao:0 UUID=24a8ee5f:4b36775e:a6681144:a9d26e98

[root@xiaoagiao ~]# vi /etc/mdadm.conf
[root@xiaoagiao ~]# cat /etc/mdadm.conf
DEVICE /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1               //添加用於RAID設備
ARRAY /dev/md0 metadata=1.2 spares=1 name=xiaoagiao:0 UUID=24a8ee5f:4b36775e:a6681144:a9d26e98

4創建文件系統

# mkfs.ext4 /dev/md0

維護RAID

若一個磁盤損壞(/dev/sdc1),系統會自動標記該磁盤爲故障磁盤,並停止對故障磁盤的讀寫操作。所以需要將/dev/sdc1標記爲出現故障的磁盤。

[root@xiaoagiao ~]# mdadm /dev/md0 --fail /dev/sdc1      //標記/dev/sdc1/損壞
mdadm: set /dev/sdc1 faulty in /dev/md0

因爲有一個備用磁盤,所以當一個損壞後備用磁盤會立即頂替工作。通過/proc/mdstat文件可查看當前陣列的狀態。

[root@xiaoagiao ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md0 : active raid5 sde1[4] sdf1[3] sdd1[1] sdc1[0](F)    //可以看出 sdc1損壞,其他三個工作正常。
      200704 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]

unused devices: <none>

移除有故障的磁盤。

# mdadm /dev/md0 --remove /dev/sdc1
mdadm: hot removed /dev/sdc1 from /dev/md0

添加新的磁盤

# mdadm /dev/md0 --add /dev/sdc1
mdadm: added /dev/sdc1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章