RAID (Redundant Array of Independent Disks, anteriorment Inexpensive Disks) és una tecnologia que combina múltiples discos durs o SSD en una única unitat lògica per aconseguir un o més d’aquests objectius:
Important: RAID no substitueix les còpies de seguretat. Protegeix contra fallades de maquinari, però no contra esborraments accidentals, ransomware, incendis o robatoris.
| Tipus | Descripció |
|---|---|
| RAID per maquinari | Controladora RAID dedicada (PCIe, integrada a la placa). La CPU no intervé. Més rendiment i funcions avançades. |
| RAID per programari | El sistema operatiu gestiona el RAID (Linux mdadm,
Windows). Més flexible i econòmic. |
| RAID híbrid (fakeRAID) | Controladora bàsica a la placa base amb suport parcial per programari (BIOS RAID). No recomanat per a servidors. |
Disc 1: [A1][A3][A5][A7]
Disc 2: [A2][A4][A6][A8]Resum:
| Característica | Valor |
|---|---|
| Redundància | Cap |
| Rendiment | Excel·lent |
| Capacitat útil | 100% |
| Discos mínims | 2 |
Disc 1: [A1][A2][A3][A4]
Disc 2: [A1][A2][A3][A4] ← còpia exactaResum:
| Característica | Valor |
|---|---|
| Redundància | Excel·lent |
| Rendiment | Bo (lectura) |
| Capacitat útil | 50% |
| Discos mínims | 2 |
Disc 1: [A1][B1][C1][P4]
Disc 2: [A2][B2][P3][C2]
Disc 3: [A3][P2][B3][C3]
Disc 4: [P1][A4][B4][C4]
↑ Paritat distribuïda entre tots els discosResum:
| Característica | Valor |
|---|---|
| Redundància | 1 disc |
| Rendiment | Bona lectura |
| Capacitat útil | (N-1)/N × 100% |
| Discos mínims | 3 |
Perill de RAID 5: Durant la reconstrucció després d’una fallada, la càrrega sobre els discos restants és molt alta. Si falla un segon disc durant la reconstrucció, es perden totes les dades. Amb discos grans (>2 TB), el risc és significatiu.
Disc 1: [A1][B1][P4][Q4]
Disc 2: [A2][P3][Q3][B2]
Disc 3: [P2][Q2][A3][B3]
Disc 4: [Q1][A4][B4][P4]
↑ Doble paritat (P i Q)Resum:
| Característica | Valor |
|---|---|
| Redundància | 2 discos |
| Rendiment | Bona lectura |
| Capacitat útil | (N-2)/N × 100% |
| Discos mínims | 4 |
RAID 0 (striping)
┌────────────────────┐
RAID 1│ RAID 1│
[D1][D2]│ [D3][D4]│
mirall │ mirall │Resum:
| Característica | Valor |
|---|---|
| Redundància | Excel·lent |
| Rendiment | Excel·lent |
| Capacitat útil | 50% |
| Discos mínims | 4 |
| Nivell | Descripció |
|---|---|
| RAID 2 | Striping a escala de bits amb codi Hamming. Obsolet. |
| RAID 3 | Striping a escala de bytes amb disc de paritat dedicat. Obsolet. |
| RAID 4 | Striping a escala de blocs amb disc de paritat dedicat. Gairebé obsolet. |
| RAID 01 (0+1) | Striping primer, mirall després. Menys tolerant a fallades que RAID 10. |
| RAID 50 | RAID 5 sobre conjunts en RAID 0. Mínim 6 discos. |
| RAID 60 | RAID 6 sobre conjunts en RAID 0. Mínim 8 discos. |
| Nivell | Discos mín. | Capacitat útil | Fallades tolerades | Lectura | Escriptura | Ús típic |
|---|---|---|---|---|---|---|
| RAID 0 | 2 | 100% | 0 | ↑↑↑ | ↑↑↑ | Rendiment pur |
| RAID 1 | 2 | 50% | N-1 | ↑↑ | = | Alta disponibilitat |
| RAID 5 | 3 | (N-1)/N | 1 | ↑↑ | ↑ | NAS, fitxers |
| RAID 6 | 4 | (N-2)/N | 2 | ↑↑ | ↑ | Discos grans |
| RAID 10 | 4 | 50% | 1 per parella | ↑↑↑ | ↑↑ | BBDD, alt rendiment |
mdadm# Debian/Ubuntu
sudo apt install mdadm
# Fedora/RHEL
sudo dnf install mdadm
# Arch/Manjaro
sudo pacman -S mdadm# RAID 0 amb 2 discos
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
# RAID 1 amb 2 discos
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# RAID 5 amb 3 discos
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
# RAID 6 amb 4 discos
sudo mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# RAID 10 amb 4 discos
sudo mdadm --create /dev/md0 --level=10 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde
# RAID 5 amb disc de recanvi (spare)
sudo mdadm --create /dev/md0 --level=5 --raid-devices=3 \
--spare-devices=1 /dev/sdb /dev/sdc /dev/sdd /dev/sde# Desar la configuració a /etc/mdadm/mdadm.conf
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
# Actualitzar initramfs (Debian/Ubuntu)
sudo update-initramfs -u# Formatar el dispositiu RAID
sudo mkfs.ext4 /dev/md0
sudo mkfs.xfs /dev/md0
# Muntar
sudo mount /dev/md0 /mnt/raid
# Afegir a /etc/fstab per al muntatge automàtic
echo "/dev/md0 /mnt/raid ext4 defaults 0 2" | sudo tee -a /etc/fstab# Veure l'estat del RAID
sudo mdadm --detail /dev/md0
cat /proc/mdstat
# Veure informació d'un disc del RAID
sudo mdadm --examine /dev/sdb
# Monitoratge continu
watch -n 1 cat /proc/mdstatExemple de sortida de /proc/mdstat:
Personalities : [raid1] [raid5] [raid6]
md0 : active raid5 sdb[0] sdc[1] sdd[2]
2930276352 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
unused devices: <none>Els estats possibles de cada disc:
| Indicador | Significat |
|---|---|
U |
Disc actiu i en bon estat |
_ |
Disc fallat o absent |
S |
Disc de recanvi (spare) |
# Marcar un disc com a fallat (simulació o disc defectuós)
sudo mdadm /dev/md0 --fail /dev/sdc
# Treure el disc fallat
sudo mdadm /dev/md0 --remove /dev/sdc
# Afegir un disc nou (reconstrucció automàtica)
sudo mdadm /dev/md0 --add /dev/sde
# Seguir la reconstrucció
watch cat /proc/mdstatDurant la reconstrucció, /proc/mdstat mostrarà el
progrés:
md0 : active raid5 sde[3] sdb[0] sdd[2]
2930276352 blocks super 1.2 level 5 [3/2] [U_U]
[========>..........] recovery = 45.3% (443648/976896) finish=12.3min# Afegir un disc al RAID 5 (ampliar de 3 a 4 discos)
sudo mdadm --add /dev/md0 /dev/sdf
sudo mdadm --grow /dev/md0 --raid-devices=4
# Redimensionar el sistema de fitxers
sudo resize2fs /dev/md0 # ext4
# o
sudo xfs_growfs /mnt/raid # xfs# Desmuntar i aturar
sudo umount /mnt/raid
sudo mdadm --stop /dev/md0
# Eliminar les signatures RAID dels discos
sudo mdadm --zero-superblock /dev/sdb
sudo mdadm --zero-superblock /dev/sdcZFS és un sistema de fitxers avançat que integra RAID de manera nativa (anomenat RAID-Z):
| RAID-Z | Equivalent aprox. | Fallades tolerades |
|---|---|---|
| RAID-Z1 | RAID 5 | 1 disc |
| RAID-Z2 | RAID 6 | 2 discos |
| RAID-Z3 | — | 3 discos |
| Mirror | RAID 1 | N-1 discos |
ZFS afegeix checksums de dades, de duplicació, compressió, snapshots i protecció contra bit rot (corrupció silenciosa).
# Crear un pool RAID-Z1 amb 3 discos
sudo zpool create dades raidz1 /dev/sdb /dev/sdc /dev/sdd
# Veure l'estat
sudo zpool status
sudo zpool listLVM (Logical Volume Manager) pot combinar-se amb RAID per afegir flexibilitat:
# Crear volums físics
sudo pvcreate /dev/md0
# Crear grup de volums
sudo vgcreate vg_dades /dev/md0
# Crear volum lògic
sudo lvcreate -L 100G -n lv_dades vg_dades
sudo mkfs.ext4 /dev/vg_dades/lv_dadesLVM també pot crear RAID intern sense mdadm:
# RAID 1 amb LVM
sudo lvcreate --type raid1 -m 1 -L 100G -n lv_mirall vg_dadesUn disc de recanvi (hot spare) és un disc inactiu que entra en funcionament automàticament quan falla un disc actiu, iniciant la reconstrucció sense intervenció manual.
# Afegir un spare a un RAID existent
sudo mdadm /dev/md0 --add /dev/sde
# Si el RAID ja és complet, sde queda com a spare
# Veure els spares
sudo mdadm --detail /dev/md0 | grep spareRAID no és backup: complementar sempre amb còpies de seguretat externes.
Discos de la mateixa mida: els discos de mides diferents aprofiten només la mida del més petit.
No barrejar discos de marques/lots iguals: si venen del mateix lot, poden fallar alhora.
Hot spare: tenir sempre un disc de recanvi preparat, especialment en RAID 5/6.
Monitoratge actiu: configurar alertes per correu quan hi hagi degradació:
# /etc/mdadm/mdadm.conf
MAILADDR admin@exemple.catSubstituir discos degradats immediatament: no deixar un RAID degradat durant molt de temps.
Fer proves de reconstrucció periòdicament en entorn de proves.
RAID 6 o RAID 10 per a discos de gran capacitat (>4 TB) on el risc de fallada durant reconstrucció és alt.
Checksums: usar ZFS o sistemes de fitxers amb integritat per detectar bit rot.
Documentar la configuració per facilitar la recuperació en cas d’emergència.
# 1. Identificar l'estat
cat /proc/mdstat
sudo mdadm --detail /dev/md0
# 2. Identificar el disc fallat
sudo mdadm --detail /dev/md0 | grep -i fail
dmesg | grep -i "I/O error"
# 3. Marcar com a fallat i treure (si no ho ha fet el sistema)
sudo mdadm /dev/md0 --fail /dev/sdc
sudo mdadm /dev/md0 --remove /dev/sdc
# 4. Substituir físicament el disc
# 5. Afegir el nou disc
sudo mdadm /dev/md0 --add /dev/sdc
# 6. Seguir la reconstrucció
watch cat /proc/mdstat
mdadm# Crear RAID
mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd
# Estat
mdadm --detail /dev/md0
cat /proc/mdstat
# Desar configuració
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
# Fallar disc
mdadm /dev/md0 --fail /dev/sdc
# Treure disc
mdadm /dev/md0 --remove /dev/sdc
# Afegir disc
mdadm /dev/md0 --add /dev/sde
# Aturar RAID
mdadm --stop /dev/md0
# Esborrar superbloc
mdadm --zero-superblock /dev/sdbman mdadm — Manual complet de mdadmman md — Documentació del driver md del kernel