Linux / Systèmes
📚 Stockage Backup LVM RAID ZFS rsync Sauvegarde Linux
LVM, RAID mdadm, ZFS, rsync — gérer les volumes, assurer la redondance et mettre en place une stratégie de sauvegarde 3-2-1.
LVM — Gestion des volumes logiques
LVM ajoute une couche d'abstraction entre les disques physiques et les systèmes de fichiers. Les 3 niveaux : PV (Physical Volume) → VG (Volume Group) → LV (Logical Volume).
lvm-commands.sh
# === CRÉATION === # 1. Initialiser les disques en PV pvcreate /dev/sdb /dev/sdc pvdisplay # 2. Créer un groupe de volumes vgcreate vg_data /dev/sdb /dev/sdc vgdisplay vg_data # 3. Créer un volume logique (50G) lvcreate -L 50G -n lv_www vg_data mkfs.ext4 /dev/vg_data/lv_www mount /dev/vg_data/lv_www /var/www # Ajouter au fstab pour montage automatique echo "/dev/vg_data/lv_www /var/www ext4 defaults 0 2" >> /etc/fstab # === EXTENSION === # Étendre un LV de 20G supplémentaires (online) lvextend -L +20G /dev/vg_data/lv_www resize2fs /dev/vg_data/lv_www # ext4 xfs_growfs /var/www # xfs # === SNAPSHOT (avant une mise à jour risquée) === lvcreate -L 5G -s -n snap_www_avant_maj /dev/vg_data/lv_www # Restaurer un snapshot umount /var/www lvconvert --merge /dev/vg_data/snap_www_avant_maj # === COMMANDES UTILES === lvs # Lister les LV vgs # Lister les VG pvs # Lister les PV lsblk <span class="cm"># Vue arborescente des blocs
RAID Linux — mdadm
| Niveau RAID | Disques min | Tolérance pannes | Performance | Usage typique |
|---|---|---|---|---|
| RAID 0 | 2 | 0 (aucune) | Lecture/écriture max | Scratch disk, performances pures |
| RAID 1 | 2 | 1 disque | Lecture améliorée | OS, données critiques |
| RAID 5 | 3 | 1 disque | Bon équilibre | Serveurs fichiers, NAS |
| RAID 6 | 4 | 2 disques | Lecture bonne | Données très critiques |
| RAID 10 | 4 | 1 par miroir | Excellent | Bases de données |
mdadm-commands.sh
# Créer un RAID 1 (miroir) sur 2 disques mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc # Créer un RAID 5 sur 3 disques mdadm --create /dev/md0 --level=5 --raid-devices=3 /dev/sdb /dev/sdc /dev/sdd # Suivre la synchronisation initiale watch -n2 cat /proc/mdstat # Détails de l'array mdadm --detail /dev/md0 # Sauvegarder la configuration mdadm --detail --scan >> /etc/mdadm/mdadm.conf update-initramfs -u # Simuler une panne de disque mdadm --manage /dev/md0 --fail /dev/sdb # Remplacer par un nouveau disque mdadm --manage /dev/md0 --remove /dev/sdb mdadm --manage /dev/md0 --add /dev/sde # Surveiller l'état (alerte email) echo "MAILADDR admin@entreprise.local" >> /etc/mdadm/mdadm.conf mdadm --monitor --scan --daemonise
Stratégie de sauvegarde 3-2-1
Règle 3-2-1 : 3 copies des données · sur 2 supports différents · dont 1 hors site (cloud, bande, NAS distant, site DR).
backup-321.sh
#!/bin/bash
set -euo pipefail
SRC="/etc /var/www /var/lib/mysql /home"
LOCAL="/backup/local"
REMOTE_HOST="backup-offsite"
REMOTE_PATH="/backup/$(hostname)"
DATE=$(date +%Y%m%d_%H%M)
LOG="/var/log/backup.log"
log() {{ echo "[$(date)] $*" | tee -a $LOG; }}
log "=== Démarrage sauvegarde $DATE ==="
# 1. Backup local incrémental avec hardlinks (économise l'espace)
log "Copie locale vers $LOCAL/$DATE"
rsync -az --link-dest="$LOCAL/latest" $SRC "$LOCAL/$DATE/" 2>>$LOG
ln -snf "$LOCAL/$DATE" "$LOCAL/latest"
# 2. Sync vers site distant (hors-site = règle 3-2-1)
log "Sync vers $REMOTE_HOST"
rsync -az -e "ssh -i /root/.ssh/backup_key -o StrictHostKeyChecking=no" \
"$LOCAL/$DATE/" "$REMOTE_HOST:$REMOTE_PATH/$DATE/" 2>>$LOG
# 3. Purger les sauvegardes locales > 30 jours
find "$LOCAL" -maxdepth 1 -name "20*" -mtime +30 -exec rm -rf {{}} \; 2>>$LOG
# 4. Vérifier l'espace disque restant
USED=$(df -h $LOCAL | awk 'NR==2 {{print $5}}')
log "Espace utilisé sur $LOCAL : $USED"
log "=== Sauvegarde $DATE terminée ==="
<span class="cm"># Cron : 0 2 * * * root /usr/local/bin/backup-321.shZFS — Système de fichiers avancé
zfs-commands.sh
# Installation (Debian/Ubuntu) apt install -y zfsutils-linux # Créer un pool en miroir (RAID 1) zpool create datapool mirror /dev/sdb /dev/sdc # Créer un pool RAID-Z (similaire RAID 5) zpool create datapool raidz /dev/sdb /dev/sdc /dev/sdd # Créer des datasets (sous-volumes) zfs create datapool/www zfs create datapool/databases zfs create datapool/backups # Activer la compression zfs set compression=lz4 datapool # Snapshot instantané zfs snapshot datapool/www@avant-maj zfs list -t snapshot # Restaurer un snapshot zfs rollback datapool/www@avant-maj # Envoyer un snapshot vers un autre hôte zfs send datapool/www@avant-maj | ssh backup-srv "zfs receive pool2/www" # État du pool zpool status zpool iostat -v 2
Ressources stockage & backup
Ajouter Les Fibrés à mes sources préférées
Retrouvez plus souvent nos guides dans vos résultats Google