Robot de sauvegarde sur bandes
Présentation de l’équipement
Overland ArcVault 24
Le robot de sauvegarde utilisé dans l’infrastructure est un Overland ArcVault 24, solution de stockage automatisée pour sauvegardes à long terme.
Caractéristiques techniques
- Capacité maximale : 24 bandes LTO-4
- Configuration actuelle : 12 bandes installées
- Connectivité : Interface SCSI
- Interface : Panneau web intégré
- Capacité par bande : 800 GB (natif) / 1.6 TB (compressé)
- Débit : 120 MB/s (natif) / 240 MB/s (compressé)
État actuel
⚠️ Limitation : Le magasin de droite est manquant, réduisant la capacité de 24 à 12 bandes maximum.
Architecture du système
Connexion physique
Serveur de sauvegarde
↓ (Câble SCSI)
Contrôleur SCSI
↓
Robot Overland ArcVault 24
├── Lecteur LTO-4
├── Magasin gauche (12 emplacements)
└── Magasin droit (manquant)
Configuration réseau
- Interface web : Accessible via IP dédiée
- Protocole : HTTPS avec authentification
- Monitoring : SNMP v2c/v3 supporté
Installation et configuration
Prérequis système
# Installation des outils SCSI
apt install sg3-utils lsscsi mt-utils
# Vérification de la détection du robot
lsscsi
sg_scan
# Test de communication
mt -f /dev/st0 status
Configuration du driver
# Chargement des modules nécessaires
modprobe st
modprobe ch
# Configuration persistante
echo 'st' >> /etc/modules
echo 'ch' >> /etc/modules
Détection des périphériques
# Identification du robot et du lecteur
$ lsscsi
[2:0:0:0] tape QUANTUM ULTRIUM-TD4 27W7 /dev/st0
[2:0:1:0] changer OVERLAND ArcVault 24 0107 /dev/sch0
# Information détaillée
sg_inq /dev/st0
sg_inq /dev/sch0
Interface web de gestion
Accès à l’interface
- URL :
https://[IP_ROBOT]/
- Authentification : Login/mot de passe administrateur
- Protocole : HTTPS avec certificat auto-signé
Fonctionnalités disponibles
- État du système : Température, alimentation, ventilation
- Inventaire des bandes : Position, état, étiquettes
- Opérations : Déplacement, chargement/déchargement
- Maintenance : Nettoyage, diagnostics
- Configuration : Paramètres réseau, utilisateurs
Commandes principales
// Exemples d'API REST (si disponible)
// Inventaire
GET /api/inventory
// Déplacement de bande
POST /api/move
{
"source": "slot:1",
"destination": "drive:0"
}
// État du lecteur
GET /api/drive/status
Automatisation des sauvegardes
Script de sauvegarde
#!/bin/bash
# backup-script.sh
ROBOT_DEV="/dev/sch0"
TAPE_DEV="/dev/st0"
BACKUP_SOURCE="/data"
LOG_FILE="/var/log/backup.log"
# Fonction de logging
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE
}
# Inventaire du robot
inventory() {
mtx -f $ROBOT_DEV inventory
mtx -f $ROBOT_DEV status
}
# Chargement d'une bande
load_tape() {
local slot=$1
log "Chargement de la bande depuis le slot $slot"
mtx -f $ROBOT_DEV load $slot
# Attendre que la bande soit prête
sleep 30
mt -f $TAPE_DEV rewind
}
# Déchargement de la bande
unload_tape() {
local slot=$1
log "Déchargement vers le slot $slot"
mt -f $TAPE_DEV rewind
mt -f $TAPE_DEV offline
mtx -f $ROBOT_DEV unload $slot
}
# Sauvegarde
backup_data() {
log "Début de la sauvegarde"
tar czf - $BACKUP_SOURCE | dd of=$TAPE_DEV bs=64k
if [ $? -eq 0 ]; then
log "Sauvegarde terminée avec succès"
else
log "ERREUR lors de la sauvegarde"
return 1
fi
}
# Exécution principale
main() {
log "=== Début du cycle de sauvegarde ==="
inventory
load_tape 1
backup_data
unload_tape 1
log "=== Fin du cycle de sauvegarde ==="
}
# Lancement avec gestion d'erreurs
if main; then
exit 0
else
log "ÉCHEC du processus de sauvegarde"
exit 1
fi
Planification avec cron
# Ajout dans la crontab
# Sauvegarde quotidienne à 2h du matin
0 2 * * * /opt/scripts/backup-script.sh
# Rotation hebdomadaire le dimanche
0 3 * * 0 /opt/scripts/weekly-rotation.sh
Gestion des bandes
Étiquetage et organisation
# Convention de nommage
YYYY-MM-DD-TYPE-SEQ
# Exemple : 2024-12-17-DAILY-001
# Barcode labels (si supporté)
mtx -f /dev/sch0 inventory
Rotation des supports
Slot | Type | Fréquence | Rétention |
---|---|---|---|
1-5 | Quotidien | Lun-Ven | 1 semaine |
6-9 | Hebdomadaire | Dimanche | 1 mois |
10-12 | Mensuel | 1er du mois | 1 an |
Commandes de gestion
# État détaillé du robot
mtx -f /dev/sch0 inquiry
mtx -f /dev/sch0 status
# Opérations sur les bandes
mtx -f /dev/sch0 load 1 # Charger slot 1
mtx -f /dev/sch0 unload 1 # Décharger vers slot 1
mtx -f /dev/sch0 transfer 1 2 # Déplacer de slot 1 vers 2
# État du lecteur
mt -f /dev/st0 status
mt -f /dev/st0 rewind
mt -f /dev/st0 eject
Maintenance et monitoring
Nettoyage du lecteur
# Chargement d'une bande de nettoyage
mtx -f /dev/sch0 load [slot_nettoyage]
# Le lecteur effectue automatiquement le nettoyage
# Déchargement automatique après nettoyage
Surveillance de la santé
#!/bin/bash
# health-check.sh
# Vérification de la température
TEMP=$(sg_logs /dev/st0 --page=0x0d | grep "Temperature" | awk '{print $3}')
if [ $TEMP -gt 50 ]; then
echo "ALERTE: Température élevée ($TEMP°C)"
fi
# Vérification des erreurs
sg_logs /dev/st0 --page=0x02 | grep -i error
# État des moteurs et mécanismes
mtx -f /dev/sch0 status | grep -i error
Logs et diagnostics
# Logs système
tail -f /var/log/syslog | grep -E "(st0|sch0)"
# Statistiques détaillées
sg_logs /dev/st0 --page=0x0c # Sequential access device page
sg_logs /dev/st0 --page=0x17 # Non-volatile cache page
Dépannage
Problèmes courants
Bande coincée dans le lecteur :
# Tentative d'éjection forcée
mt -f /dev/st0 offline
# Si échec, arrêt complet et redémarrage du robot
Robot non détecté :
# Vérification des connexions SCSI
lsscsi -v
dmesg | grep -i scsi
# Rescan du bus SCSI
echo "- - -" > /sys/class/scsi_host/host0/scan
Erreurs de lecture/écriture :
# Test de la bande
mt -f /dev/st0 rewind
dd if=/dev/zero of=/dev/st0 bs=64k count=1000
mt -f /dev/st0 rewind
dd if=/dev/st0 of=/dev/null bs=64k count=1000
Codes d’erreur fréquents
Code | Description | Action |
---|---|---|
0x02 | Not Ready | Attendre ou redémarrer |
0x04 | Hardware Error | Maintenance nécessaire |
0x05 | Illegal Request | Vérifier la commande |
0x06 | Unit Attention | État changé, réessayer |
Optimisations et améliorations
Performance
- Compression matérielle : Activée sur le lecteur LTO-4
- Taille de bloc : Optimisée à 64KB pour les performances
- Buffers : Configuration des buffers système
Sécurité
- Chiffrement : LTO-4 supporte le chiffrement matériel
- Contrôle d’accès : Restriction des permissions sur les devices
- Audit : Logging de toutes les opérations
Évolutions prévues
- Remplacement du magasin manquant
- Migration vers LTO-8 pour augmenter la capacité
- Intégration avec solution de backup moderne (Bacula, Bareos)
- Monitoring SNMP centralisé
Mémo des commandes
Outils de manipulation
- tapeinfo : Outil de requête du lecteur de bandes
- mtx : Outil de requête de la librairie
- mt : Outil de déplacement et manipulation des bandes
- tar : Archiveur sur bande
Installation sur Debian
apt update
apt install mtx mt-st sg3-utils
Fonctionnalités du lecteur de bandes
Emplacement du lecteur : /dev/st0
ou /dev/nst0
(mode non-rembobinage)
Configuration des options logiques SCSI :
mt -f /dev/st0 stsetoptions scsi2logical
Gestion de la librairie de bandes
Visualisation de la librairie
# État complet du robot
mtx -f /dev/sch0 status
# Inventaire des bandes
mtx -f /dev/sch0 inventory
Opérations sur les emplacements
Déchargement d’une bande du lecteur vers un slot :
mtx -f /dev/sch0 unload 2
Chargement d’une bande d’un slot vers le lecteur :
mtx -f /dev/sch0 load 2
Transfert entre slots :
mtx -f /dev/sch0 transfer 1 5
Manipulation des bandes et archives
État de la bande
# État du lecteur
mt -f /dev/nst0 status
# Information détaillée
tapeinfo -f /dev/st0
Création d’archives
Création d’une archive de /home
:
tar cf /dev/nst0 /home
Création avec compression :
tar czf /dev/nst0 /home
Extraction d’archives
Rembobinage de la bande :
mt -f /dev/nst0 rewind
Test du contenu de l’archive :
tar tf /dev/nst0
Extraction complète :
tar xf /dev/nst0 -C /restore/
Commandes de positionnement
# Rembobinage au début
mt -f /dev/nst0 rewind
# Avance d'un fichier
mt -f /dev/nst0 fsf 1
# Retour d'un fichier
mt -f /dev/nst0 bsf 1
# Position à la fin des données
mt -f /dev/nst0 eod
# Éjection de la bande
mt -f /dev/nst0 eject
Notes importantes
- Utiliser
/dev/nst0
pour éviter le rembobinage automatique - Plusieurs archives peuvent être écrites séquentiellement
- Utiliser les commandes
mt
pour naviguer entre les archives - Toujours tester la lecture après écriture
- Effectuer un inventaire après chaque manipulation de la librairie
Ressources
Dernière mise à jour : 17 décembre 2024