目錄
- 學習筆記: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所有資訊方法以及注意事項
- 14.1 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硬碟失效處理
一般兩種處理方法:熱備和熱插拔
- 熱備:HotSpare
定義:當備援的RAID組中某個硬碟失效時,在不幹擾目前RAID系統的正常使用的情況下,用RAID系統中另外一個正常的備用硬碟自動頂替失效硬碟,及時保證RAID系統的備援性
全局式:備用硬碟為系統中所有的備援RAID組共享
專用式:備用硬碟為系統中某一組備援RAID組專用
如下圖所示:是一個全局熱備的示例,該熱備盤由系統中兩個RAID組共享,可自動頂替任何一個RAID中的一個失效硬碟
- 熱拔插:HotSwap
定義:在不影響系統正常運轉的情況下,用正常的實體硬碟替換RAID系統中失效硬碟。
14.2 RAID-0-1-5-10搭建及使用-删除RAID及注意事項
14.2.1 RAID的實作方式
RAID的實作方式分為兩種:硬raid和軟raid
- 硬RAID:
需要RAID卡,我們的磁盤是接在RAID卡的,由它統一管理和控制。資料也由它來進行配置設定和維護;它有自己的cpu,處理速度快
一般都是先做陣列才裝系統 ,一般伺服器啟動時,有顯示進入配置Riad的提示,比如:按下CTRL+L/H/M進入配置raid界面
- 軟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
- 建立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
- 檢視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 #生成配置檔案
- 對建立的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
- 開機自動挂載
[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