Transfert de la production labo sur système QC, comme dans

Labo to me.

Accueil

Journal de mission
Course à pied
Ski de randonnée
Alpinisme
Voile
Ecrits
Diaporamas

Programmation

Carnet des invités

Accueil > Programmation > Labo to me.

Transfert de la production labo sur système QC, comme dans "labo to me" et non "lobotomie".

But

Transfert de la production d'un disque à un autre, avec journalisation des données.

Méthode

Il existe couramment un script "prod2nas01" pour ce faire dans le Quickstart. Nous avons cependant expérimenté parfois au cours de l'année sur la mission Arabie quelques problèmes de copie en l'utilisant, de telle sorte qu'en février, j'ai choisit d'en réécrire un à mon goût. Avec ce "labotome" ainsi résultant, nous avons copié un peu plus de 1 million de fichiers (i.e. plus de 500,000 copiés en double) et son utilisation nous a satisfait. Les caractéristiques;

  • Un seul fichier log: est continuellement mis à jour au lieu de trois nouveaux fichiers à chaque nouvelle exécution. Sinon, nous aurions récupéré des centaines de fichiers logs et nul doute que beaucoup auraient été perdus ou écrasés.
  • Plus simple: 86 lignes de code au lieu de 266 doivent normalement être plus simple de lecture.
  • Visuellement plus explicatif: l'affichage à l'écran résume d'abord les fichiers à copier et une barre de progression graduelle, en texte, suit, donnant la situation courante. Par exemple, nous en sommes rendu ici au 1563ième record de 2378, première copie;

  • Log plus facile à lire: un en tête est d'abord inséré;
    ================================================================================
    SEGD DISK TRANSFER
    Date 17 Jul 2009 - jd 198 - time 10:50:52
    ================================================================================
    Source location    : /mnt/nas01
    Nb files at source : 1651 files
    Total size         : 97641.5 MBytes
    Directory                               From FFID     to FFID       Nb
    /mnt/nas01/tape2435/                        31626 ..    32560      935
    /mnt/nas01/tape2436/                          818 ..     1533      716
    Total                                                             1651 files
    COPY : from "/mnt/nas01" to "/mnt/data1/SEGD"

    puis l'information pour chaque record successif est présentée, record source d'abord et destination sur la ligne suivante, ce qui facilite la comparaison visuelle des sommes md5;

       Nb     Source md5 -(odd lines)---------
              Destination md5-(even lines)---- Modification time------------------ Copied file and comparison source vs destination
        1 src e8307224c4fea6816339a0bd38043877
          dst e8307224c4fea6816339a0bd38043877 2009-07-16 16:29:06.773571544 +0300 ./tape2436/00000818.segd same content
        2 src b3a49b1d6fad3c15fd4b27865ce852fa
          dst b3a49b1d6fad3c15fd4b27865ce852fa 2009-07-16 16:33:13.729028608 +0300 ./tape2436/00000819.segd same content

    Le passage à la copie de sécurité sur le deuxième support est signalé;

    COPY completed.
    COPY : from "/mnt/nas01" to "/mnt/nas02"

    Enfin, un pied de page est inséré;

     1651 src 4392b9963603dc67a8b9c5ca71c4ae2a
          dst 4392b9963603dc67a8b9c5ca71c4ae2a 2009-07-16 23:49:39.498688264 +0300 ./tape2435/00032560.segd same content
    COPY completed.
    Copy done in 82 minute(s)
  • Téléchargement

  • labotome.sh : Clic droit, "save as", sauvegarder ainsi la cible du lien en tant que labotome.sh, rendre exécutable et placer dans le $path, typiquement sous /usr/local/bin, sur une machine de type nasstor. Licence: GPL.

  • Installer aussi ls_segd.pl afin de bénéficier de l'affichage du résumé des fichiers.

    Principe

    Le script effectue pour ainsi dire deux seules boucles;

    Pour chaque répertoire destination
       Pour chaque fichier segd
          faire md5sum du segd d'entrée, sauvegarder dans le journal
          copier de source à destination
          faire md5sum du segd de sortie, sauvegarder dans le journal 
          si md5sum de l'entrée diffère de md5sum de sortie, message
       fichier segd suivant
    répertoire destination suivant

    Le gain principal est réalisé par l'utilisation de rsync au lieu de cp, offrant ainsi le très net avantage de refléter facilement l'arborescence source à la destination.

    Notes

    Le programme est lancé avec au moins deux arguments, le premier étant la source et les autres, les destinations;

    prompt$ labotome.sh /mnt/nas01 /mnt/data1/SEGD /mnt/nas02

    Tous ces arguments doivent être des répertoires.

    Jusqu'à trois répertoires de destination peuvent être spécifiés.

    On pourra installer cette ligne de commande sous Webmin afin de la répéter d'un seul clic de souris lors de chaque réception de production (cf écran ci-haut).

    Le cas échéant, on pourra éditer les lignes;

     log="$2/labotome.log"  # Log file (a single file only to which we append results)
     ext="segd"             # Most often "segd" but may be set as "raw" for geores recorder.
     do_md5="on"            # MD5 computations can be skipped using "off" (not much recommended)
    

    ... cependant, la convention labotome.log pour le nom de fichier log devrait être conservée pour fins de compatibilité et compréhension. Aussi, l'extension .segd devrait être conservée pour les noms de fichier seg-d. Les fichiers d'extension ".raw" des labos multiwave devraient être renommés .segd pour fins d'uniformité sur un même système.

    Le calcul md5sum pourrait être à la limite effectué à la destination seulement, celui de la source pouvant être calculé et journalisé en temps réel au labo au cours de la journée. Faire ainsi pourrait substantiellement sauver du temps de calcul à la réception de la production. Nous examinerons cette possibilité dans une autre application à venir au moment d'écrire cette note.

  •  

    Haut de page

    Tous droits réservés © 2003-2006 Gaétan Martineau