Robot de sauvegarde sur bandes

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

É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

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

Fonctionnalités disponibles

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

Sécurité

Évolutions prévues

Mémo des commandes

Outils de manipulation

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

Ressources


Dernière mise à jour : 17 décembre 2024