天天看點

學習筆記:CentOS7學習之十五: RAID磁盤陣列的原理與搭建學習筆記:CentOS7學習之十五: RAID磁盤陣列的原理與搭建

目錄

  • 學習筆記:CentOS7學習之十五: RAID磁盤陣列的原理與搭建
    • 14.1 RAID概念
      • 14.1.1 RAID幾種常見的類型
      • 14.1.2 RAID-0工作原理
      • 14.1.3 RAID-1工作原理
      • 14.1.4 RAID-5工作原理
      • 14.1.5 嵌套RAID級别
      • 14.1.6 RAID硬碟失效處理
    • 14.2 RAID-0-1-5-10搭建及使用-删除RAID及注意事項
      • 14.2.1 RAID的實作方式
      • 14.2.2 RAID實驗
        • 14.2.2.1 實驗環境搭建
        • 14.2.2.2 建立raid0
        • 14.2.2.3 建立raid1
        • 14.2.2.4 建立raid5
        • 14.2.2.5 建立raid10
        • 14.2.2.6 删除RAID所有資訊方法以及注意事項

本文用于記錄學習體會、心得,兼做筆記使用,友善以後複習總結。内容基本完全參考學神教育教材,圖檔大多取材自學神教育資料,在此非常感謝MK老師和學神教育的優質教學。希望各位因學習需求而要進行轉載時,能申明出處為學神教育,謝謝各位!

學習筆記:CentOS7學習之十五: RAID磁盤陣列的原理與搭建

有半個月沒有更新了,得抓緊了,歲數大了學的慢等多花時間還要提高效率。這部分内容是完全參考學神教育RHCE的教材學習,裡面很多圖檔、内容都直接應用RHCE學神中原有材料。感謝學神教育和學神各位老師的悉心教導。特地轉錄為blog,一是相當于做筆記複習,二為友善以後查詢。

14.1 RAID概念

磁盤陣列(Redundant Arrays of Independent Disks,RAID),有“獨立磁盤構成的具有備援能力的陣列”之意。 磁盤陣列是由很多價格較便宜的磁盤,以硬體(RAID卡)或軟體(MDADM)形式組合成一個容量巨大的磁盤組,利用多個磁盤組合在一起,提升整個磁盤系統效能。利用這項技術,将資料切割成許多區段,分别存放在各個硬碟上。 磁盤陣列還能利用同位檢查(Parity Check)的觀念,在數組中任意一個硬碟故障時,仍可讀出資料,在資料重構時,将資料經計算後重新置入新硬碟中

注:RAID可以預防資料丢失,但是它并不能完全保證你的資料不會丢失,是以大家使用RAID的同時還是注意備份重要的資料

RAID的建立有兩種方式:軟RAID(通過作業系統軟體來實作)和硬RAID(使用硬體陣列卡);在企業中用的最多的是:raid1、raid5和raid10。不過随着雲的高速發展,供應商一般可以把硬體問題解決掉。

14.1.1 RAID幾種常見的類型

級 别 說 明 最低磁盤個數 空間使用率 各自的優缺點
RAID0 條帶卷 2+ 100% 讀寫速度快,不容錯
RAID1 鏡像卷 2 50% 讀寫速度一般,容錯
RAID5 帶奇偶校驗的條帶卷 3+ (n-1)/n 讀寫速度快,容錯,允許壞一塊盤
RAID6 帶奇偶校驗的條帶集,雙校驗 4+ (n-2)/n 讀寫快,容錯,允許壞兩塊盤
RAID10 RAID1的安全+RAID0的高速 4 50% 讀寫速度快,容錯
RAID50 RAID5的安全+RAID0的高速 6 (n-2)/n 讀寫速度快,容錯

RAID基本思想:把好幾塊硬碟通過一定組合方式把它組合起來,成為一個新的硬碟陣列組,進而使它能夠達到高性能硬碟的要求

RAID有三個關鍵技術:
鏡像:提供了資料的安全性;
chunk條帶(塊大小也可以說是條帶的粒度),它的存在的就是為了提高I/O,提供了資料并發性
資料的校驗:提供了資料的安全

Raid相對于單個磁盤優點:

  • 擴充容量
  • 提高讀寫速度,提升硬碟性能
  • 高可靠性

14.1.2 RAID-0工作原理

條帶 (strping),也是我們最早出現的RAID模式

需磁盤數量:2塊以上(大小最好相同),是組建磁盤陣列中最簡單的一種形式,隻需要2塊以上的硬碟即可.

特點:成本低,可以提高整個磁盤的性能和吞吐量。RAID 0沒有提供備援或錯誤修複能力,速度快.

任何一個磁盤的損壞将損壞全部資料;磁盤使用率為100%。

14.1.3 RAID-1工作原理

mirroring(鏡像卷),需要磁盤兩塊以上

原理:是把一個磁盤的資料鏡像到另一個磁盤上,也就是說資料在寫入一塊磁盤的同時,會在另一塊閑置的磁盤上生成鏡像檔案,(同步)

RAID 1 mirroring(鏡像卷),至少需要兩塊硬碟,raid大小等于兩個raid分區中最小的容量(最好将分區大小分為一樣),資料有備援,在存儲時同時寫入兩塊硬碟,實作了資料備份;

磁盤使用率為50%,即2塊100G的磁盤構成RAID1隻能提供100G的可用空間。如下圖

14.1.4 RAID-5工作原理

需要三塊或以上硬碟,可以提供熱備盤實作故障的恢複;隻損壞一塊,沒有問題。但如果同時損壞兩塊磁盤,則資料将都會損壞。

空間使用率: (n-1)/n 2/3 如下圖所示

奇偶校驗資訊的作用:

當RAID5的一個磁盤資料發生損壞後,利用剩下的資料和相應的奇偶校驗資訊去恢複被損壞的資料。

14.1.5 嵌套RAID級别

RAID-10鏡像+條帶:RAID 10是将鏡像和條帶進行兩級組合的RAID級别,第一級是RAID1鏡像對,第二級為RAID 0。比如我們有8塊盤,它是先兩兩做鏡像,形成了新的4塊盤,然後對這4塊盤做RAID0;當RAID10有一個硬碟受損其餘硬碟會繼續工作,這個時候受影響的硬碟隻有2塊

14.1.6 RAID硬碟失效處理

一般兩種處理方法:熱備和熱插拔

  1. 熱備:HotSpare

定義:當備援的RAID組中某個硬碟失效時,在不幹擾目前RAID系統的正常使用的情況下,用RAID系統中另外一個正常的備用硬碟自動頂替失效硬碟,及時保證RAID系統的備援性

全局式:備用硬碟為系統中所有的備援RAID組共享

專用式:備用硬碟為系統中某一組備援RAID組專用

如下圖所示:是一個全局熱備的示例,該熱備盤由系統中兩個RAID組共享,可自動頂替任何一個RAID中的一個失效硬碟

  1. 熱拔插:HotSwap

定義:在不影響系統正常運轉的情況下,用正常的實體硬碟替換RAID系統中失效硬碟。

14.2 RAID-0-1-5-10搭建及使用-删除RAID及注意事項

14.2.1 RAID的實作方式

RAID的實作方式分為兩種:硬raid和軟raid

  1. 硬RAID:

需要RAID卡,我們的磁盤是接在RAID卡的,由它統一管理和控制。資料也由它來進行配置設定和維護;它有自己的cpu,處理速度快

一般都是先做陣列才裝系統 ,一般伺服器啟動時,有顯示進入配置Riad的提示,比如:按下CTRL+L/H/M進入配置raid界面

  1. 軟RAID:

Linux核心中有一個md(multiple devices)子產品在底層管理RAID裝置,它會在應用層給我們提供一個應用程式的工具mdadm ,mdadm是linux下用于建立和管理軟體RAID的指令。

mdadm指令常見參數解釋:

-C或--creat 建立一個新陣列 -r 移除裝置
-A 激活磁盤陣列 -l 或--level= 設定磁盤陣列的級别
-D或--detail 列印陣列裝置的詳細資訊 -n或--raid-devices= 指定陣列成員(分區/磁盤)的數量
-s或--scan 掃描配置檔案或/proc/mdstat得到陣列缺失資訊 -x或--spare-devicds= 指定陣列中備用盤的數量
-f 将裝置狀态定為故障 -c或--chunk= 設定陣列的塊chunk塊大小 ,機關為KB
-a或--add 添加裝置到陣列 -G或--grow 改變陣列大小或形态
-v或--verbose 顯示詳細資訊 -S 停止陣列

14.2.2 RAID實驗

14.2.2.1 實驗環境搭建

新增11塊以上硬碟,大小均為20g用于下面的實驗:

[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,   0 6月  14 17:31 /dev/sda
brw-rw----. 1 root disk 8,   1 6月  14 17:31 /dev/sda1
brw-rw----. 1 root disk 8,   2 6月  14 17:31 /dev/sda2
brw-rw----. 1 root disk 8,  16 6月  14 17:31 /dev/sdb
brw-rw----. 1 root disk 8,  32 6月  14 17:31 /dev/sdc
brw-rw----. 1 root disk 8,  48 6月  14 17:31 /dev/sdd
brw-rw----. 1 root disk 8,  64 6月  14 17:31 /dev/sde
brw-rw----. 1 root disk 8,  80 6月  14 17:31 /dev/sdf
brw-rw----. 1 root disk 8,  96 6月  14 17:31 /dev/sdg
brw-rw----. 1 root disk 8, 112 6月  14 17:31 /dev/sdh
brw-rw----. 1 root disk 8, 128 6月  14 17:31 /dev/sdi
brw-rw----. 1 root disk 8, 144 6月  14 17:31 /dev/sdj
brw-rw----. 1 root disk 8, 160 6月  14 17:31 /dev/sdk
brw-rw----. 1 root disk 8, 176 6月  14 17:31 /dev/sdl
brw-rw----. 1 root disk 8, 192 6月  14 17:31 /dev/sdm
brw-rw----. 1 root disk 8, 208 6月  14 17:31 /dev/sdn

           

實驗環境:

raid種類 磁盤 熱備盤
raid0 sdb、sdc
raid1 sdd、sde sdf
raid5 sdg、sdh、sdi sdj
raid10 分區:sdk1,sdk2,sdk3.sdk4

注:工作中正常做raid全部是使用獨立的磁盤來做的。為了節約資源,raid10以一塊磁盤上多個分區來代替多個獨立的磁盤做raid,但是這樣做出來的raid沒有備份資料的作用,因為一塊磁盤壞了,這個磁盤上所做的raid也就都壞了。

14.2.2.2 建立raid0

  1. 建立raid0
[root@localhost ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
mdadm: chunk size defaults to 512K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

[root@localhost ~]# mdadm -Dvs
ARRAY /dev/md0 level=raid0 num-devices=2 metadata=1.2 name=localhost.localdomain:0 UUID=9a8ead7c:55c06fd5:78780906:3b39f596
   devices=/dev/sdb,/dev/sdc


           
  1. 檢視raid資訊
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:
           Version : 1.2					
     Creation Time : Fri Jun 14 17:53:00 2019
        Raid Level : raid0	#raid級别
        Array Size : 41908224 (39.97 GiB 42.91 GB)	#raid的大小,raid0為兩塊硬碟之和
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 17:53:00 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

        Chunk Size : 512K	#chunk為raid中最小的存儲機關,相當于磁盤中的簇和block大小

Consistency Policy : none

              Name : localhost.localdomain:0  (local to host localhost.localdomain)
              UUID : 9a8ead7c:55c06fd5:78780906:3b39f596
            Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf	#生成配置檔案


           
  1. 對建立的RAID0進行檔案系統建立并挂載
[root@localhost ~]# mkfs.xfs /dev/md0	#使用md0建立XFS檔案系統
meta-data=/dev/md0               isize=512    agcount=16, agsize=654720 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=10475520, imaxpct=25
         =                       sunit=128    swidth=256 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=5120, version=2
         =                       sectsz=512   sunit=8 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

[root@localhost ~]# mkdir /raid0 
[root@localhost ~]# mount /dev/md0 /raid0	#挂載md0
[root@localhost ~]# cp /etc/passwd /raid0
[root@localhost ~]# df -h
檔案系統                 容量  已用  可用 已用% 挂載點
/dev/mapper/centos-root   36G  4.9G   31G   14% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   13M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    394M  4.0K  394M    1% /run/user/42
tmpfs                    394M   40K  394M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/yangjie/CentOS 7 x86_64
tmpfs                    394M     0  394M    0% /run/user/0
/dev/md0                  40G   33M   40G    1% /raid0


           
  1. 開機自動挂載
[root@localhost ~]# blkid /dev/md0	#檢視md0的UUID,注意此UUID和mdadm -D中檢視的不一樣,開機挂載的UUID要使用該UUID
/dev/md0: UUID="aab211ff-3283-4055-8e1e-a7175337e023" TYPE="xfs" 

[root@localhost ~]# echo "UUID=aab211ff-3283-4055-8e1e-a7175337e023 /raid0 xfs defaults 0 0" >> /etc/fstab

[root@localhost ~]# umount /dev/md0
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
檔案系統                 容量  已用  可用 已用% 挂載點
/dev/mapper/centos-root   36G  4.9G   31G   14% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   13M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    394M  4.0K  394M    1% /run/user/42
tmpfs                    394M   40K  394M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/yangjie/CentOS 7 x86_64
tmpfs                    394M     0  394M    0% /run/user/0
/dev/md0                  40G   33M   40G    1% /raid0
[root@localhost ~]# ll /raid0
總用量 4
-rw-r--r--. 1 root root 3367 6月  14 18:04 passwd


           

14.2.2.3 建立raid1

實驗内容如下:

raid種類 磁盤 熱備盤
raid1 sdd、sde sdf

步驟:

  • 建立RAID1
  • 添加1個熱備盤
  • 模拟磁盤故障,自動頂替故障盤
  • 從raid1中移出故障盤

使用sdd、sde、sdf建立raid1,其中1塊熱備盤

[root@localhost ~]# mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sd[d,e,f] 
mdadm: Note: this array has metadata at the start and
    may not be suitable as a boot device.  If you plan to
    store '/boot' on this device please ensure that
    your boot-loader understands md/v1.x metadata, or use
    --metadata=0.90
mdadm: size set to 20954112K
Continue creating array? y		#是否建立,輸入y确認建立
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md1 started.
[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf	#更新陣列配置表
[root@localhost ~]# mdadm -D /dev/md1	#檢視整列資訊
/dev/md1:
           Version : 1.2
     Creation Time : Fri Jun 14 18:21:53 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB) # raid1的硬碟使用率為50%
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 18:22:17 2019
             State : clean 
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : ca7c7046:533ead41:e9c85b9c:caec344d
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       1       8       64        1      active sync   /dev/sde

       2       8       80        -      spare   /dev/sdf		#sdf為熱備盤spare
[root@localhost ~]# mkfs.xfs /dev/md1	#使用md1制作XFS檔案系統
meta-data=/dev/md1               isize=512    agcount=4, agsize=1309632 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=5238528, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

           

挂載/dev/md1

[root@localhost ~]# mkdir /raid1	
[root@localhost ~]# mount /dev/md1 /raid1
[root@localhost ~]# cp /etc/passwd /raid1
[root@localhost ~]# df -h
檔案系統                 容量  已用  可用 已用% 挂載點
/dev/mapper/centos-root   36G  4.9G   31G   14% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   13M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    394M  4.0K  394M    1% /run/user/42
tmpfs                    394M   40K  394M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/yangjie/CentOS 7 x86_64
tmpfs                    394M     0  394M    0% /run/user/0
/dev/md0                  40G   33M   40G    1% /raid0
/dev/md1                  20G   33M   20G    1% /raid1	#确認已經挂載

           

為/dev/md1添加開機自動挂載

[root@localhost ~]# blkid /dev/md1	#檢視/dev/md1的UUID
/dev/md1: UUID="d1abb2ab-f970-4135-aebd-2f55c64869e1" TYPE="xfs" 
[root@localhost ~]# echo "UUID=d1abb2ab-f970-4135-aebd-2f55c64869e1 /raid1 xfs defaults 0 0" >> /etc/fstab
[root@localhost ~]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Fri May 17 14:49:19 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=46533d14-34f2-4e0a-990b-7156c236f2e6 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
UUID=aab211ff-3283-4055-8e1e-a7175337e023 /raid0 xfs defaults 0 0
UUID=d1abb2ab-f970-4135-aebd-2f55c64869e1 /raid1 xfs defaults 0 0

           

檢測開機自動挂載是否成功

[root@localhost ~]# umount /dev/md1
[root@localhost ~]# mount -a	
[root@localhost ~]# df -h
檔案系統                 容量  已用  可用 已用% 挂載點
/dev/mapper/centos-root   36G  4.9G   31G   14% /
devtmpfs                 2.0G     0  2.0G    0% /dev
tmpfs                    2.0G     0  2.0G    0% /dev/shm
tmpfs                    2.0G   13M  2.0G    1% /run
tmpfs                    2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1               1014M  166M  849M   17% /boot
tmpfs                    394M  4.0K  394M    1% /run/user/42
tmpfs                    394M   40K  394M    1% /run/user/1000
/dev/sr0                 4.3G  4.3G     0  100% /run/media/yangjie/CentOS 7 x86_64
tmpfs                    394M     0  394M    0% /run/user/0
/dev/md0                  40G   33M   40G    1% /raid0
/dev/md1                  20G   33M   20G    1% /raid1

           

模拟損壞,下面模拟RAID1中資料盤/dev/sde出現故障,觀察/dev/sdf備用盤能否自動頂替故障盤

[root@localhost ~]# mdadm /dev/md1 -f /dev/sde	#模拟sde故障
mdadm: set /dev/sde faulty in /dev/md1
[root@localhost ~]# mdadm -D /dev/md1	#檢視md1狀态
/dev/md1:
           Version : 1.2
     Creation Time : Fri Jun 14 18:21:53 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 3
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 18:29:31 2019
             State : clean, degraded, recovering 
    Active Devices : 1
   Working Devices : 2
    Failed Devices : 1
     Spare Devices : 1

Consistency Policy : resync

    Rebuild Status : 38% complete	#熱備盤開始資料同步

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : ca7c7046:533ead41:e9c85b9c:caec344d
            Events : 25

    Number   Major   Minor   RaidDevice State
       0       8       48        0      active sync   /dev/sdd
       2       8       80        1      spare rebuilding   /dev/sdf	#熱備盤自動重建

       1       8       64        -      faulty   /dev/sde	#sde狀态為故障
[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf	#更新md配置檔案
[root@localhost ~]# ls /raid1/	#檢視md1上挂載的檔案系統是否可用,确認可用
passwd
[root@localhost ~]# mdadm /dev/md1 -r /dev/sde	#删除故障硬碟
mdadm: hot removed /dev/sde from /dev/md1
[root@localhost ~]# mdadm -D /dev/md1	#重新檢視md1狀态
/dev/md1:
           Version : 1.2
     Creation Time : Fri Jun 14 18:21:53 2019
        Raid Level : raid1
        Array Size : 20954112 (19.98 GiB 21.46 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 2
     Total Devices : 2
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 18:33:42 2019
             State : clean 
    Active Devices : 2
   Working Devices : 2
    Failed Devices : 0
     Spare Devices : 0

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)
              UUID : ca7c7046:533ead41:e9c85b9c:caec344d
            Events : 37

    Number   Major   Minor   RaidDevice State		#檢視發現沒有熱備盤了
       0       8       48        0      active sync   /dev/sdd
       2       8       80        1      active sync   /dev/sdf
[root@localhost ~]# mdadm /dev/md1 -a /dev/sde	#添加一塊新熱備盤
mdadm: added /dev/sde
[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf #更新raid配置檔案


           

14.2.2.4 建立raid5

實驗環境:

raid種類 磁盤 熱備盤
raid5 sdg、sdh、sdi sdj

實驗步驟

  • 建立RAID5, 添加1個熱備盤,指定chunk大小為32K

-x或--spare-devicds= 指定陣列中備用盤的數量

-c或--chunk= 設定陣列的塊chunk塊大小 ,機關為KB

  • 停止陣列,重新激活陣列
  • 使用熱備盤,擴充陣列容量,從3個磁盤擴充到4個

建立raid5

[root@localhost ~]# mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sd[g,h,i,j] 
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Fri Jun 14 19:07:56 2019
        Raid Level : raid5	#設定raid的級别為raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB) #raid5的磁盤使用率為(n-1)/n
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 19:08:09 2019
             State : clean, degraded, recovering 
    Active Devices : 2
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 2

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Rebuild Status : 27% complete	#建立的raid5正在同步中

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 22292719:a4fd7782:6b02ad40:d8e86734
            Events : 5

    Number   Major   Minor   RaidDevice State
       0       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       4       8      128        2      spare rebuilding   /dev/sdi	#奇偶校驗盤

       3       8      144        -      spare   /dev/sdj	#熱備盤

           

停止md5陣列

[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf #更新raid配置檔案
[root@localhost ~]# mdadm -D /dev/md5	#停止之前确認md5資料同步已經完成
/dev/md5:
           Version : 1.2
     Creation Time : Fri Jun 14 19:07:56 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 19:08:43 2019
             State : clean 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync	#資料同步已經完成

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 22292719:a4fd7782:6b02ad40:d8e86734
            Events : 18

    Number   Major   Minor   RaidDevice State
       0       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       4       8      128        2      active sync   /dev/sdi

       3       8      144        -      spare   /dev/sdj
[root@localhost ~]# 
[root@localhost ~]# cat /proc/mdstat	#檢視磁盤陣列的運作情況
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
md5 : active raid5 sdi[4] sdj[3](S) sdh[1] sdg[0]
      41908224 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
md1 : active raid1 sde[3](S) sdf[2] sdd[0]
      20954112 blocks super 1.2 [2/2] [UU]
      
md0 : active raid0 sdc[1] sdb[0]
      41908224 blocks super 1.2 512k chunks
      
unused devices: <none>
[root@localhost ~]# mdadm -S /dev/md5	#停止md5
mdadm: stopped /dev/md5

           

激活md5

[root@localhost ~]# mdadm -A /dev/md5
mdadm: /dev/md5 has been started with 3 drives and 1 spare.

# 使用mdadm -As會掃描/etc/mdadm.conf檔案,進而激活所有未激活的陣列

           

擴充RAID5磁盤陣列,将熱備盤增加到md5中,使用md5中可以使用的磁盤數量為4塊

[root@localhost ~]# mdadm -G /dev/md5 -n 4 
#-G或--grow	改變陣列大小或形态
[root@localhost ~]# mdadm -D /dev/md5  #檢視狀态
/dev/md5:
           Version : 1.2
     Creation Time : Fri Jun 14 19:07:56 2019
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)	#同步未完成時,磁盤空間未變化
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 19:31:33 2019
             State : clean, reshaping 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

    Reshape Status : 22% complete  #重塑狀态:22%完成 ,等到100%, 資料才同步完,同步完後會變成成:Consistency Policy : resync   #一緻性政策:再同步,表示已經同步完
     Delta Devices : 1, (3->4)

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 22292719:a4fd7782:6b02ad40:d8e86734
            Events : 42

    Number   Major   Minor   RaidDevice State
       0       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       4       8      128        2      active sync   /dev/sdi
       3       8      144        3      active sync   /dev/sdj	#發現原來的熱備盤狀态由spare變為active
[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf  #儲存配置檔案
 
           

備注:陣列隻有在正常狀态下,才能擴容,降級及重構時不允許擴容。對于raid5來說,隻能增加成員盤,不能減少。而對于raid1來說,可以增加成員盤,也可以減少。同步未完成時,磁盤空間不變,等到同步完成以後,磁盤整列空間才會擴充

[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
           Version : 1.2
     Creation Time : Fri Jun 14 19:07:56 2019
        Raid Level : raid5
        Array Size : 62862336 (59.95 GiB 64.37 GB)	#同步完成後,磁盤空間成功擴充
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 19:32:33 2019
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:5  (local to host localhost.localdomain)
              UUID : 22292719:a4fd7782:6b02ad40:d8e86734
            Events : 50

    Number   Major   Minor   RaidDevice State
       0       8       96        0      active sync   /dev/sdg
       1       8      112        1      active sync   /dev/sdh
       4       8      128        2      active sync   /dev/sdi
       3       8      144        3      active sync   /dev/sdj



           

14.2.2.5 建立raid10

實驗環境:

raid種類 磁盤 熱備盤
raid10 分區:sdk1,sdk2,sdk3.sdk4

建立4個分區

[root@localhost ~]# fdisk /dev/sdk
歡迎使用 fdisk (util-linux 2.23.2)。

更改将停留在記憶體中,直到您決定将更改寫入磁盤。
使用寫入指令前請三思。

Device does not contain a recognized partition table
使用磁盤辨別符 0xd9698c5c 建立新的 DOS 磁盤标簽。

指令(輸入 m 擷取幫助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
分區号 (1-4,預設 1):
起始 扇區 (2048-41943039,預設為 2048):
将使用預設值 2048
Last 扇區, +扇區 or +size{K,M,G} (2048-41943039,預設為 41943039):+1G
分區 1 已設定為 Linux 類型,大小設為 1 GiB

指令(輸入 m 擷取幫助):N
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): 
Using default response p
分區号 (2-4,預設 2):
起始 扇區 (2099200-41943039,預設為 2099200):
将使用預設值 2099200
Last 扇區, +扇區 or +size{K,M,G} (2099200-41943039,預設為 41943039):+1G
分區 2 已設定為 Linux 類型,大小設為 1 GiB

指令(輸入 m 擷取幫助):
指令(輸入 m 擷取幫助):N
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): 
Using default response p
分區号 (3,4,預設 3):
起始 扇區 (4196352-41943039,預設為 4196352):
将使用預設值 4196352
Last 扇區, +扇區 or +size{K,M,G} (4196352-41943039,預設為 41943039):+1G
分區 3 已設定為 Linux 類型,大小設為 1 GiB

指令(輸入 m 擷取幫助):N
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): P
已選擇分區 4
起始 扇區 (6293504-41943039,預設為 6293504):
将使用預設值 6293504
Last 扇區, +扇區 or +size{K,M,G} (6293504-41943039,預設為 41943039):+1G
分區 4 已設定為 Linux 類型,大小設為 1 GiB

指令(輸入 m 擷取幫助):W
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盤。
[root@localhost ~]# 
[root@localhost ~]# 
[root@localhost ~]# ll /dev/sdk*
brw-rw----. 1 root disk 8, 160 6月  14 19:43 /dev/sdk
brw-rw----. 1 root disk 8, 161 6月  14 19:43 /dev/sdk1
brw-rw----. 1 root disk 8, 162 6月  14 19:43 /dev/sdk2
brw-rw----. 1 root disk 8, 163 6月  14 19:43 /dev/sdk3
brw-rw----. 1 root disk 8, 164 6月  14 19:43 /dev/sdk4

           

建立raid10

[root@localhost ~]# mdadm -C -v /dev/md10 -l 10 -n 4 /dev/sdk[1-4]
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 1046528K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md10 started.
[root@localhost ~]# mdadm -D /dev/md10	#檢視md10狀态
/dev/md10:
           Version : 1.2
     Creation Time : Fri Jun 14 19:46:24 2019
        Raid Level : raid10
        Array Size : 2093056 (2044.00 MiB 2143.29 MB)
     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

       Update Time : Fri Jun 14 19:46:29 2019
             State : clean 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : near=2
        Chunk Size : 512K

Consistency Policy : resync

              Name : localhost.localdomain:10  (local to host localhost.localdomain)
              UUID : 6faacb8b:af73181a:fe5e529b:89311ed3
            Events : 17

    Number   Major   Minor   RaidDevice State
       0       8      161        0      active sync set-A   /dev/sdk1 
       1       8      162        1      active sync set-B   /dev/sdk2
       2       8      163        2      active sync set-A   /dev/sdk3
       3       8      164        3      active sync set-B   /dev/sdk4
[root@localhost ~]# mdadm -Dvs > /etc/mdadm.conf 	#儲存raid配置檔案

           

14.2.2.6 删除RAID所有資訊方法以及注意事項

[root@localhost ~]# umount /dev/md0	#如果raid已經挂載,需要先解除安裝
[root@localhost ~]# mdadm -S /dev/md0	#停止md0
mdadm: stopped /dev/md0
[root@localhost ~]# vim /etc/mdadm.conf	#删除raid配置檔案中md0的資訊
[root@localhost ~]# mdadm --zero-superblock /dev/sdb	 #清除實體磁盤中的raid辨別
[root@localhost ~]# mdadm --zero-superblock /dev/sdc	 #清除實體磁盤中的raid辨別
[root@localhost ~]# mdadm -Dvs	#檢視發現已經沒有md0資訊
ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 spares=1 name=localhost.localdomain:1 UUID=ca7c7046:533ead41:e9c85b9c:caec344d
   devices=/dev/sdd,/dev/sde,/dev/sdf
ARRAY /dev/md5 level=raid5 num-devices=4 metadata=1.2 name=localhost.localdomain:5 UUID=22292719:a4fd7782:6b02ad40:d8e86734
   devices=/dev/sdg,/dev/sdh,/dev/sdi,/dev/sdj
ARRAY /dev/md10 level=raid10 num-devices=4 metadata=1.2 name=localhost.localdomain:10 UUID=6faacb8b:af73181a:fe5e529b:89311ed3
   devices=/dev/sdk1,/dev/sdk2,/dev/sdk3,/dev/sdk4


           

參數:--zero-superblock : erase the MD superblock from a device. #擦除裝置中的MD超級塊

END

2019-6-14 12:04:50