Pas la peine de ZFS, le module geom_raid5 est capable d'augmenter la taille d'un volume en remplacant les disques 1 par 1.
Exemple:
1. Création de 3 disques de 10MB:
# mdconfig -a -t malloc -s 10m -u 11
# mdconfig -a -t malloc -s 10m -u 12
# mdconfig -a -t malloc -s 10m -u 13
2. Création d'un volume graid5 utilisant ces 3 disques (ce qui va donner un volume de 20MB utilisable):
# graid5 label -s 131072 raid5vol /dev/md11 /dev/md12 /dev/md13
3. Formattage, montage, création d'un fichier de 18MB dessus et calcul du checksum:
# newfs -m 0 /dev/raid5/raid5vol
# mount /dev/raid5/raid5vol /mnt/
# dd if=/dev/urandom of=/mnt/fichier bs=1M count=18
# sha256 /mnt/fichier
SHA256 (/mnt/fichier) = 998731d093a3eb8a0a0b0f48b5933a17c86d7b522c158f6c8271c26a64dde1d4
# df -h | grep raid5vol
Filesystem Size Used Avail Capacity Mounted on
/dev/raid5/raid5vol 19M 18M 1M 95% /mnt
Maintenant nous souhaitons augmenter la taille de ce volume graid5, nous allons donc remplacer les disques de 10Mb par des disque de 20Mb un par un.
4. Création de 3 nouveaux disques de 20Mb:
# mdconfig -a -t malloc -s 20m -u 21
# mdconfig -a -t malloc -s 20m -u 22
# mdconfig -a -t malloc -s 20m -u 23
5. Supression d'un disque de 10MB, ré-insertion d'un nouveau de 20MB et attente de la fine de la re-synchronisation:
# graid5 remove raid5vol md11
# graid5 insert raid5vol md21
# graid5 status
Name Status Components
raid5/raid5vol COMPLETE CALM md12
md13
md21
6. On refait la même chose pour les 2 autres disques (en attendant la re-synchro entre chaque).
# graid5 remove raid5vol md12
# graid5 insert raid5vol md22
# graid5 status
Name Status Components
raid5/raid5vol COMPLETE CALM md13
md21
md22
# graid5 remove raid5vol md13
# graid5 insert raid5vol md23
# graid5 status
Name Status Components
raid5/raid5vol COMPLETE CALM md21
md22
md23
7. Augmenter le filesystem, étape qui se fait volume démonté obligatoirement (FBSD 9.1 pourra re-tailler un filesystème sans le démonter):
# umount /mnt
# growfs /dev/raid5/raid5vol
8. Puis on vérifie la taille du nouveau volume et le fait que notre fichier d'origine n'a pas été modifié:
# mount /dev/raid5/raid5vol /mnt/
# df -h | grep raid5vol
Filesystem Size Used Avail Capacity Mounted on
/dev/raid5/raid5vol 38M 18M 20M 47% /mnt
# sha256 /mnt/fichier
SHA256 (/mnt/fichier) = 998731d093a3eb8a0a0b0f48b5933a17c86d7b522c158f6c8271c26a64dde1d4
Et voila
