创建RAID0,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 chunks
unused 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.2
Creation Time : Fri Mar 8 02:17:07 2024
Raid Level : raid0
Array Size : 41908224 (39.97 GiB 42.91 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Fri Mar 8 02:17:07 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Chunk Size : 512K
Consistency Policy : none
Name : localhost.localdomain:0 (local to host localhost.localdomain)
UUID : 20350e76:46fd613b:3c9a7434:dcbac2c8
Events : 0
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 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 --help
for 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.2
Creation Time : Fri Mar 8 01:53:07 2024
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 Mar 8 01:53:14 2024
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 : 11% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : bf25b287:21d4b521:08e8b8a7:9f0fcc22
Events : 2
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.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.2
Creation Time : Fri Mar 8 01:53:07 2024
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 Mar 8 01:55:02 2024
State : clean, degraded, recovering
Active Devices : 2
Working Devices : 3
Failed Devices : 1
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Rebuild Status : 4% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : bf25b287:21d4b521:08e8b8a7:9f0fcc22
Events : 20
Number Major Minor RaidDevice State
3 8 64 0 spare rebuilding /dev/sde
1 8 32 1 active sync /dev/sdc
4 8 48 2 active sync /dev/sdd
0 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.2
Creation Time : Fri Mar 8 01:53:07 2024
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 : 3
Persistence : Superblock is persistent
Update Time : Fri Mar 8 01:57:18 2024
State : clean
Active Devices : 3
Working Devices : 3
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 : bf25b287:21d4b521:08e8b8a7:9f0fcc22
Events : 38
Number Major Minor RaidDevice State
3 8 64 0 active sync /dev/sde
1 8 32 1 active sync /dev/sdc
4 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
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端