RAID簡述
Raid是把多張硬碟組成一個容量更大,安全性更高的磁盤組。并把資料分成多個區段分别存放在不同的實體硬碟裝置上,利用分散讀寫技術來提高整個磁盤組的性能。
類型
常見的Raid方案
- RAID0:最少兩塊,是把多個磁盤合并成一個大磁盤,來提高讀寫,但資料安全性得不到保障

- RAID1:最少兩塊,稱之為鏡像,與RAID0正好相反,為了提高資料安全性資料保留兩份,成本極高
- RAID5:最少三塊,RAID5 技術是把硬碟裝置的資料奇偶校驗資訊儲存到其他硬碟裝置中。RAID 5 磁盤陣列組中資料的奇偶校驗資訊并不是單獨儲存到某一塊硬碟裝置中,而是存儲到除自身以外的其他每一塊硬碟裝置上,這樣的好處是其中任何一裝置損壞後不至于出現緻命缺陷
-
RAID10:最少四塊,RAID 10 技術是 RAID 1+RAID 0 技術的一個“組合體”。其中先分别
兩兩制作成 RAID 1 磁盤陣列,以保證資料的安全性;然後再對兩個 RAID 1磁盤陣列實施 RAID 0 技
術,進一步提高硬碟裝置的讀寫速度。這樣從理論上來講,隻要壞的不是同一組中的所有硬碟,那麼最
多可以損壞 50%的硬碟裝置而不丢失資料。
實操
環境:Centos7 ,
VMWare Workstation添加四塊硬碟
添加好之後重新開機機器,檢視磁盤是否添加成功
[root@master ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 49G 0 part
├─centos-root 253:0 0 45.1G 0 lvm /
└─centos-swap 253:1 0 3.9G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sdd 8:48 0 20G 0 disk
sde 8:64 0 20G 0 disk
sr0 11:0 1 4.4G 0 rom
建立RAID0
利用磁盤分區建立2個磁盤分區,每個大小為20 GB。用這2個20 GB的分區來模拟1個40 GB的硬碟。
最後檢視磁盤名稱
1.安裝mdadm工具(預裝好epel源)
mdadm是一個用于建立、管理、監控RAID裝置的工具,它使用linux中的md驅動。
yum install -y mdadm
2.建立raid
将/dev/sdb和/dev/sdc建立RAID等級為RAID 0的md0(裝置名)
[root@master ~]# 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.
- xfs 格式化
[root@master ~]# mkfs.xfs /dev/md0
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
4.挂載
建立一個使用目錄将裝置md0挂載到目錄下面
[root@master ~]# mkdir /raid0
[root@master ~]# mount /dev/md0 /raid0
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 1.4G 44G 4% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /raid0
可以看到有一個40G名為md0裝置的大硬碟
5.永久挂載
mount隻是臨時對檔案進行挂載,當機器當機重新開機,将需要重新挂載,我們這裡通過修改配置檔案,來進行永久挂載
[root@master ~]# blkid /dev/md0
/dev/md0: UUID="e3073c81-ecdd-4de4-88bd-2161bac56acc" TYPE="xfs"
blkid指令檢視塊裝置的檔案系統類型、LABEL、UUID等資訊
[root@master ~]# echo "/dev/md0 /raid0 xfs defaults 0 0" >> /etc/fstab
系統重新開機時會主動讀取/etc/fstab這個檔案中的内容,根據檔案裡面的配置挂載磁盤。這樣我們隻需要将磁盤的挂載資訊寫入這個檔案中,就不需要手動進行挂載了
6.查詢raid的詳細資訊
[root@master ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Oct 4 21:54:44 2022
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Tue Oct 4 21:54:44 2022
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : master:0 (local to host master)
UUID : fc14cd19:77d3eecf:04f2b081:a0008bbc
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
删除RAID0
[root@master ~]# umount /raid0 ##去挂載
[root@master ~]# mdadm -S /dev/md0 ## 停止RAID
mdadm: stopped /dev/md0
[root@master ~]# mdadm --zero-superblock /dev/sdb
[root@master ~]# mdadm --zero-superblock /dev/sdc
--zero-superblock 來清空磁盤中RAID陣列的超級塊資訊。
RAID運維操作
1.利用磁盤分區建立4個磁盤分區,每個大小為20 GB。用3個20 GB的分區來模拟raid 5,加一個熱備盤。
[root@master ~]# mdadm -Cv /dev/md5 -l 5 -n3 /dev/sdb /dev/sdc /dev/sdd --spare-devices=1 /dev/sde
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.
2.檢視RAID的詳細資訊,
[root@master ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Tue Oct 4 23:23:22 2022
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 : Tue Oct 4 23:24:16 2022
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 : 50% complete
Name : master:5 (local to host master)
UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
Events : 9
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 32 1 active sync /dev/sdc
4 8 48 2 spare rebuilding /dev/sdd
3 8 64 - spare /dev/sde
3.模拟硬碟故障
[root@master ~]# mdadm -f /dev/md5 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5
4.檢視RAID的詳細資訊
[root@master ~]# mdadm -D /dev/md5
/dev/md5:
·······
Consistency Policy : resync
Name : master:5 (local to host master)
UUID : 14f81915:11b1621e:d8737c7f:b60cbc26
Events : 20
Number Major Minor RaidDevice State
- 0 0 0 removed
1 8 32 1 active sync /dev/sdc
- 0 0 2 removed
0 8 16 - faulty /dev/sdb
3 8 64 - spare /dev/sde
4 8 48 - spare /dev/sdd
5.原來的熱備盤/dev/sde正在參與RAID 5的重建,而原來的/dev/sdb變成了壞盤,熱移除故障盤,并重新添加磁盤
[root@master ~]# mdadm -r /dev/md5 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
[root@master ~]# mdadm -a /dev/md5 /dev/sdb
mdadm: added /dev/sdb
[root@master ~]# mkfs.xfs /dev/md5
meta-data=/dev/md5 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@master ~]# mkdir /raid5
[root@master ~]# mount /dev/md5 /raid5/
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 1.9G 0 1.9G 0% /dev/shm
tmpfs 1.9G 12M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/centos-root 46G 1.4G 44G 4% /
/dev/sda1 1014M 150M 865M 15% /boot
tmpfs 378M 0 378M 0% /run/user/0
/dev/md5 40G 33M 40G 1% /raid5