Je vais donc tenter de vous expliquer ici comment faire sans perdre vos précieuses données. Tout ce qui va se passer par la suite ici fonctionne parfaitement sous Ubuntu 8.10 Server.
Nous allons tout d'abord considérer que nous avons deux partitions en ext3 /dev/sdb1 et /dev/sdd1. Toutes les données sont contenues sur la partition /dev/sdb1. Nous voulons que nos données soient accessibles à partir du point de montage /mnt/mirror1.
C'est parti !
Tout d'abord, formatez /dev/sdd1 en ext3 afin d'avoir une partition toute propre. Ensuite on installe mdam.
sudo -s
sudo apt-get install mdadm
On démonte et paramètres nos partitions.
umount /mnt/mirror1
parted -s /dev/sdb set 1 raid on
parted -s /dev/sdd set 1 raid on
Maintenant, nous allons créer notre array en raid 1. Attention : la partition contenant vos données doit IMPÉRATIVEMENT être la première passée en paramètre à mdadm.
mdadm /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdd1
Répondre "y" à la question qui vous sera posée. Notre array est maintenant actif. Montons le et vérifions que nos données sont toujours là.
mount -t ext3 /dev/md0 /mnt/mirror1
ls -l /mnt/mirror1
Bon c'est bien mais il faudrai que tout ça se fasse automatiquement au démarrage.
mv /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.bak
echo MAILADDR root > /etc/mdadm/mdadm.conf
mdadm --detail --scan --verbose >> /etc/mdadm/mdadm.conf
touch /etc/init.d/mount_raid.sh
chmod +x /etc/init.d/mount_raid.sh
nano /etc/init.d/mount_raid.sh
Puis collez ceci dans le fichier :
#! /bin/bash
modprobe md
mdadm --assemble /dev/md0
mount -t ext3 /dev/md0 /mnt/mirror1
echo " * Raid array mounted"
Il faut maintenant que ce script soit lancé à chaque démarrage de la machine :
ln -s /etc/init.d/mount_raid.sh /etc/rc0.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc1.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc2.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc3.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc4.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc5.d/S10mount_raid
ln -s /etc/init.d/mount_raid.sh /etc/rc6.d/S10mount_raid
On reboot :
reboot
Une fois rebootée, vous pouvez vérifier la synchro de vos disques en tapant
cat /proc/mdstat
Vous obtiendrez quelque chose du style :
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[0] sdd1[1]
976759936 blocks [2/2] [UU]
[====>................] resync = 21.5% (210098752/976759936) finish=122.3min speed=104443K/sec
Profitez maintenant de vos données !! Il faut compter environ 3 heures pour synchroniser 1To de données.
# Ne pas confondre...
Posté par Raoul Volfoni (site web personnel) . Évalué à 4.
Sinon je suis surpris du peu de temps nécessaire pour construire ta pile Raid. Il y avait vraiment 1 To complet de données ?
Question subsidiaire: les 2 partitions sont de taille identique au cylindre près ?
En tous cas merci pour ce petit howto qui sera certainement utile à certains.
[^] # Re: Ne pas confondre...
Posté par Brice Youx . Évalué à 2.
Je n'ai pas vérifié si mes deux partitions sont de tailles identiques au cylindre près, mais chacune occupe l'intégralité d'un disque de 1To, les 2 disques utilisés sont eux, exactement les mêmes.
J'avoue que ma partition ne contenait que ~920Go de données.
# Utiliser l'autodétection
Posté par e-t172 (site web personnel) . Évalué à 3.
- Marquant les partitions physiques comme étant de type "Linux raid autodetect" (0xfd) avec fdisk ;
- Puis en ajoutant /dev/md0 au fstab.
Avec ça, le kernel assemblera automatiquement l'array au démarrage, créera /dev/md0 qui sera monté de façon classique par le fstab.
C'est mentionné dans le Software-RAID HOWTO : http://tldp.org/HOWTO/Software-RAID-HOWTO-7.html#ss7.2
[^] # Re: Utiliser l'autodétection
Posté par Brice Youx . Évalué à 2.
Je propose d'utiliser un script maison pour monter l'array car j'ai rencontré de nombreux problèmes avec la solution que vous proposez. Dans le cas où le kernel puis mdadm font correctement leur travail, le script ne pose aucun soucis. En revanche, si le raid n'est pas détecté automatiquement, rien n'est monté au démarrage. Le script est donc là pour faire le travail au cas où il n'a pas été fait avant.
Bonne soirée.
[^] # Re: Utiliser l'autodétection
Posté par e-t172 (site web personnel) . Évalué à 1.
Moi pas. J'ai trois arrays qui tournent comme ça et ils ne m'ont jamais posé la moindre surprise.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.