Poster une réponse à un sujet: [linux] udev
Attention, ce sujet est un sujet ancien (5927 jours sans réponse)
philfr
J'ai refait un peu joujou avec mdadm pour vérifier mes dires.
Si tu crées ton array avec
mdadm --create /dev/md0 --raid-devices=4 --level=5 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm mettra un "persistent superblock" sur chaque partition pour retrouver ses jeunes par après.
Donc si par la suite, tu réaasembles ton array avec
mdadm --assemble /dev/md0 /dev/sde1 /dev/sdb1 /dev/sdd1 /dev/sdc1
mdadm se foutra pas mal que tu les as mis dans le désordre et fera ce qu'il faut.
Ton problème initial est donc à mon avis un non problème, mais je suppose que si tu l'as posé, c'est qu'il t'est arrivé quelque chose (ou peut-être était-ce juste une inquiétude ?)
Si tu mets le type de tes partitions à fd, le kernel peut les détecter au boot, et tu ne devras même pas redémarrer ton array. Je dis ça parce que c'est comme ça chez moi, mais il semble que les arrays autodétectées soient maintenant déconseillées et plus supportées avec le nouveau format de superblock (lien)
Une bonne façon de faire des tests avec mdadm est de jouer avec les loopback devices: tu crées des fichiers normaux (p.ex. avec dd if=/dev/zero of=partition1 bs=1k count=100000 crée un fichier de 100MB) puis tu fais passer ces fichiers pour des partitions avec les loopback devices (losetup -f partition1 crée un "device" /dev/loop0) que tu peux ensuite utiliser à la place de partitions dans tes essais mdadm. Tu peux alors les corrompre exprès, les supprimer, les rajouter, et voir que ton array marche toujours...
A propos des /dev/disk/by-xxx (normalement pas utile pour les RAID, mais pour info):
Si tu fais ls -l /dev/disk/by-id, tu devrais voir tous tes disques et partitions avec un nom immuable, lié à la marque et au no. de série.
Sur une machine ici par exemple, j'ai:
[root@punch philfr]# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 ata-Maxtor_6Y250P0_Y64XTEME -> ../../hdb
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-Maxtor_6Y250P0_Y64XTEME-part1 -> ../../hdb1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553 -> ../../hda
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part1 -> ../../hda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part2 -> ../../hda2
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part3 -> ../../hda3
lrwxrwxrwx 1 root root 9 2008-09-04 12:45 usb-Memorex_TD_Classic_003B_07710C1702FF -> ../../sda
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 usb-Memorex_TD_Classic_003B_07710C1702FF-part1 -> ../../sda1
[root@punch philfr]#
Les /dev/disk/by-path identifient la façon dont un disque est connecté à la machine et non le disque (si tu connectes un autre disque au même connecteur il aura donc ici le même nom)
Chez moi:
[root@punch raidtests]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root 9 2008-09-04 12:45 pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0 -> ../../hda
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part1 -> ../../hda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part2 -> ../../hda2
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part3 -> ../../hda3
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:1 -> ../../hdb
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:1-part1 -> ../../hdb1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-1:1 -> ../../hdd
[root@punch raidtests]#
Toujours sur ma même machine:
Le /dev/disk/by-uuid identifie uniquement les partitions qui ont un uuid:
[root@punch raidtests]# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 465D-ADAA -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 608a1fb8-0152-4cf2-ad56-c7bb6e0dc374 -> ../../hda3
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 f7699bc0-376e-44c5-80ca-dac4a00408cd -> ../../hda1
[root@punch raidtests]#
Si tu crées ton array avec
mdadm --create /dev/md0 --raid-devices=4 --level=5 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
mdadm mettra un "persistent superblock" sur chaque partition pour retrouver ses jeunes par après.
Donc si par la suite, tu réaasembles ton array avec
mdadm --assemble /dev/md0 /dev/sde1 /dev/sdb1 /dev/sdd1 /dev/sdc1
mdadm se foutra pas mal que tu les as mis dans le désordre et fera ce qu'il faut.
Ton problème initial est donc à mon avis un non problème, mais je suppose que si tu l'as posé, c'est qu'il t'est arrivé quelque chose (ou peut-être était-ce juste une inquiétude ?)
Si tu mets le type de tes partitions à fd, le kernel peut les détecter au boot, et tu ne devras même pas redémarrer ton array. Je dis ça parce que c'est comme ça chez moi, mais il semble que les arrays autodétectées soient maintenant déconseillées et plus supportées avec le nouveau format de superblock (lien)
Une bonne façon de faire des tests avec mdadm est de jouer avec les loopback devices: tu crées des fichiers normaux (p.ex. avec dd if=/dev/zero of=partition1 bs=1k count=100000 crée un fichier de 100MB) puis tu fais passer ces fichiers pour des partitions avec les loopback devices (losetup -f partition1 crée un "device" /dev/loop0) que tu peux ensuite utiliser à la place de partitions dans tes essais mdadm. Tu peux alors les corrompre exprès, les supprimer, les rajouter, et voir que ton array marche toujours...
A propos des /dev/disk/by-xxx (normalement pas utile pour les RAID, mais pour info):
Si tu fais ls -l /dev/disk/by-id, tu devrais voir tous tes disques et partitions avec un nom immuable, lié à la marque et au no. de série.
Sur une machine ici par exemple, j'ai:
[root@punch philfr]# ls -l /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 ata-Maxtor_6Y250P0_Y64XTEME -> ../../hdb
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-Maxtor_6Y250P0_Y64XTEME-part1 -> ../../hdb1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553 -> ../../hda
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part1 -> ../../hda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part2 -> ../../hda2
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 ata-WDC_WD400BB-60DGA0_WD-WMADK2629553-part3 -> ../../hda3
lrwxrwxrwx 1 root root 9 2008-09-04 12:45 usb-Memorex_TD_Classic_003B_07710C1702FF -> ../../sda
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 usb-Memorex_TD_Classic_003B_07710C1702FF-part1 -> ../../sda1
[root@punch philfr]#
Les /dev/disk/by-path identifient la façon dont un disque est connecté à la machine et non le disque (si tu connectes un autre disque au même connecteur il aura donc ici le même nom)
Chez moi:
[root@punch raidtests]# ls -l /dev/disk/by-path/
total 0
lrwxrwxrwx 1 root root 9 2008-09-04 12:45 pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0 -> ../../sda
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 pci-0000:00:1d.7-usb-0:1:1.0-scsi-0:0:0:0-part1 -> ../../sda1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0 -> ../../hda
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part1 -> ../../hda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part2 -> ../../hda2
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:0-part3 -> ../../hda3
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:1 -> ../../hdb
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 pci-0000:00:1f.1-ide-0:1-part1 -> ../../hdb1
lrwxrwxrwx 1 root root 9 2008-09-04 11:43 pci-0000:00:1f.1-ide-1:1 -> ../../hdd
[root@punch raidtests]#
Toujours sur ma même machine:
Le /dev/disk/by-uuid identifie uniquement les partitions qui ont un uuid:
[root@punch raidtests]# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 2008-09-04 12:45 465D-ADAA -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 608a1fb8-0152-4cf2-ad56-c7bb6e0dc374 -> ../../hda3
lrwxrwxrwx 1 root root 10 2008-09-04 11:43 f7699bc0-376e-44c5-80ca-dac4a00408cd -> ../../hda1
[root@punch raidtests]#
Jean-Christophe
je ne peux que te recommander de le faire "à la main", ça te permettra de mieux comprendre ce qui se passe et d'expérimenter avec ton raid avant de lui faire confiance pour y mettre tes données.
Ben oui, j'en suis là, mais ca prend un temps bête tout ses essais.
En même temps, c'est normal, mais ca explique que ce ne soit pas simple dans la pratique.
Suite au prochain épisode, merci
philfr
Les partitions que tu vas utiliser pour construire ton raid n'on pas à contenir de file system. Mais donc tu as raison, il n'auront pas d'uuid et ne seront dès lors pas identifiables avec un /dev/disk/by-uuid/...
Ils seront par contre toujours identifiables avec un /dev/disk/by-path/... si tu ne les déplaces pas de connecteur USB.
Cela dit, je persiste à croire que mdadm peut retrouver tout seul l'ordre des disques si l'array a été créé comme il faut, c'est à dire avec mdadm create et non avec mdadm build.
Je ne sais pas comment webmin appelle mdadm, mais je ne peux que te recommander de le faire "à la main", ça te permettra de mieux comprendre ce qui se passe et d'expérimenter avec ton raid avant de lui faire confiance pour y mettre tes données.
Ils seront par contre toujours identifiables avec un /dev/disk/by-path/... si tu ne les déplaces pas de connecteur USB.
Cela dit, je persiste à croire que mdadm peut retrouver tout seul l'ordre des disques si l'array a été créé comme il faut, c'est à dire avec mdadm create et non avec mdadm build.
Je ne sais pas comment webmin appelle mdadm, mais je ne peux que te recommander de le faire "à la main", ça te permettra de mieux comprendre ce qui se passe et d'expérimenter avec ton raid avant de lui faire confiance pour y mettre tes données.
Jean-Christophe
ok, ma question n'était pas claire, c'est vrai
Au moment de créer le RAID, il me demande de choisir des partitions pour le composer (et pas des disques, comme un raid hardware).
J'ai donc des partitions "en dessous" du raid. Il y a 36 sortes de formatage possible pour ses partitions. Je ne sais pas si ca change quelque chose que ce soit un ou l'autre, mais j'ai constaté que si je ne formate pas la partition (je la laisse empty), ca fonctionne MAIS, je n'ai pas le fameux UID dont nous parlions quelques lignes plus haut. En même temps, vu le temps que ca me prends pour faire un test, je n'en ai pas fait 40 et donc, je ne suis pas sur que c'est l'absence de formatage qui cause l'absence d'UID.
J'espère que maintenant, c'est plus clair.
Au moment de créer le RAID, il me demande de choisir des partitions pour le composer (et pas des disques, comme un raid hardware).
J'ai donc des partitions "en dessous" du raid. Il y a 36 sortes de formatage possible pour ses partitions. Je ne sais pas si ca change quelque chose que ce soit un ou l'autre, mais j'ai constaté que si je ne formate pas la partition (je la laisse empty), ca fonctionne MAIS, je n'ai pas le fameux UID dont nous parlions quelques lignes plus haut. En même temps, vu le temps que ca me prends pour faire un test, je n'en ai pas fait 40 et donc, je ne suis pas sur que c'est l'absence de formatage qui cause l'absence d'UID.
J'espère que maintenant, c'est plus clair.
philfr
Pour le type de partition, tu mets "fd" autodetect.
Le file system se fait sur le raid, pas sur les partitions individuelles.
Ta question n'étant pas claire, je ne suis pas sûr que ma réponse te convienne, mais tu peux préciser...
Le file system se fait sur le raid, pas sur les partitions individuelles.
Ta question n'étant pas claire, je ne suis pas sûr que ma réponse te convienne, mais tu peux préciser...
Jean-Christophe
Pour faire un raid 5 avec mdadm, qu'est ce qui est le mieux comme partition de base sur chaque disque?
Jean-Christophe
non, non, pas de panique.
il y a un des disques qui était ntfs, avec des données dessus, je me suis suis dit que ce serait plus facile de faire un raid en 3 disques, de déplacer les fichiers de la partition ntfs vers le raid, puis de virer l'ntfs et d'agrandir le raid avec le disque nouvellement vidé.
mais j'ai foiré mon truc
il y a un des disques qui était ntfs, avec des données dessus, je me suis suis dit que ce serait plus facile de faire un raid en 3 disques, de déplacer les fichiers de la partition ntfs vers le raid, puis de virer l'ntfs et d'agrandir le raid avec le disque nouvellement vidé.
mais j'ai foiré mon truc
philfr
Pour le moment, je teste ntfsundelete , j'ai fais l'on
Tu ne fais quand même pas ton RAID linux en NTFS ?
philfr
Les /dev/disk/by-uuid sont aussi tes partitions. Tu dois donc remplacer /dev/sd* par ceux-là qui restent immuables.
Jean-Christophe
j'en fait un raid, et donc, c'est bien des partitions dont j'ai besoin
je vais faire quelques tests
merci
Pour le moment, je teste ntfsundelete , j'ai fais l'on
je vais faire quelques tests
merci
Pour le moment, je teste ntfsundelete , j'ai fais l'on