天天看點

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,原先順序的資料請求被分散到所有的三塊硬碟中同時執行

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

RAID1

定義:

RAID 1通過磁盤資料鏡像實作資料備援,在成對的獨立磁盤上産生互為備份的資料。當原始資料繁忙時,可直接從鏡像拷貝中讀取資料,是以RAID 1可以提高讀取性能。RAID 1是磁盤陣列中機關成本最高的,但提供了很高的資料安全性和可用性。當一個磁盤失效時,系統可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的資料。

工作原理:

RAID1是将一個兩塊硬碟所構成RAID磁盤陣列,其容量僅等于一塊硬碟的容量,因為另一塊隻是當作資料“鏡像”

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

RAID5

定義:

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

工作原理:

RAID5把資料和相對應的奇偶校驗資訊存儲到組成RAID5的各個磁盤上,并且奇偶校驗資訊和相對應的資料分别存儲于不同的磁盤上,其中任意N-1塊磁盤上都存儲完整的資料,也就是說有相當于一塊磁盤容量的空間用于存儲奇偶校驗資訊。是以當RAID5的一個磁盤發生損壞後,不會影響資料的完整性,進而保證了資料安全。當損壞的磁盤被替換後,RAID還會自動利用剩下奇偶校驗資訊去重建此磁盤上的資料,來保持RAID5的高可靠性

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

RAID6

定義:

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

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

RAID10

定義:

RAID10也被稱為鏡象陣列條帶。象RAID0一樣,資料跨磁盤抽取;象RAID1一樣,每個磁盤都有一個鏡象磁盤, 是以RAID 10的另一種會說法是 RAID 0+1

實作原理:

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

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

RAID01

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

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

建立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建立分區

[[email protected] ~]# 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

[[email protected] ~]# 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.


[[email protected] ~]# 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

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

[[email protected] ~]# vi /etc/mdadm.conf
[[email protected] ~]# 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标記為出現故障的磁盤。

[[email protected] ~]# mdadm /dev/md0 --fail /dev/sdc1      //标記/dev/sdc1/損壞
mdadm: set /dev/sdc1 faulty in /dev/md0
           

因為有一個備用磁盤,是以當一個損壞後備用磁盤會立即頂替工作。通過/proc/mdstat檔案可檢視目前陣列的狀态。

[[email protected] ~]# 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

           

繼續閱讀