Tribulations d'un ingénieur système

Aller au contenu | Aller au menu | Aller à la recherche

mercredi 14 janvier 2015

Filtrer les commandes de l'historique

via http://wiki.debian-facile.org/_export/pdf/doc:programmation:bash:history

Pour faciliter le rappel des commande depuis l'historique, créer un fichier .inputrc dans le dossier utilisateur :

"\e[A": history-search-backward
"\e[B": history-search-forward
set show-all-if-ambiguous on
set completion-ignore-case on

Taper les premières lettres de la commande et utiliser ensuite, comme d'habitude, les flèches haut ou bas pour naviguer dans l'historique. Seul les commandes de l'historique commençant celle que vous avez tapé seront affiché.

iftop : paramètre par défaut

J'utilise régulièrement iftop ou nethogs sur mes serveurs pour contrôler les connexions réseaux. Et pour éviter de taper à chaque fois les mêmes paramètres pour iftop, il est possible de créer un fichier .iftoprc dans le dossier utilisateur avec des paramètres prédéfinis.

Exemple de contenu du fichier /root/.iftoprc :

interface: eth0
dns-resolution: yes
show-bars: no
use-bytes: yes

Le fichier ci-dessous positionnera les options "-Bbn -i eth0" pour la commande iftop par défaut.

mercredi 24 septembre 2014

Récupération de données sur disque dur endommagé : 1 - le diagnostic

Tous les informaticiens ont déjà été confrontés à ce cas : un amis vient vous voir pour vous dire que son disque dur ne fonctionne plus et qu'il y a toutes ses photos dessus. Vous branchez le disque. Un "clac clac clac" caractéristique s’échappe du disque... Vous vous retournez vers votre amis vous regardant avec ses grands yeux remplis d’espoir. Il faut alors une bonne dose de courage pour lui annoncer la terrible nouvelle : "Tes photos sont irrécupérables".

Avant d'en arriver là, il y a de nombreux cas où il est tout à fait possible de récupérer les données d'un disque dur apparemment défectueux.

Avant de commencer, il est nécessaire de savoir que cette opération est rarement fructueuse. je ne tiens pas de statistiques précises, mais je suis à moins de 2 disques sur 3 de sauvés. Il existe des sociétés spécialisées pouvant effectuer ces opérations, avec un taux de réussite pratiquement parfait, mais à un coût souvent prohibitif.

Rappelez-vous qu'en tentant les opérations ci-dessous, vous pouvez aggraver la perte de vos données. Si vous tenez absolument à récupérer vos données, faites appel à une société spécialisée immédiatement. L'auteur de cet article (moi) ne pourra en aucun cas être tenu pour responsable de la perte de vos données.

Maintenant que vous êtes prévenus, passons aux choses sérieuses.

L'étape numéro 1 consiste à diagnostiquer la panne :

Commencer par changer le disque dur de PC. Préférer un ordinateur avec une alimentation puissante, de marque, et protégé contre les courts-circuits. Éviter à tout prix les adaptateurs USB avec alimentation autonome (pas assez puissante et de mauvaise qualité).

- L'alimentation se place en sécurité ou l'ordinateur ne démarre pas : la diode de protection du disque s'est mise en court-circuit suite à une tension inverse lors de l'arrêt de l'ordinateur. Vous pourrez trouver cette diode à proximité du connecteur d'alimentation du disque dur. Elle devrait être très chaude lorsque vous allumez l'ordinateur. Elle est référencée par un D suivi de un ou plusieurs chiffres (sérigraphie blanche sur la partie électronique de la carte du disque). L'utilisation d'un multimètre en mode ohmmètre ou continuité donne 0 ohm. Le disque devrait repartir après la suppression de ce composant (par dessoudage ou écrasement avec une bonne pince). Ce composant est une protection (qui, en se plaçant en court-circuit, a sauvé votre disque). Elle n'est pas indispensable au fonctionnent de votre disque dur pendant la récupération des données. Il est préférable de remplacer la diode et de changer l'alimentation du PC ayant occasionné la panne.

- Le disque ne démarre pas du tout. Aucun bruit de rotation ou de déplacement des têtes au moment de mettre l'ordinateur sous tension : Le fusible de protection est mort. Il s'agit d'un composant noir ou gris parfois référencé par un F suivi de un ou plusieurs chiffre (sérigraphie blanche sur la partie électronique de la carte du disque). L'utilisation d'un multimètre en mode ohmmètre ou continuité donne une résistance élevée. Le disque devrait repartir après le remplacement par un autre fusible ou directement par un fil entre les deux connecteurs du fusible. Il y a plusieurs années, J'ai réparé un graveur DVD avec la partie métallique d'une attache de sac plastique et un chewing-gum pour maintenir le fils métallique autour de ce fusible. J'avais conseillé au possesseur du graveur de remplacer rapidement le fusible. 3 ans après, le graveur marchait encore et son propriétaire n'avait toujours pas remplacé ma réparation de fortune.

- Le disque ne tourne pas mais on entend les têtes bouger (c'est un bruit très léger qui ne dure que quelques secondes au démarrage du disque. Il faut coller l'oreille sur le disque pour le différencier du cas d'un disque qui ne démarre pas du tout : L'alimentation est insuffisante pour faire démarrer le disque ou il y a un mauvais contact au niveau du moteur du disque. Commencer par changer d'alimentation. Si cela ne donne pas de résultat, démonter, nettoyer les contacts et remonter la carte électronique du disque dur.

- Le disque démarre mais n'est pas pas reconnu par l'ordinateur au niveau du bios, ou même bloque le démarrage de l'ordinateur. Le disque émet un bruit de têtes ressemblant à "clac clac clac" ou "crr crr crr" de plusieurs minutes avant de s’arrêter : Le disque est trop endommagé pour tenter de relire les données. Il est probable qu'une des têtes de lecture soit morte. Seule une société spécialisée dans la récupération de données peut encore faire quelque chose.

- Le disque démarre et est reconnu par le bios. Il peut ensuite y avoir de nombreux scénarios différents : l'OS bloque en cours de démarrage, aucune partition n'est visible ou les données sont visibles mais l'ordinateur bloque lorsque vous essayez d'y accéder : Le disque contient des erreurs de surfaces. Il est alors nécessaire de copier au plus vite les données vers un nouveau disque (voir Récupération de données sur disque dur endommagé : 2 - extraire une image du disque)

- Cas particulier, le disque dur est un Segeate 7200.11 et n'est plus reconnu au démarrage : voir ce lien https://sites.google.com/site/seagatefix/ ou ce lien http://www.msfn.org/board/topic/128807-the-solution-for-seagate-720011-hdds/

Cette liste contient les cas les plus fréquents. Mais il en existe bien d'autres. Si vous avez un doute, laissez un commentaire et j’essaierai de vous aiguiller.

lundi 18 août 2014

Manipuler les cassettes dans une VTL

[Critique] De : BMA@srvmda01 "VTL1_LIB4_D03"  Heure : 18/08/2014 15:00:46
[90:63]      By: UMA@srvmda01@/dev/tape/by-id/d2dbs-35001438028bfcf63-1
    Impossible de charger le support échangeur (Target drive is busy.)

Ce message d'erreur DataProtector peut se produire suite à une perte de communication avec une bandothèque ou le MDA associé. L'ordre d'éjection et de déplacement n'a pas été reçu par la bandothèque. La cassette utilisée par la sauvegarde est restée positionnée dans le lecteur de bande. Pour régler ce problème, il suffit de se connecter à l'interface d'administration de la bandothèque et d'effectuer un déplacement manuel de la cassette. Mais cette fonctionnalité n'existe pas sur toutes les VTL. Il va donc falloir recourir à la ligne de commande pour déplacer notre bande.

Deux voies possibles :
  1. La commande MTX : requiert le package mtx
  2. La commande UMA (Uniquement dans DataProtector) : requiert le package lsscsi et le client media agent pour DataProtector
Prérequis : Vérifier qu'aucune sauvegarde n'est en cours sur la VTL. Si vous déplacez une cassette sur une sauvegarde en cours, vous obtiendrez bien évidement un échec de la sauvegarde.

Méthode avec la commande mtx : Depuis un serveur MDA en root, taper la commande suivante :

mtx -f /dev/tape/by-id/d2dbs-35001438028bfcf63-1 status


Cette commande retourne la liste des slots mais le premier slot commence à 1 alors que votre VTL numérote potentiellement les slots à partir de 0 dans l'interface de gestion. Les drives sont également numérotés à partir de 0.
Par exemple, pour éjecter la cassette du drive 0 vers l'emplacement 40, taper la commande suivante :

mtx -f /dev/tape/by-id/d2dbs-35001438028bfcf63-1 unload 41 0


Méthode avec la commande uma (DataProtector) : Depuis un serveur MDA en root, lister les bandothèques avec la commande suivante :

lsscsi |grep medium

Cette commande retourne la liste des bandothèques. Dans le cas d'une VTL B6200, chaque VTL est vue sur chacune des cartes FC.

lsscsi |grep medium
[3:0:10:1] mediumx HP MSL G3 Series 1120 /dev/sch0
[3:0:11:1] mediumx QUANTUM Scalar i500 585G /dev/sch1
[3:0:20:0] mediumx HP D2DBS EL01 /dev/sch2
[3:0:29:0] mediumx HP D2DBS EL01 /dev/sch3
[4:0:19:0] mediumx HP D2DBS EL01 /dev/sch4
[4:0:32:0] mediumx HP D2DBS EL01 /dev/sch5

Si vous avez plusieurs VTL, l'ordre est aléatoire… il faut identifier la VTL via les lecteurs occupés et le nombre de logements cassettes. Ces informations seront affichées avec uma comme dans l'exemple ci-dessous.

Cette information est également accessible dans le panneau de contrôle des bandothèques



(Il est possible de taper le nom cours ou l'alias si vous utiliser les alias)

Connectez-vous à la VTL avec la commande :

/opt/omni/lbin/uma -ioctl /dev/sch5
*** PROGRAM: UMA VERSION: HP Data Protector A.07.00

*** (c) Copyright Hewlett-Packard Company 2012
*** License is restricted for use with licensed
*** HP Data Protector products.

/dev/sch5> stat
Element Status (T=Transport, X=Im/Export, D=Drive, S=Storage):
0 T1 Empty "" ""

8192 X1 Empty "" ""

4096 D1 Empty "" ""
4097 D2 Full "" "" from S452
4098 D3 Full "" "" from S428
4099 D4 Full "" "" from S455
4100 D5 Full "" "" from S450
4101 D6 Empty "" ""
4102 D7 Empty "" ""
4103 D8 Empty "" ""

12288 S1 Full "" ""
12289 S2 Full "" ""
12290 S3 Full "" ""
12291 S4 Full "" ""
....


Dans cet exemple, les valeurs D1 à D8 représentent les lecteurs de bandes. Les valeurs S1 à S300 représentent les logements de cassettes.

Le programme uma existe aussi sous Windows (si le module Media Agent de Data Protector a été installé) et la syntaxe est la même. Seul le chemin d'accès a la bandothèque change de forme :
C:\Program Files\OmniBack\bin>uma.exe -ioctl scsi4:0:0:0

Pour déplacer la cassette du lecteur 2 dans son logement d'origine, utiliser la commande suivante à l'intérieur de uma :

/dev/sch13> move D2 S452

jeudi 7 août 2014

BTRFS, Snapshot journalier et comparaison de date

Je dispose d'un filesystem BTRFS pour lequel je souhaite créer un snapshot journalier.
L'heure du snapshot n'ayant pas besoin d'être fixe, le script pourra être placé dans /etc/cron.daily/snapshot

#!/bin/bash

BTRFS=/mnt
SNAPSHOT=/snapshot
LOG=/var/log/snapshot.log

PATH=/usr/sbin:/usr/bin:/sbin:/bin
echo "---------------------------------------------------------------" >> $LOG
echo $(date) >> $LOG
for l in $(ls $SNAPSHOT); do
    t=$(echo $l $(date --date '-2 months' +%F) | awk '$2<$1{print -1;next}{print ($2>$1)}')
    if [[ $t == 1 ]]; then
        btrfs subvolume delete $SNAPSHOT/$l >> $LOG
    fi
done
btrfs subvolume snapshot -r $BTRFS $SNAPSHOT/$(date +%F) >> $LOG

Je commence par déclarer les variables qui devront être adaptées en fonction du serveur.

Ensuite, je spécifie le PATH, un grand classique du Cron.

Je liste chaque snapshot et pour chacun des noms de dossier, je le compare à la date du jour - 2 mois. Le résultat du awk retourne 1 si le snapshot a plus de 2 mois, 0 s'il a exactement 2 mois et -1 s'il a moins de 2 mois.

Si le résultat est 1, alors je supprime le snapshot.

Et dans tous les cas, à la fin je crée un nouveau snapshot en lecture seule (option -r).

J'aurais pu me contenter de supprimer le snapshot égal à la date du jour - 2 mois. Mais, si pour une raison quelconque, le serveur est arrêté pour maintenance pendant plus d'une journée, un snapshot ne sera pas supprimé. Et si je l'oublie, le différentiel des données entre le snapshot et les données vivantes va augmenter, occupant de plus en plus d'espace disque. Donc un petit effort aujourd'hui, m'évitera peut-être la saturation d'espace disque ou l'extension prématurée du filesystem BTRFS.

- page 2 de 3 -