Linux RAID1 soft, changement d’un disque

Lorsque l’on utilise une solution de sauvegarde, on est toujours inquite le jour où il faut mettre en oeuvre la restauration … c’est bien se qui m’est arrivé le jour où l’un de mes disques RAID1 à grillé et qu’il a fallu le changer puis restaurer le RAID1. Et bien en 1 mot (mais personne n’en doutait) le RAID1 soft sous linux ca marche nickel !

Détails de l’opération :

  • Retrait du disque defectueux et retour au fournisseur
  • Le système fonctionne parfaitement sur son second disque le temps que le disque en SAV revienne
  • Backup des données (on sait jamais)
  • Reinstallation du second disque dans la machine
  • Synchro du RAID1
  • Retour au mode normal

Bref super ! Pour ce qui est des quelques commandes magiques à utiliser :
sfdisk –dump /dev/sdx | sfdisk /dev/sdy Permet de cloner la table des partitions du disque x sur le disque y.
mdadm /dev/mdx -a /dev/sdy Permet d’ordonner la resynchronisation du disque que l’on vient d’ajouter en le remontant dans l’ensemble RAID1.

La progression de la reconsruction du raid peut être suivie en consultant /proc/mdstat

Tomcat, problème de JVM_LIBDIR

Par defaut la config ne semble pas cohérente du coup j’ai eu des messages de ce style … “cp=/%20JVM_LIBDIR%20/usr/lib64/jvm-exports/java-1.5.0-sun-1.5.0%20does%20not%20exist%20or%20is%20not%20a%20directory” ou encore “error: JVM_LIBDIR /usr/lib64/jvm-exports/java-1.5.0-sun-1.5.0 does not exist or is not a directory”
Pour s’en sortir j’ai créé un lien symbolique dans /usr/lib64/jvm-exports/ de “java-1.5.0-sun-1.5.0 pointant” vers “java”.
Il faut ensuite redemmarer tomcat et ca fonctionne.

Raid1 soft avec Asus P5B-VM sous opensuse 10.1

Après avoir realisé une installation de ma suse 10.1 sur un disque configuré en RAID1 soft, j’ai eu la désagreable surprise de trouver un kernel panic au boot du style : VFS: Cannot open root device “…” or unknown-block(…,…)

Il semble qu’a ce moment là du demarrage le disque md0 ne soit pas encore bien monté (problème de module sans doute)… la solution simple pour s’en sortir est de préciser dans les paramètre du boot que root n’est pas sur /dev/md0 mais sur /dev/sda1 par exemple … ce qui ne change pas fondammentalement grand chose si ce n’est qu’en cas de defaillance de sda1, il faudra penser à preciser sdb1 pour que ca boote.

La procédure n’empeche absoluement pas / d’etre monté sur md0 une fois la machine bootée. Il faudra modifier les parametres de grub dans /boot/grub/menu.lst pour ne pas être obligé de réitérer la manip à chaque lancement.

Jmicron et Raid

Oui, je suis fan de l’utilisation du RAID1 (mirroring entre 2 disque dur) cette solution m’a permis de sauver quelques données ou de me dépatouiller rapidement de crash disque … Pour la machine qui très bientot hébergera ce site, je souhaitai donc passer du RAID soft sous linux (qui marche bien au demerant) au RAID hardware. Les carte ayant cette option sur des disques ATA etant très abordable, j’en ai fait l’achat.
Me voici donc avec une ASUS P5B-VM, deux disque SATA identique…
Et bien vous ne devinerez jamais !!! il n’y a qu’un seul port SATA permettant de connecter un disque RAID !!! Le raid 1 à 1 seul disque … il falait l’inventer ca !! En y regardant de plus pret, asus se contre fiche d’offir du raid, il utilise le composant uniquement pour proposer un port IDE, il est donc théoriquement possible de faire du raid entre un disque PATA et un disque SATA … bref aucun interet pour du mirroring. Je l’ai un peu en travers là : la doc ne précise rien là dessus (ils s’en gardet bien) comptant surement sur les 90% d’utilisateur qui ne se serviront jamais de l’option. Bref, je vais peut etre essayer de mettre le second disque sur le SATA externe qui avec un peu de chance est branché sur le chip JMicron… Sinon, retour au raid soft, sans doute moins performant mais qui lui au moins fonctionne (et en plus gratuitement).

RTL8111b sur P5B-VM sous Opensuse 10.1

Je viens d’acheter un carte mère Asus P5B-VM basée sur un chip réseau gigabit Realtek RTL8111b de la famille des r1000. Ce dernier n’est pas reconnu et mon installation réseau en est un peu compliquée … Je vous livre ici comment je m’en suis sorti …

Il est tout a fait possible de charger un module lors de l’installation, le tout etant de l’avoir. Pour cela, il faut recopiler le driver Realteck sur une suse de même version pour obtenir le module … je vous livre ici mon module pour la suse 10.1 (version 32b) et ici la version SMP pour suse 10.1… ca vous fera toujours gagner une etape ..

Pour ceux qui souhaitent le recompiler par eux-même, il y a deux choses à savoir :

  • Il faut modifier src/Makefile et remplacer $(PWD)/Makefile_linux26x par le chemin complet de ce même fichier
  • Il faut remplacer dans src/r1000_n.c les 3 lignes MODULE_PARM par MODULE_PARM_DESC

Ensuite il faut copier ce module sur une clef USB par exemple. Lancer l’installation et lorsque l’on arrive sur les premières fenetre de YAST
De là il faut :

  • Appuyer sur CTRL+ALT+F9 pour passer sur une console
  • Monter la clef usb : mount -t vfat /dev/sda1 /mnt
  • Ajouter le module : insmod /mnt/r1000.ko

En appuyant sur CTRL+ALT+F1, vous retournez alors sur l’installeur yast et l’installation réseau pourra commencer.

Attention, il faut aussi noter que le chipset G965 n’est pas reconnu avant le 2.6.18 et donc pas avant la suse 10.2. Toutefois ce n’est pas ce chip qui pose des problème mais le Southbridge JMicron qui n’etant pas du tout reconnu empèche la détection des disques dur IDE et même du CDROM une fois l’installation lancée. Cependant pour installer linux sur une SATA via le réseau, ca fonctionne …

Revenons à nos moutons … une fois Linux installé, il faudra se recompiler une nouvelle fois un driver, il ne faut donc surtout pas oublier d’installer le package kernel-source sans quoi, après c’est trop tard ! Au premier redemarage, dès que yast se lance, il est possible de trouver un console pour compiler un nouveau module. Attention, le Makefile ne fait pas de depmod -a lors de l’installation … pensez à l’ajouter !
Enfin, la recompilation sera à faire après les mise à jour de noyau … Au passage, pour forcer l’usage d’un module pour un périphérique reseau, il faut jeter un oeil dans /etc/sysconfig/hardware, c’est à cet endroi que l’association se fait.

Utilisation du Pata JMicron sur P5B-VM sous Opensuse 10.1

Bon … pour accéder au controleur PATA JMicron de la carte mère Asus … c’est pas gagné !!! En tout cas on finit par y arriver avec un peu de patience. Dans la doc c’est possible, et ca l’est en effet, mais ce n’est pas trivial. Je vous donne la liste des manip que j’ai dû faire :(sans pour autant garantir que tout soit utile

  • Dans le bios, configurer le JMicron en mode AHCI
  • Booter l’install de la 10.2 puis dès que possible passer sur un terminal (CTRL+ALT+F9)
  • Charger le module par modprobe pata_jmicron
  • Jeter un oeil avec dmesg pour voir ce qui s’est passé …

Pour ma part le cdrom est sur /dev/sr0 et le disque dur semble etre sur /dev/sdb

Cette manip faite il ets presque possible d’installer suse 10.2 à partir du CD, j’ai toutefois du passer par la case “vérification du support” avant que l’installeur veuille bien me monter le cdrom

Geoportail, SNCF, ces lancement à succès ratés…

Les lancements sont nombreux et les effet d’annonce fatals ! Geoportail n’a pas vraiment pu etre accessible avant 1 semaine ou 2. Le site de la SNCF n’a dernierement pas survécu à la vente de billet TGV à 5? avec le prime le superbe resultat de 0 ventes en ligne ! mais oui ! La faute à qui ? trop de monde en même temps il parrait !

Je ne remets pas en cause ce fait car il est vrai que tout lancement conduit à un pic dramatique pour l’architecture… Mais si le fait est avéré, il est prévisible ! Qu’ont donc fait les chefs de ces projets pour palier à celà ?!? Pas grand chose semble-t-il, en tout cas je leur souhaite car les sommes investies en se sens l’ont été à pure perte vu le résultat !

La question que je me pose est la suivante : vaut-il mieux chercher à servir tout le monde avec une forte probabilité de ne servir personne ou servir une partie seulement des Internautes ? Il semble que ces CP aient choisi la première solution et cet article à pour but, vous l’aurez compris, de décrire comment employer la seconde.

J’ai en effet lu qu’avant l’opération TGV à 5 euros, la SNCF avait anticipé le pic en multipliant par 3 la capacité serveurs… Pour le résultat commercial donnée ci-dessus … c’est du gaspi ; je leur souhaite que celà s’inscrive dans un cadre d’extension global des capacités de leur infrastructure…. bref, la solution n’est pas de ce coté.

Ma vision de ce problème serait une approche différente ; les serveurs étant saturés par :

  • La saturation de la bande passante d’entrée, dûe aux très nombreuses requetes concurente; mais il ne semble pas que ce soit le facteur premier
  • La saturation des serveurs d’application, qui semble être plus directement concernée

S’attaquer à la seconde cause n’est pas vraiment compliqué, sans même multiplier le nombre de serveurs : actuellement, les applications web sont le genre de systèmes extrèmement lourds en consommation mémoire, requete de bdd, cpu. Elles sont l’accumulation des dizaines de couches logicielles : OS, JVM, bibliothèques diverses, jdbc, ejb, frameworks, jps / servlet de présentation … bref, à chaque ouverture de nouvelles sessions, tout ce petit monde se met en branle, réserve beaucoup de mémoire et consomme une quantité astronomique de temps CPU pour n’afficher qu’un bandeau, un menu et deux trois news … L’arrivée de milliers de connexions simultanées sature alors les ressources au point que l’application ne soit tout simplement plus accessible pour personne. La machine arrive rapidement dans un etat de saturation où son temps de réponse n’est plus lineaire mais exponnentiel ; autant dire que le serveur est planté.

Une bonne solution, économique, pour se sortir de cette situation est de protéger ces serveurs de la saturation en limitant le nombre d’utilisateur concurent pouvant accéder à l’application. Celà revient à limiter le nombre de sessions simultanées. Pour empécher la saturation, cette limitation sera prise en compte par un serveur différent dont le rôle, sera, par l’utilisation d’une technologie la plus légère possible, de recevoir toutes les demandes de connexion et de ne transmettre que celles pouvant etre traitées à l’application. Les autres etant renvoyées proprement sur une page d’erreur ou d’information.
L’utilisation d’une technologie légère est la clef de cette solution. J’imagine que les modes “cluster” de serveurs apaches doit pouvoir être configurable en ce sens en limitant le nombre de sessions par serveur : jusqu’a une certaine limite, les sessions sont redirigées vers l’application, les suivante vers une simple page HTML d’erreur.
Bref.. ce n’est qu’une ébauche de solution est il y en a de multiples autres, le tout etant d’y réfléchir et de prendre le problème par le bon bout, ce qui ne me semble pas etre souvant le cas !
La solution optimale serait d’intégrer ce genre de fonctionnalités dans des éléments réseaux matériels dédiés, ce qui existe peut etre, ou en tout cas ce ne serait pas très compliquer à construire pour des spécialistes.

Au passage ces solutions sont aussi une bonne protection contre les attaques en provenance des vers de type flood… ce sont donc des solutions toujours utiles, y compris hors lancement et campagne de promotion : un investissement durable.

En conclusion, les situations que j’ai évoqué et qui font la risée des utilisateurs me semblent majoritairement évitables. Leurs impacts peuvent être tout du moins amoidris et il me semble que ces problématiques doivent donc etres prises en compte plus sérieusement.

Revenir au double click sous KDE

Franchement …. le simple clic c’est chiant !! passer son temps à ouvrir des documents alors qu’on souhaite faire une selection multiple est gavant ! bref, retour aux concepts initiaux : le double clic… problème où est cette foutue option dans KDE !

Après quelques longues recherches : la solution est

  • Panneau de config de KDE
  • Périphérique / Souris
  • Option Simple/Doucle clic

Sauvé !