磁盘阵列
RAID redundant array of independent disks
独立硬盘冗余阵列
高效的数据组织和条带化的并行访问
RAID数据组织的形式
条带: 硬盘中单个或多个连续的扇区,是一块硬盘进行一次数据读写的最小单元
分条: 同一个硬盘的阵列中,有多个硬盘驱动器上相同位置编号的条带
raid分为软件raid 和硬件raid
硬件raid需要raid卡
RAID数据保护方式:
- 在另外一块冗余的硬盘上保存副本
- 奇偶校验算法
RAID常用级别 特性
RAID 0 用在UI数据安全要求不高 但是要求廉价 高利用率的情况下
RAID 1 主要通过二次读写,实现镜像磁盘 在数据安全很重要的场所使用
RAID 3 比RAID0 多了个奇偶校验 多一块磁盘 但是数据冗余性好
RAID 5 *每个磁盘都能存校验 ,有几个盘就能产生几个读写盘 比raid3 减少一个校验盘
RAID 6 RAID6 P+Q RAID6 DP 两种校验算法 至少需要N+2 个磁盘来构成阵列,一般用在数据可靠性极高,可用性极高的场所
RAID 10 将镜像raid 和条带进行组合 先进性raid1 镜像 然后再做raid0
RAID 50 * 使用了raid5和raid0来混合使用 第一级是raid5 第二级是raid0
RAID 的两种备份方法
1 热备
2 重构
RAID状态:
- 创建raid
- 创建成功 raid正常工作
- 发生故障 raid降级等待
- 假设重构成功 则回到2状态
- 如果失败则raid直接失效
RAID实验:通过linux服务器 添加四块新硬盘 完成raid 10的部署
[root@rhel8-server ~]# lsblk 查看目前系统的硬盘情况
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 6.6G 0 rom /run/media/root/RHEL-8-0-0-BaseOS-x86_64
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
nvme0n3 259:4 0 20G 0 disk
nvme0n4 259:5 0 20G 0 disk
nvme0n5 259:6 0 20G 0 disk
mdadm命令的常用参数以及作用
例如:
[root@rhel8-server ~]# mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/nvme0n2 /dev/nvme0n3 /dev/nvme0n4 /dev/nvme0n5
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 20954112K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@rhel8-server ~]# lsblk 查看四块硬盘raid等级
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sr0 11:0 1 6.6G 0 rom /run/media/root/RHEL-8-0-0-BaseOS-x86_64
nvme0n1 259:0 0 20G 0 disk
├─nvme0n1p1 259:1 0 1G 0 part /boot
└─nvme0n1p2 259:2 0 19G 0 part
├─rhel-root 253:0 0 17G 0 lvm /
└─rhel-swap 253:1 0 2G 0 lvm [SWAP]
nvme0n2 259:3 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n3 259:4 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n4 259:5 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
nvme0n5 259:6 0 20G 0 disk
└─md0 9:0 0 40G 0 raid10
[root@rhel8-server ~]# mkfs.ext4 /dev/md0 把dev/md0 格式化成了ext4文件系统
mke2fs 1.44.3 (10-July-2018)
Creating filesystem with 10477056 4k blocks and 2621440 inodes
Filesystem UUID: e8aef858-ace4-43c6-9949-917eea035134
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624
Allocating group tables: done
Writing inode tables: done
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done
[root@rhel8-server ~]# mkdir /RAID 创建挂载点
[root@rhel8-server ~]# mount /dev/md0 /RAID 把硬盘设备挂载到挂载点
[root@rhel8-server ~]# 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 10M 1.9G 1% /run
tmpfs 1.9G 0 1.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 4.0G 14G 24% /
/dev/nvme0n1p1 1014M 169M 846M 17% /boot
tmpfs 376M 16K 376M 1% /run/user/42
tmpfs 376M 2.3M 374M 1% /run/user/0
/dev/sr0 6.7G 6.7G 0 100% /run/media/root/RHEL-8-0-0-BaseOS-x86_64
/dev/md0 40G 49M 38G 1% /RAID
[root@rhel8-server RAID]# mdadm -D /dev/md0 通过-D来查看磁盘阵列详细信息确认无误
/dev/md0:
Version : 1.2
Creation Time : Sat Jan 15 22:41:06 2022
Raid Level : raid10
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 : Sat Jan 15 22:46:53 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : rhel8-server:0 (local to host rhel8-server)
UUID : 9fd06c28:af2e0d36:eb1a09bb:9fc11b9b
Events : 19
Number Major Minor RaidDevice State
0 259 3 0 active sync set-A /dev/nvme0n2
1 259 4 1 active sync set-B /dev/nvme0n3
2 259 5 2 active sync set-A /dev/nvme0n4
3 259 6 3 active sync set-B /dev/nvme0n5
当确认无误后,我们需要来对系统做永久挂载 永久挂载配置文件 /etc/fstab
[root@rhel8-server RAID]# vim /etc/fstab
[root@rhel8-server RAID]#
[root@rhel8-server RAID]#
[root@rhel8-server RAID]# cat /etc/fstab
/etc/fstab
Created by anaconda on Fri Jan 7 22:26:04 2022
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.
After editing this file, run 'systemctl daemon-reload' to update systemd
units generated from this file.
/dev/mapper/rhel-root / xfs defaults 0 0
UUID=7002282d-fea0-4380-9a2b-6495aba65ee6 /boot xfs defaults 0 0
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/md0 /RAID ext4 defaults 0 0
最后一行加入以上信息
完成后务必 mount -a 保证配置文件没有问题 如果报错 必须回去修改配置文件