Another Home Page Blog

Born to be root !
  • Accueil
  • Archives
  • Mentions légales
  • A propos

» Catégorie : Linux et Logiciels libres

Fil Atom des billets de cette catégorieFil des billets Fil Atom des commentaires de cette catégorieFil des commentaires

Reconstruction d'un RAID 1 logiciel sous Linux

Depuis maintenant plus d'un an, lors de l'achat de ma machine actuelle de bureau, j'ai décidé de configurer mes disques durs en RAID 1. Cela n'évite pas d'avoir un besoin de sauvegarde, mais ça aide beaucoup au niveau de la conscience. Et c'est quand l'un des disques ralentit tout le système, et émet un "clac" bien sonore à chaque écriture qu'on se dit que bon, c'était vraiment une bonne idée, le RAID.

Donc, on retire le disque, l'OS couine un peu et envoie des mails parce que mon raid est dégradé. Et ensuite, on court acheter un disque dur. J'ai choisi d'acheter le même modèle que le défectueux, et de même capacité. Je rebranche le nouveau disque dans la machine à la place de l'ancien, je démarre, reçois à nouveau un mail...

Et ensuite? Il faut recréer les partitions, et les ajouter au raid pour que la reconstruction se fasse. Pour une raison que j'ignore, lors de l'installation, Fedora 12 n'a pas alloué un nombre entiers de cylindres à mes partitions (je suis depuis passé à la 13). Du coup, tenter de recréer les partitions est une véritable galère... Je pense l'espace d'un instant à cloner mon disque avec dd. Le problème, c'est que les disques durs ayant une capacité d'un téra-octet, je ne suis pas couché.

La solution vient de chez Ikoula, et consiste à utiliser sfdisk pour reproduire la table des partitions, et ensuite ajouter les partitions au RAID. Petite différence toutefois, il m'a fallu réclamer à sfdisk de forcer l'écriture de la table, sans doute à cause de cette histoire de cylindres :

[root@bloodhoof ~]# sfdisk --dump /dev/sda | sfdisk --force /dev/sdb 

Je dispose de deux arrays RAID, donc pour les reconstruire :

[root@bloodhoof ~]# mdadm --manage --add /dev/md0 /dev/sdb1
[root@bloodhoof ~]# mdadm --manage --add /dev/md1 /dev/sdb3 

Trois heures plus tard, le RAID est reconstruit ! Je peux à nouveau dormir tranquille.

  • Par Nils | mercredi, septembre 1 2010 | 11:42
  • Commentaires2 commentaires CatégorieLinux et Logiciels libres Tagsdisque dur, fdisk, Linux, RAID, sfdisk
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet Trackbackaucun rétrolien

Saines lectures pour l'été

C'est l'été ! Parfois il est bon d'arrêter deux minutes les manipulations sur nos machines, d'aller faire un tour dans un espace vert ou à la plage, et de sortir un livre... sur nos sujet favoris, bien sûr !

Voici donc, en vrac, quelques pages web, livres, documentations, gratuits ou non, qui valent le coup d'être lus, en papier ou sur vos tablettes/netbook/PDA :

  • Disponible en PDF, GNU/Linux Advanced Administration
  • Apprendre Bash, cela fait partie de mes marque-pages quand j'ai un trou de mémoire au milieu d'un script
  • Linux Magazine, l'incontournable ! A noter que le hors-série de cet été étant consacré à Python, ceux qui veulent s'y (re)mettre peuvent trouver un cours Python
  • Le manuel de sécurisation de Debian, merci QuébecOS !
  • Quand c'est accessible, une belle collection d'astuces en PDF chez NixCraft
  • Depuis le début de l'année, BSD Magazine est disponible gratuitement sous forme de fichier PDF : le numéro de Juillet se concentre sur OpenBSD, avec en particulier un article sur la création de firewall avec PF et Firewall Builder

Bonnes vacances pour ceux qui y sont !

  • Par Nils | lundi, juillet 26 2010 | 16:24
  • Commentairesaucun commentaire CatégorieLinux et Logiciels libres
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet Trackbackaucun rétrolien

Dédé le clown et son copain le live-cd

C'est l'histoire de Dédé le clown, ou plutôt de dd le clone, qui rend bien service lorsqu'on a des sueurs froides... Mais qu'est-ce que dd ? Depuis la page de manuel, on peut lire : "convert and copy a file". C'est tellement simple qu'on se dit que ce n'est pas très puissant, mais on se met à créer des fichiers d'image disque, ou cloner des disques durs entiers, on comprend que parfois les énoncés les plus court peuvent être très complet ! La page wikipédia de dd en Français contient quelques exemples utiles, mais la page anglophone en contient encore plus !

Imaginons maintenant la situation : vous possédez deux machines, identiques. Vous installez la première et désirez installer la seconde à l'identique, il suffit de cloner le disque dur à l'aide de dd et de copier votre clone, toujours à l'aide de dd, sur la seconde machine. Une autre situation, que je ne vous souhaite pas : vous disposez de deux machines identiques toujours, mais l'OS de l'une d'entre elles se trouve endommagés (imaginez par exemple, 3/4 des fichiers de /boot disparus, idem dans /lib et à quelques autres endroits). Ajoutons à cela là contrainte que vous ne pouvez pas éteindre la machine encore en marche, et que le temps presse. Pas besoin de chercher deux heures un outil de clonage, il est installé sur votre linux adoré : dd. Récupérons un disque dur USB dont la capacité excède celle du disque local. Voici comment on clone le disque dur :

[root@machinequimarche ~]# dd bs=1M if=/dev/sda of=/media/usb/machine1.img

Je pars du principe que le disque dur s'appelle /dev/sda et que le disque USB est monté sous /media/usb/, mais cela peut différer selon la situation de chacun. On notera que l'option "bs=1M" (copier par blocs de 1 Méga-octet) rend la copie plus rapide. J'aurais bien tenté des blocs encore plus grands mais la copie s'est avérée déjà bien rapide.

Une fois la copie terminée (environ une bonne heure pour 70Go de disque, sachant qu'il y avait du raid 1 matériel sur du SCSI 10000 tours...), reste à se rendre devant la deuxième machine, de démarrer celle-ci sur un live-cd contenant lui aussi dd (n'importe quel live-cd de distriubtion Linux devrait l'avoir), et copier dans l'autre sens :

[root@machinequimarchepas ~]# dd bs=1M if=/media/usb/machine1.img of=/dev/sda

Bien sûr, on a au préalable monté le disque USB ;) Une fois la copie terminée, le disque démonté, je recommande de monter les partitions du disque local (/dev/sda pour mon cas), et d'aller modifier les noms d'hôte, les adresses IP et autres configurations particulières qu'on pourrait trouver dans /etc, sinon la mise en réseau de la machine risquerait d'être problématique. Dans le cas d'une RHEL/CentOS/Fedora, on pensera à modifier :

  • /etc/hosts
  • /etc/sysconfig/network
  • /etc/sysconfig/network-scripts/ifcf-* (selon vos configurations, plusieurs cartes réseau, bonding...)
  • /etc/sysconfig/iptables-config si vous sauvegardez ici votre firewall, sinon regardez votre script de firewall

Autre chose, surtout pour les utilisateurs des distributions sus-cités : le mode rescue n'est disponible que sur le CD1 ou DVD1, mais pas dans le boot.iso ou tout autre média de net-install. Ce mode permet de démarrer sur un système live minimaliste permettant de monter les partitions du système, de monter un disque dur usb (si vous le branchez avant de booter pour du RHEL4), et bien sûr, d'accéder à dd :)

  • Par Nils | jeudi, juin 3 2010 | 16:30
  • Commentairesaucun commentaire CatégorieLinux et Logiciels libres TagsCentOS, dd, Linux, live-cd, Red Hat, rescue, RHEL
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet

Nombre d'occurences d'un champ dans un fichier

Après la coloration d'un grep pour une histoire de cron, voici un autre cas sympathique : je souhaitais savoir qui faisait le plus de requêtes sur un serveur web (Apache), avec un classement. Un genre de top 5 ou top 10 des plus gros requêteurs de pages sur le dit serveur, en somme. J'ai cherché du côté de Awk, qui permet de manipuler à loisir les sorties de programmes et autres fichiers textes.

Comme je ne suis pas très doué en Awk, j'ai demandé à mon moteur de recherche favori (qui n'est plus Goo... d'ailleurs) comment obtenir le nombre d'occurrences d'une chaîne de caractères. La réponse se trouvait là. Par contre pour faire mon top 10, il me fallait ensuite trier la liste obtenue en utilisant le nombre d'occurrences comme critère. Après quelques pipelines et autres awk hasardeux, j'en suis venu à ça :

awk '{frequencies[$1]++;} END {for (ip in frequencies) printf "%d\t%s\n" , frequencies[ip] , ip;}' < /mon/fichier/de/log/apache | sort -gr | head -10

Grâce à Awk, j'obtiens une sortie avec d'abord le nombre de requêtes, puis l'adresse ip. J'envoie ensuite cette sortie dans sort, dont l'option -g permet de faire des tris sur des nombres et l'option -r permet d'inverser le tri. Pour finir, head me permet de limiter mon classement aux 10 meilleurs. Cette ligne ne me satisfait pas complètement, car j'ai d'abord le nombre de requêtes, puis l'adresse IP. j'aurais aimé trouver une solution élégante mais tout ce que j'ai pu faire c'est invoquer à nouveau awk après le sort. Si quelqu'un a une idée, je suis preneur ;-)

  • Par Nils | lundi, mars 1 2010 | 12:30
  • Commentaires3 commentaires CatégorieLinux et Logiciels libres TagsAwk, Linux
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet

Recherche colorée dans les logs avec perl

Voici un petit one-liner assez sympathique, dont on m'avait parlé dans la semaine et sur lequel je suis tombé par hasard en cherchant autre chose. Le principe est d'afficher dans une autre couleur un texte donné dans une recherche, comme par exemple une erreur précise dans un fichier de logs. Sur une machine j'ai des problèmes avec cron, je l'utilise donc de la manière suivante :

root@lolcathost:~# tail -f /var/log/syslog | perl -pe 's/cron/\e[1;31m$&\e[0m/ig'

On remarque une différence avec le lien indiqué plus haut, j'ai mis "/ig" à la fin au lieu de "/g". Pourquoi? J'avais besoin de faire la recherche sans tenir compte de la casse, et j'ai trouvé l'option suite à une rapide recherche. Je devrais vraiment me mettre à perl, ça me semble vraiment efficace et pratique :-)

Pour ceux qui pensent que j'ai fait une faute de frappe dans la recopie du prompt, je leur recommande d'aller voir ici.

  • Par Nils | samedi, février 13 2010 | 12:35
  • Commentairesun commentaire CatégorieLinux et Logiciels libres Tagscron, Linux, Perl
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet

« billets précédents

Catégories

  • Divers (19)
  • Linux et Logiciels libres (50)
  • Sécurité (5)
  • Humour (9)
  • Humeur (21)
  • Apple - Macintosh (11)
  • Hardware (3)
  • Another Home Page (12)

Tags

  • Apache
  • Awk
  • Awstats
  • Beryl
  • CentOS
  • Dotclear
  • fdisk
  • Linux
  • Mandriva
  • mp3
  • Red Hat
  • RHEL
  • RPM
  • RPMforge
  • Rémingway
  • soleil
  • ssh
  • SSL
  • thème
  • Xorg

Tous les tags

S'abonner

  • Fil des billets
  • Fil des commentaires

Propulsé par Dotclear - Thème Freshy de Julien de Luca adapté depuis Wordpress