Directorio de artículos
Prefacio
- RAID (matriz redundante de discos independientes), el nombre completo es matriz redundante de discos independientes
- En pocas palabras, RAID es una combinación de varios discos duros independientes (discos duros físicos) de diferentes formas para formar un grupo de discos duros (disco duro lógico), lo que proporciona un mayor rendimiento de almacenamiento que un solo disco duro y proporciona tecnología de respaldo de datos.
- Desde la perspectiva del usuario, el grupo de discos compuesto es como un disco duro y el usuario puede particionar, formatear, etc.
- Las diferentes formas de componer una matriz de discos se denominan niveles de RAID. Los niveles de RAID también son varios niveles diferentes de tecnología RAID, que pueden proporcionar diferentes velocidades, seguridad y rendimiento de costes.
- La selección del nivel RAID apropiado de acuerdo con la situación real puede cumplir con los requisitos del usuario en cuanto a disponibilidad, rendimiento y capacidad del sistema de almacenamiento.
1. Explicación detallada de la matriz de disco duro RAID
- Combine varios discos duros físicos independientes de diferentes maneras para formar un grupo de discos duros (disco duro lógico) para proporcionar un mayor rendimiento de almacenamiento que un solo disco duro y proporcionar tecnología de respaldo de datos
- RAID se divide en diferentes niveles, los diferentes niveles de RAID han hecho diferentes concesiones en la confiabilidad de los datos y el rendimiento de lectura y escritura
- Los niveles de RAID más utilizados son los siguientes:
- RAID 0
- RAID 1
- RAID 5
- RAID 6
- RAID 1 + 0, etc.
1. Introducción a la matriz de discos RAID 0
- RAID 0 (almacenamiento seccionado)
- RAID 0 divide continuamente los datos en unidades de bits o bytes, y lee / escribe en varios discos en paralelo, por lo que tiene una alta tasa de transferencia de datos, pero no tiene redundancia de datos.
- RAID 0 simplemente mejora el rendimiento y no proporciona una garantía para la confiabilidad de los datos, y la falla de uno de los discos afectará a todos los datos y a la combinación en paralelo de N discos duros.
- RAID 0 no se puede utilizar en ocasiones con altos requisitos de seguridad de datos
2. Introducción a RAID 1 Disk Array
- RAID 1 (almacenamiento reflejado)
- Obtenga redundancia de datos a través de la duplicación de datos de disco y genere datos de respaldo mutuos en un par de discos independientes
- Cuando los datos originales están ocupados, los datos se pueden leer directamente desde la copia espejo, por lo que RAID 1 puede mejorar el rendimiento de lectura
- RAID 1 tiene el costo unitario más alto en la matriz de discos, pero brinda alta seguridad y disponibilidad de datos. Cuando falla un disco, el sistema puede cambiar automáticamente para leer y escribir en el disco espejo sin reorganizar los datos fallidos
3. Introducción a RAID 5 Disk Array
- N (N> = 3) discos forman una matriz, un dato genera N-1 bandas y una copia de los datos de paridad. Se almacena un total de N datos de forma cíclica y uniforme en N discos.
- N discos leen y escriben al mismo tiempo, el rendimiento de lectura es muy alto, pero debido al problema del mecanismo de verificación, el rendimiento de escritura es relativamente bajo
- (N-1) / N Utilización del disco
- Alta confiabilidad, lo que permite dañar un disco sin afectar todos los datos
4. Introducción a RAID 6 Disk Array
- N (N> = 4) discos forman una matriz, (N-2) / N utilización de disco
- En comparación con RAID 5, RAID 6 agrega un segundo bloque de información de paridad independiente
- Dos sistemas de paridad independientes usan algoritmos diferentes, incluso si dos discos fallan al mismo tiempo, no afectará el uso de datos
- En comparación con RAID 5, hay una mayor "pérdida de escritura", por lo que el rendimiento de escritura es deficiente
5. Tabla de comparación de RAID
Nivel de RAID | Cantidad de discos duros | Utilización de disco | ¿Hay un cheque? | Capacidad de protección | Rendimiento de escritura |
---|---|---|---|---|---|
RAID0 | norte | norte | No | No | N veces de un solo disco duro |
RAID1 | N (número par) | N / 2 | No | Permitir una falla en el dispositivo | Necesita escribir dos pares de dispositivos de almacenamiento para prepararse el uno para el otro |
RAID5 | N> 3 | (N-1) / N | Tener | Permitir una falla en el dispositivo | Necesita escribir una verificación de cálculo |
RAID6 | N> 4 | (N-2) / N | Tener | Permitir dos fallas de dispositivo | Necesita verificar el cálculo de doble escritura |
RAID1 + 0 | N> = 4 (número par) | N / 2 | No | Permitir que uno de los dos conjuntos de bases sea incorrecto | N / 2 discos escriben simultáneamente |
6. Introducción a la matriz de discos RAID 1 + 0
- RAID 1 + 0 (duplicación primero, luego división)
- Después de que N (número par, N> = 4) discos se duplican en pares, se combinan en un RAID 0
- Utilización de disco N / 2
- N / 2 discos escriben al mismo tiempo, N discos leen al mismo tiempo
- Alto rendimiento y alta confiabilidad
2. Introducción de la tarjeta de matriz
1. Introducción a la tarjeta de matriz
- La tarjeta de matriz es una placa que se utiliza para realizar la función RAID
- Generalmente compuesto por una serie de componentes como procesador de E / S, controlador de disco duro, conector de disco duro y caché
- Las diferentes tarjetas RAID admiten diferentes funciones RAID:
por ejemplo, admiten RAID0, RAID1, RAID5, RAID10, etc. - Tipos de interfaz de tarjeta RAID:
interfaz IDE, interfaz SCSI, interfaz SATA e interfaz SAS
2. Caché de la tarjeta de matriz
- La caché es el lugar donde la tarjeta RAID intercambia datos con el bus externo. La tarjeta RAID primero transmite los datos a la caché y luego la caché intercambia datos con el bus de datos externo.
- El tamaño y la velocidad del caché son factores importantes directamente relacionados con la velocidad de transmisión real de la tarjeta RAID.
- Las diferentes tarjetas RAID están equipadas con diferentes capacidades de memoria en la fábrica, que generalmente van desde varios megabytes hasta cientos de megabytes.
Tres, crear una matriz de software RAID5 pasos
1. Agregue un disco duro a la máquina virtual
Antes de agregar, no olvide que la máquina virtual debe estar apagada.
Verifique la partición del disco para verificar si el disco duro se creó correctamente.
[root@localhost ~]# fdisk -l
磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009ac95
设备 Boot Start End Blocks Id System
/dev/sda1 * 2048 12584959 6291456 83 Linux
/dev/sda2 12584960 54527999 20971520 83 Linux
/dev/sda3 54528000 62916607 4194304 82 Linux swap / Solaris
/dev/sda4 62916608 83886079 10484736 5 Extended
/dev/sda5 62918656 83886079 10483712 83 Linux
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sde:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
2. Compruebe si el paquete mdadm está instalado.
[root@localhost ~]# rpm -q mdadm
mdadm-4.0-5.el7.x86_64
3. Crea una partición, crea las otras tres de la misma manera
Cambie el número de identificación de la partición a "fd"
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x7f2f5d10 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-83886079,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-83886079,默认为 83886079):
将使用默认值 83886079
分区 1 已设置为 Linux 类型,大小设为 40 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):fd
已将分区“Linux”的类型更改为“Linux raid autodetect”
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7f2f5d10
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 83886079 41942016 fd Linux raid autodetect
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
4. Cree un dispositivo RAID
[root@localhost ~]# mdadm -Cv /dev/md5 -l5 -n3 /dev/sd[b-d]1 -x1 /dev/sde1
mdadm: layout defaults to left-symmetric
mdadm: layout defaults to left-symmetric
mdadm: chunk size defaults to 512K
mdadm: size set to 41909248K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md5 started.
- -C: nuevo
- -v: muestra información detallada sobre el proceso de creación
- / dev / md5: crea el nombre de RAID5
- -a sí: -auto, lo que significa que si algún archivo de dispositivo no existe, se creará automáticamente, que se puede omitir
- -l: Especifique el nivel de RAID, l5 significa crear RAID5
- -n: especifique usar varios discos duros para crear RAID, n3 significa usar 3 discos duros para crear RAID
- / dev / sd [bd] 1: especifique estas cuatro particiones de disco para crear RAID
- -x: especifica el uso de discos duros extremadamente rápidos como discos de repuesto en caliente para RAID, x1 significa reservar un disco duro libre como repuesto
- / dev / sde1: designado como disco duro de repuesto
5. Ver el progreso de la creación de RAID
-
Aquí puede ver el porcentaje de finalización actual (37,5%), el tiempo de espera para la finalización y la velocidad de transmisión
-
[UUU] Para completar, puede ingresar este comando varias veces para ver el progreso de finalización actual
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[=======>.............] recovery = 37.5% (15727256/41909248) finish=2.1min speed=203812K/sec
unused devices: <none>
[root@localhost ~]#
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3](S) sdc1[1] sdb1[0]
83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
[=============>.......] recovery = 68.2% (28595200/41909248) finish=1.0min speed=207154K/sec
unused devices: <none>
- También puede ver el progreso de la creación de RAID con el siguiente comando
- Aquí puedes ver que tres están activos y el otro está libre
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Nov 25 16:24:23 2020
Raid Level : raid5
Array Size : 83818496 (79.94 GiB 85.83 GB)
Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Nov 25 16:27:54 2020
State : clean
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
4 8 49 2 active sync /dev/sdd1
3 8 65 - spare /dev/sde1
6. Realice la recuperación de fallas
- Simular el error de / dev / sdc1
[root@localhost ~]# mdadm /dev/md5 -f /dev/sdc1
mdadm: set /dev/sdc1 faulty in /dev/md5
- Verifique nuevamente, encontrará que el sdc está en un estado defectuoso
[root@localhost ~]# cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4]
md5 : active raid5 sdd1[4] sde1[3] sdc1[1](F) sdb1[0]
83818496 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [U_U]
[==>..................] recovery = 14.3% (6008320/41909248) finish=2.9min speed=200277K/sec
unused devices: <none>
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Nov 25 16:24:23 2020
Raid Level : raid5
Array Size : 83818496 (79.94 GiB 85.83 GB)
Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Nov 25 16:34:28 2020
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 : 32% complete
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
Events : 25
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
3 8 65 1 spare rebuilding /dev/sde1
4 8 49 2 active sync /dev/sdd1
1 8 33 - faulty /dev/sdc1
- Ver encontró que sde1 ha reemplazado a sdc1
[root@localhost ~]# mdadm -D /dev/md5
/dev/md5:
Version : 1.2
Creation Time : Wed Nov 25 16:24:23 2020
Raid Level : raid5
Array Size : 83818496 (79.94 GiB 85.83 GB)
Used Dev Size : 41909248 (39.97 GiB 42.92 GB)
Raid Devices : 3
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Wed Nov 25 16:36:55 2020
State : clean
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost.localdomain:5 (local to host localhost.localdomain)
UUID : e46bf95b:84550d7a:6fd09dc9:66ba9f9f
Events : 37
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
3 8 65 1 active sync /dev/sde1
4 8 49 2 active sync /dev/sdd1
1 8 33 - faulty /dev/sdc1
7. Cree y monte el archivo
Finalmente, cree un directorio md5 en el directorio raíz y luego formatee el RAID
[root@localhost ~]# cd ..
[root@localhost ~]# mkdir /md5
[root@localhost ~]# mkfs.xfs /dev/md5
[root@localhost ~]# cd /md5
[root@localhost ~]# touche md5.txt
[root@localhost md5]# ls
md5.txt
Finalmente, verifique, aquí puede ver que es 80G en lugar de 120G. Como aprendimos anteriormente, la tasa de utilización de RAID5 es solo 3/4
[root@localhost md5]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 20G 4.3G 16G 22% /
devtmpfs devtmpfs 898M 0 898M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda5 xfs 10G 37M 10G 1% /home
/dev/sda1 xfs 6.0G 174M 5.9G 3% /boot
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 28K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
/dev/md5 xfs 80G 33M 80G 1% /md5