目录
1. RAID介绍以及mdadm安装
1.1 安装mdadm工具
2. 创建raid0
2.1 环境准备
2.2 使用两个磁盘创建RAID0
2.3 查看RAID0信息
2.4 对创建的RAID0进行格式化并挂载
2.5 设置成开机挂载
2.6 删除RAID0
3. 创建raid5
3.1 环境准备
3.2 用3个磁盘来模拟RAID5,第四个磁盘为热备盘
3.3 模拟硬盘故障
3.4 热移除故障盘
3.5 格式化RAID5,并进行挂载
1. RAID介绍以及mdadm安装
RAID是一种利用多个磁盘驱动器组合在一起以提供数据冗余、性能改进或两者兼而有之的技术。通过将多个磁盘组成一个逻辑单元,RAID技术可以增加数据的可靠性、提高性能和/或实现数据备份。
以下是几种常见的RAID级别及其特点:
RAID 0:
无冗余,采用条带化(striping)方式将数据均匀分布在各个磁盘上。提高了读写性能,但没有冗余保护,一个磁盘故障会导致数据丢失。
RAID 1:采用镜像方式,将数据同时写入两个磁盘中。提供了数据冗余,当一个磁盘故障时,另一个磁盘仍然可以提供数据。
RAID 5:带有分布式奇偶校验的条带化,提供了数据冗余和性能改进。可以容忍一块磁盘的故障,当一块磁盘损坏时,系统可以通过计算校验信息来恢复数据。
RAID 6:类似于RAID 5,但具有双重奇偶校验,可以容忍两块磁盘的故障。
提供更高的数据冗余性,但写入性能可能略有下降。
RAID 10 (RAID 1+0):将多组磁盘采用RAID 1进行镜像,然后这些镜像组再采用RAID 0进行条带化。
结合了RAID 1和RAID 0的优点,提供了良好的性能和冗余性。
RAID技术可以根据需求选择不同的级别来平衡性能、冗余和成本。它在服务器、存储系统和数据中心中被广泛应用,以提升数据安全性和存储效率。
1.1 安装mdadm工具
[root@localhost ~]# yum install -y mdadm
2. 创建raid0
2.1 环境准备
添加两块磁盘
查看系统磁盘信息
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part├─centos-root 253:0 0 37G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sdc 8:32 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom
2.2 使用两个磁盘创建RAID0
[root@localhost ~]# mdadm -Cv /dev/md0 -l 0 -n 2 /dev/{sdb,sdc}
mdadm: chunk size defaults to 512K
mdadm: Fail to create md0 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
-C 表示创建一个新的RAID设备
-v 表示在创建RAID阵列时会显示更多的详细信息
/dev/md0 是要创建的RAID设备的名称
-l 0 表示指定RAID级别,这里是RAID0,即数据条带化并且具有分布式奇偶校验
-n 2 表示指定RAID设备中的磁盘数量,这里是2个数据盘
/dev/{sdb,sdc} 这是指定用于RAID的数据盘设备列表,即/dev/sdb, /dev/sdc
2.3 查看RAID0信息
#查看系统上的RAID[root@localhost ~]# cat /proc/mdstat
Personalities : [raid0]
md0 : active raid0 sdc[1] sdb[0]41908224 blocks super 1.2 512k chunksunused devices: <none>#查看系统磁盘信息[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part├─centos-root 253:0 0 37G 0 lvm /└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─md0 9:0 0 40G 0 raid0
sdc 8:32 0 20G 0 disk
└─md0 9:0 0 40G 0 raid0
sr0 11:0 1 4.2G 0 rom#查看RAID0详细信息
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Fri Mar 8 02:17:07 2024Raid Level : raid0Array Size : 41908224 (39.97 GiB 42.91 GB)Raid Devices : 2Total Devices : 2Persistence : Superblock is persistentUpdate Time : Fri Mar 8 02:17:07 2024State : cleanActive Devices : 2Working Devices : 2Failed Devices : 0Spare Devices : 0Chunk Size : 512KConsistency Policy : noneName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 20350e76:46fd613b:3c9a7434:dcbac2c8Events : 0Number Major Minor RaidDevice State0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc
生成配置文件mdadm.conf
[root@localhost ~]# mdadm -Ds > /etc/mdadm.conf
[root@localhost ~]# cat /etc/mdadm.conf
ARRAY /dev/md0 metadata=1.2 name=localhost.localdomain:0 UUID=20350e76:46fd613b:3c9a7434:dcbac2c8
2.4 对创建的RAID0进行格式化并挂载
#进行格式化
[root@localhost ~]# 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#挂载到/mnt目录上
[root@localhost ~]# mount /dev/md0 /mnt#查看验证
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 37G 1.2G 36G 4% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.5M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /mnt
[root@localhost ~]# df -Th /mnt
Filesystem Type Size Used Avail Use% Mounted on
/dev/md0 xfs 40G 33M 40G 1% /mnt
2.5 设置成开机挂载
[root@localhost ~]# blkid /dev/md0
/dev/md0: UUID="60190190-1c09-45ad-876d-6b08ab80cd96" TYPE="xfs"
[root@localhost ~]# echo "UUID=60190190-1c09-45ad-876d-6b08ab80cd96 /mnt xfs defaults 0 0" >> /etc/fstab
2.6 删除RAID0
[root@localhost ~]# umount /mnt/
[root@localhost ~]# mdadm -S /dev/md0
mdadm: stopped /dev/md0
[root@localhost ~]# rm -rf /etc/mdadm.conf
[root@localhost ~]# mdadm --zero-superlock /dev/sdb
mdadm: unrecognized option '--zero-superlock'
Usage: mdadm --helpfor help
[root@localhost ~]# mdadm --zero-superblock /dev/sdb
[root@localhost ~]# mdadm --zero-superblock /dev/sdc
vi /etc/fstab
3. 创建raid5
3.1 环境准备
新建四个磁盘
目的:用3个磁盘来模拟RAID5,第四个磁盘分热备盘
查看系统磁盘信息
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part├─centos-root 253:0 0 37G 0 lvm /└─centos-swap 253:1 0 2G 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.2G 0 rom
3.2 用3个磁盘来模拟RAID5,第四个磁盘为热备盘
[root@localhost ~]# mdadm -Cv /dev/md5 -l 5 -n 3 /dev/{sdb,sdc,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: Fail to create md5 when using /sys/module/md_mod/parameters/new_array, fallback to creation via node
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
-C 表示创建一个新的RAID设备
-v 表示在创建RAID阵列时会显示更多的详细信息
/dev/md5 是要创建的RAID设备的名称
-l 5 表示指定RAID级别,这里是RAID5,即数据条带化并且具有分布式奇偶校验
-n 3 表示指定RAID设备中的磁盘数量,这里是3个数据盘
/dev/{sdb,sdc,sdd} 这是指定用于RAID的数据盘设备列表,即/dev/sdb, /dev/sdc, 和 /dev/sdd
--spare-devices=1 用于指定热备盘的数量,这里是1个
/dev/sde 指定作为热备盘的设备
查看RAID5详细信息
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Fri Mar 8 01:53:07 2024Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Fri Mar 8 01:53:14 2024State : clean, degraded, recoveringActive Devices : 2Working Devices : 4Failed Devices : 0Spare Devices : 2Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 11% completeName : localhost.localdomain:5 (local to host localhost.localdomain)UUID : bf25b287:21d4b521:08e8b8a7:9f0fcc22Events : 2Number Major Minor RaidDevice State0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc4 8 48 2 spare rebuilding /dev/sdd3 8 64 - spare /dev/sde
3.3 模拟硬盘故障
[root@localhost ~]# mdadm -f /dev/md5 /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md5#再次查看RAID5详细信息,发现/dev/sde正在参与重建,原来的/dev/sdb变成了坏盘
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Fri Mar 8 01:53:07 2024Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Fri Mar 8 01:55:02 2024State : clean, degraded, recoveringActive Devices : 2Working Devices : 3Failed Devices : 1Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 4% completeName : localhost.localdomain:5 (local to host localhost.localdomain)UUID : bf25b287:21d4b521:08e8b8a7:9f0fcc22Events : 20Number Major Minor RaidDevice State3 8 64 0 spare rebuilding /dev/sde1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd0 8 16 - faulty /dev/sdb
3.4 热移除故障盘
[root@localhost ~]# mdadm -r /dev/md5 /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md5#再次查看RAID5信息
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:Version : 1.2Creation Time : Fri Mar 8 01:53:07 2024Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Fri Mar 8 01:57:18 2024State : cleanActive Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:5 (local to host localhost.localdomain)UUID : bf25b287:21d4b521:08e8b8a7:9f0fcc22Events : 38Number Major Minor RaidDevice State3 8 64 0 active sync /dev/sde1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd
3.5 格式化RAID5,并进行挂载
#格式化
[root@localhost ~]# 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#挂载到/mnt目录上
[root@localhost ~]# mount /dev/md5 /mnt/#查看验证
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 37G 1.2G 36G 4% /
devtmpfs 899M 0 899M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 9.5M 902M 2% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda1 1014M 142M 873M 14% /boot
tmpfs 183M 0 183M 0% /run/user/0
/dev/md5 40G 33M 40G 1% /mnt