[gull] UUID

Félix Hauri felix at f-hauri.ch
Sun May 22 10:56:03 CEST 2011


Re,

On Sat, May 21, 2011 at 04:20:33PM +0200, Pierre Maitre wrote:
> ... Je continue sur le bon fil de discussion (désolé pour le mélange
> que mon inattention a créé)
Tu as raison: C'est ``mieux'' comme ça ;-)

> ...
> Parce que la solution raid me parait plus lourde et plus compliquée et
> qu'en informatique (comme en toute chose) le mieux est l'ennemi du
> bien!   ## Très subjectif!
;-)

> La mise en place est simple: je configure ma machine neuve avec deux
> disques identiques sans m'occuper du deuxième disque ou du raid. Quand
> tout fonctionne comme je le veux, je fais un "dd if=/dev/sda
> of=/dev/sdb" et le tour est joué...
Le problème qui peut se poser avec cette méthode est que si ``sda'' est
utilisé pendant le dd, tu as bcp de chances que le contenu de sda se
modifie *pendant* la lecture avec dd. Donc d'avoir certains fichiers
au contenu incohérent. (voire des problèmes de structure du système
de fichier qui peuvent t'amener à *devoir* faire un fsck qui confinera
une partie de ton arborescence dans ``lost+found''. 

> (jusqu'à ces dernières années je
> n'avais pas eu de problèmes d'UUID, parce que ça n'existait pas....
> cette fois, j'ai été un peu surpris).
Oui, on est arrivé à ``préférer'' utiliser des références au filesystem
plutôt que d'adresser les devices par leur noms, car les noms des devices
peuvent changer en fonction du kernel utilisé (p. ex: hda est devenu sda
sur bcp de périphériques sata, entre 2.4, 2.6 et 2.6.18...)

> Ce montage me permet d'avoir un disque de réserve, prêt à booter en
> cas de pépin sur le premier. Ce deuxième disque fait aussi partie de
> ma stratégie de backup avec  des rsync hebdomadaires, si simples à
> mettre en oeuvre avec cron (j'utilise aussi d'autres méthodes de
> backup en complément).  Entre les rsync hebdomadaires, le deuxième
> disque est démonté (umount).
La méthode que je te proposais permet de faire la même chose, toutefois:
 - tu référence ``mdX'' plutôt que ``sdXY'' et donc, ce sera le raid
   qui se chargera de déterminer quel(s) disque(s) est(sont) actifs et
   à jour au moment du démarrage.
 - le problème de modification du fs ``pendant'' la synchronisation
   devient un problème du kernel, qui se chargera de reporter les
   modifications sur les deux disques, simultanément. 
 - ce second point te permet d'utiliser ton système tranquillement
   pendant la synchronisation. Le gestionnaire de raid ralentira au
   besoin la vitesse de copie pour te permettre de travailler 
   correctement.

Autre possibilité: avoir ton ``second'' disque de raid mirroir en USB.
cela de permet d'avoir plusieurs second disques différents... p.ex:
  .1 branchement du disque USB (partitionné)
  .2 en root: # mdadm -a /dev/md0 /dev/sdd1
  .3 cat /proc/mdstat périodiquement jusqu'à ce que la synchronisation
     soit terminée
     while grep -q "sync=" /proc/mdstat;do sleep 10;done
  .4 ``sortir'' le disque usb du raid:
     # mdadm /dev/md0 --fail /dev/sdd1 --remove /dev/sdd1
     # eject /dev/sdd

> ...
> >> Seulement voilà, maintenant je me trouve avec des partitions qui ont
> >> exactement le même UUID:
> > Ben, oui... C'est un problème que tu aurras égallement en considérant les
> > deux partitions raid individuellement (raid non démarré).
> Là, après avoir changé les UUID avec tune2fs pour les partitions  ext4
> et avec mkswap pour la partition swap, tout est rentré dans l'ordre.
Oui, mais au prochain ``dd'', *toute* ta structure de fs (métadonnées)
sera recopiée égallement, donc tu aurras à nouveau le même UUID.
La solution est de faire *systématiquement* la commande suggérée par
Erik et François, *après chaque* ``dd'' (petit script shell).

> ...
> Ben si: le premier reboot avec deux disques qui avaient des UUID
> identiques a été un peu cahotique, parce que grub.cfg et fstab
> faisaient référence au UUID. Depuis, j'ai "labellisé" toutes mes
> partitions et j'ai  ré-écrit fstab où j'ai remplacé les UUID par des
> LABEL  .... c'est quand même plus agréable à lire.
M'oui, à mon avis, cela ne va que déplacer le problème, le LABEL faisant
partie de méta-données au même titre que l'UUID, il sera égallement 
identique au prochain ``dd''.

Tu dois égallement pouvoir préciser à ``grub'' le device par
son nom (correspondant au kernel utilisé):
 root=/dev/sda1

Ce qui serait plus stable, tant que tu ne change pas de kernel ou
tant que le kernel utilisé référence les block-devices de la même
manière (et bien entendu, que tu ne rajoute pas de controlleur de
disques ou de disque qui pourraient prendre la place ``sda'' dans
la liste générée par le kernel au démarrage).

--
 Félix Hauri  -  <felix at f-hauri.ch>  -  http://www.f-hauri.ch


More information about the gull mailing list