一.raid简介
独立硬盘冗余阵列,旧称廉价磁盘冗余阵列,简称磁盘阵列。利用虚拟化存储技术把多个硬盘组合起来,成为一个或多个硬盘阵列组,目的为提升性能或数据冗余,或是两者同时提升。RAID把多个硬盘组合成为一个逻辑硬盘,因此,操作系统只会把它当作一个实体硬盘。
RAID功能的实现:提高IO能力,提高耐用性,磁盘冗余备份
磁盘阵列分为软raid和硬raid
软raid依靠软件来实现,硬raid依靠硬件实现
二.raid级别
常用raid级别为raid0,raid1,raid5,raid10等
1.raid 0
因为读写时都可以并行处理,所以在所有的级别中,RAID 0的速度是最快的。但是RAID 0既没有冗余功能,也不具备容错能力,如果一个磁盘(物理)损坏,所有数据都会丢失。磁盘利用率100%,最少磁盘数为1(有效需要2块以上)
2.raid 1
也称为镜像, 两组以上的N个磁盘相互作镜像,在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,与RAID 0相同。另外写入速度有微小的降低。磁盘利用率为50%,有冗余能力,最少磁盘数为2,磁盘数为2n(n>=1)
3.raid 5
读取性能提升,写的性能略微降低,利用率(n-1)/n(n>=3),有备份能力,也拥有容错能力允许最多一块磁盘损坏,最少磁盘数量为3
4.raid 10
读取性能提升,写的性能也提升,利用率50%,有备份能力,也拥有容错能力:每一组镜像最多只能坏一块,最少磁盘数为4,磁盘数为偶数
raid级别 | 0 | 1 | 5 | 10 |
是否有备份 | 否 | 是 | 是 | 是 |
是否提高读的性能 | 是 | 是 | 是 | 是 |
是否提高写的性能 | 是 | 下降 | 下降 | 是 |
磁盘利用率 | 100% | 50% | (n-1)/n(n>=3) | 50% |
最少使用几块磁盘 | 1(有效得2块以上) | 2n(n>=1) | 3 | 4+(偶数) |
最多可以坏几块磁盘 | 1 | n | 1 | 使用磁盘的一半(不能为同一组) |
三.实现软raid
mdadm工具:为软RAID提供管理界面,为空余磁盘添加冗余,结合内核中的md(multi devices)RAID设备可命名 为/dev/md0、/dev/md1、/dev/md2、/dev/md3等
模式:创建:-C装配:-A监控:-F管理:-f, -r, -a
<raiddevice>: /dev/md#
<component-devices>: 任意块设备
-C: 创建模式-n #: 使用#个块设备来创建此RAID-l #:指明要创建的RAID的级别 0 1 5 10 -c CHUNK_SIZE: 指明块大小,单位k-x #: 指明空闲盘的个数 热备 盘 -x 1 /dev/sd#
-D:显示raid的详细信息mdadm -D /dev/md#软raid名字
管理模式: -f: 标记指定磁盘为损坏-a: 添加磁盘-r: 移除磁盘
观察md的状态: cat /proc/mdstat
1.给设备添加四块磁盘
2.使用lsblk命令查看磁盘情况
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 4G 0 part /boot
└─sda2 8:2 0 54G 0 part ├─centos-root 253:0 0 50G 0 lvm /└─centos-swap 253:1 0 4G 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.使用mdadm创建并定义RAID设备
#使用mdadm创建并定义RAID设备
mdadm -C /dev/md0 -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1
命令 raid名 级别 盘数 热备
[root@localhost ~]# mdadm -C /dev/md0 -l 5 -n 3 /dev/sd{b,c,d} -x1 /dev/sde
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
[root@localhost ~]# ll /dev/md0
brw-rw----. 1 root disk 9, 0 4月 11 14:40 /dev/md0
4.格式化
[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
5.挂载
[root@localhost ~]# mount /dev/md0 /mnt/
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 5.1G 45G 11% /
devtmpfs 977M 0 977M 0% /dev
tmpfs 993M 0 993M 0% /dev/shm
tmpfs 993M 9.1M 984M 1% /run
tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 4.0G 161M 3.9G 4% /boot
tmpfs 199M 12K 199M 1% /run/user/42
tmpfs 199M 0 199M 0% /run/user/0
/dev/md0 40G 33M 40G 1% /mnt
[root@localhost ~]# cd /mnt/
6.显示详细信息
使用mdadm -D /dev/md0 命令查看信息
[root@localhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Thu Apr 11 14:40:43 2024Raid Level : raid5Array Size : 41910272 (39.97 GiB 42.92 GB)Used Dev Size : 20955136 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Thu Apr 11 14:42:29 2024State : clean Active Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:0 (local to host localhost.localdomain)UUID : 3644acba:b5dab328:cb568387:5e92a22fEvents : 22Number Major Minor RaidDevice State0 8 16 0 active sync /dev/sdb1 8 32 1 active sync /dev/sdc4 8 48 2 active sync /dev/sdd3 8 64 - spare /dev/sde
7.强制/dev/sdb下线
使用mdadm /dev/md0 -f /dev/sdbm命令
8.移除磁盘,添加磁盘
移除:mdadm /dev/md0 -r /dev/sdb
添加:mdadm /dev/md0 -a /dev/sdb