[RAID] [FileSystem] Quel FS pour étendre un RAID5 en toute sécurité ?
Quel FS pour étendre un RAID5 en toute sécurité ? [RAID] [FileSystem] - Installation - Linux et OS Alternatifs
MarshPosté le 02-12-2003 à 08:42:41
Je vais enfin monter mon seveur de fichier: un petit CPU (Duron 1.4 underclocké à 1GHz), un peu de RAM (384Mo), un peu d'espace disque (n * 200Go, n=4 pour commencer) avec un water-cooling, et un onduleur. Je compte faire du RAID-5 software. Mais je sais aussi que je vais progressivement rajouter des disques; donc je compte utiliser raidreconf (voir le manuel). Le principe: je rajoute un disque, je redistribue les blocs de parité, ce qui étend le volume raid. Alors j'étends la table des inoeuds, et le tour est joué. Le problème, c'est que même s'il semble fonctionner correctement, on n'est jamais à l'abri d'un bug/crash/etc. Je voudrais faire en sorte que même si un disque ou le CPU plante pendant l'opération, je ne perde aucune données.
J'ai pensé à la solution suivante.
Au lieu de ne faire disque 1 \ disque 2 | ... | volume raid disque n /
je pense découper chaque disque en partitions de 25Go (soit 8 partitions par disque de 200Go) et de faire 8 arrays en raid-5, que je regroupe alors en un seul volume avec un raid-linear. Pour rajouter un disque: 1) get offline 2) sur le nouvau disque, faire une partitionde n*25Go (c'est pour ça que les partitions doivent faire 25Go, c'est pour que (nombre_max_de_disques - 1) * taille_de_partition <= 200Go; ici j'ai prévu de m'arrêter à 8 disques dont 1 de redondance, c'est la limite que peut contenir mon water-bloc) 3) pour chaque array n°i, 1 <= i <= 8, le recopier intégralement sur le nouveau disque. Ensuite, reconfigurer le raid en mode dégradé où le nouveau disque serait déclaré "failed disk". 4) à la fin, partitionner le nouveau disque en 8 partitions de 25Go et le redéclarer le nouveau disque en mode normal.
Ca, ça vous protège contre un bug de raid-reconf: si plantage pendant la reconfiguration de l'array n°i, il suffit de recopier bêtement la sauvegarde faite sur nouveau disque, et de réessayer.
En revanche, ça ne protège pas contre une panne matérielle pendant la reconfiguration pour les arrays 2,3, ... 8. Mais pour être protégé dans ce cas il faudrait de toute façon pouvoir à un moment ou à un autre recopier la totalité des données !
Cette solution me semble satisfaisante, mais j'ai deux questions: 1) qu'en pensez-vous (je n'ai aucune expérience) ? 2) quel système de fichier utiliser ? Est-il utile dans le cas de l'ext3 de mettre le journal sur un volume à part, par exemple en RAID1 ?
Marsh Posté le 02-12-2003 à 08:42:41
Je vais enfin monter mon seveur de fichier: un petit CPU (Duron 1.4 underclocké à 1GHz), un peu de RAM (384Mo), un peu d'espace disque (n * 200Go, n=4 pour commencer) avec un water-cooling, et un onduleur.
Je compte faire du RAID-5 software. Mais je sais aussi que je vais progressivement rajouter des disques; donc je compte utiliser raidreconf
(voir le manuel).
Le principe: je rajoute un disque, je redistribue les blocs de parité, ce qui étend le volume raid. Alors j'étends la table des inoeuds, et le tour est joué.
Le problème, c'est que même s'il semble fonctionner correctement, on n'est jamais à l'abri d'un bug/crash/etc. Je voudrais faire en sorte que même si un disque ou le CPU plante pendant l'opération, je ne perde aucune données.
J'ai pensé à la solution suivante.
Au lieu de ne faire
disque 1 \
disque 2 |
... | volume raid
disque n /
je pense découper chaque disque en partitions de 25Go (soit 8 partitions par disque de 200Go) et de faire 8 arrays en raid-5,
que je regroupe alors en un seul volume avec un raid-linear.
Pour rajouter un disque:
1) get offline
2) sur le nouvau disque, faire une partitionde n*25Go
(c'est pour ça que les partitions doivent faire 25Go, c'est pour que (nombre_max_de_disques - 1) * taille_de_partition <= 200Go; ici j'ai prévu de m'arrêter à 8 disques dont 1 de redondance, c'est la limite que peut contenir mon water-bloc)
3) pour chaque array n°i, 1 <= i <= 8, le recopier intégralement sur le nouveau disque. Ensuite, reconfigurer le raid en mode dégradé où le nouveau disque serait déclaré "failed disk".
4) à la fin, partitionner le nouveau disque en 8 partitions de 25Go et le redéclarer le nouveau disque en mode normal.
Ca, ça vous protège contre un bug de raid-reconf: si plantage pendant la reconfiguration de l'array n°i, il suffit de recopier bêtement la sauvegarde faite sur nouveau disque, et de réessayer.
En revanche, ça ne protège pas contre une panne matérielle pendant la reconfiguration pour les arrays 2,3, ... 8. Mais pour être protégé dans ce cas il faudrait de toute façon pouvoir à un moment ou à un autre recopier la totalité des données !
Cette solution me semble satisfaisante, mais j'ai deux questions:
1) qu'en pensez-vous (je n'ai aucune expérience) ?
2) quel système de fichier utiliser ? Est-il utile dans le cas de l'ext3 de mettre le journal sur un volume à part, par exemple en RAID1 ?