Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:raid1_logiciel_sur_installation_existante [Le 18/05/2010, 17:29] – blueduck | tutoriel:raid1_logiciel_sur_installation_existante [Le 04/02/2026, 16:17] (Version actuelle) – a_supprimer (brouillon incomplet depuis 10 ans) krodelabestiole | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag> | + | {{tag> |
| + | |||
| + | ---- | ||
| ====== Configurer un RAID 1 logiciel sur une installation existante ====== | ====== Configurer un RAID 1 logiciel sur une installation existante ====== | ||
| Ligne 7: | Ligne 10: | ||
| </ | </ | ||
| - | == Objectif == | + | ===== Préambule ===== |
| + | |||
| + | ==== Objectif | ||
| J' | J' | ||
| - | == Limite de responsabilité == | + | ==== Limite de responsabilité |
| Plutôt qu'un véritable guide, il s'agit d'une synthèse des étapes par lesquelles je suis moi-même passé pour y parvenir. N' | Plutôt qu'un véritable guide, il s'agit d'une synthèse des étapes par lesquelles je suis moi-même passé pour y parvenir. N' | ||
| - | == Sources == | + | ==== Sources |
| Ce tutoriel est très largement basé sur celui de Falko Timme que vous trouverez à cette adresse : http:// | Ce tutoriel est très largement basé sur celui de Falko Timme que vous trouverez à cette adresse : http:// | ||
| Je l'ai traduit, légèrement adapté pour Ubuntu 10.04, et actualisé pour ce qui concerne la configuration de [[: | Je l'ai traduit, légèrement adapté pour Ubuntu 10.04, et actualisé pour ce qui concerne la configuration de [[: | ||
| + | Il faut noter que Falko Timme est allé au bout de l' | ||
| ===== Pré-requis ===== | ===== Pré-requis ===== | ||
| Ligne 31: | Ligne 37: | ||
| J' | J' | ||
| </ | </ | ||
| + | |||
| ===== Notes préliminaires ===== | ===== Notes préliminaires ===== | ||
| Ligne 50: | Ligne 57: | ||
| Voici donc la situation actuelle : | Voici donc la situation actuelle : | ||
| - | | + | < |
| + | blueduck@serveur: | ||
| - | | + | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur |
| - | / | + | / |
| - | none 244M 200K 244M 1% /dev | + | none 244M 200K 244M 1% /dev |
| - | none 249M 4,0K 249M 1% /dev/shm | + | none 249M 4,0K 249M 1% /dev/shm |
| - | none 249M 352K 249M 1% /var/run | + | none 249M 352K 249M 1% /var/run |
| - | none 249M | + | none 249M |
| - | none 249M | + | none 249M |
| - | none | + | none |
| - | / | + | / |
| - | | + | blueduck@serveur: |
| - | | + | Disque /dev/sda: 500.1 Go, 500107862016 octets |
| - | 255 têtes, 63 secteurs/ | + | 255 têtes, 63 secteurs/ |
| - | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
| - | Sector size (logical/ | + | Sector size (logical/ |
| - | I/O size (minimum/ | + | I/O size (minimum/ |
| - | Identifiant de disque : 0x000860a2 | + | Identifiant de disque : 0x000860a2 |
| | | ||
| - | | + | Périphérique Amorce |
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| | | ||
| - | | + | Disque /dev/sdb: 500.1 Go, 500107862016 octets |
| - | 255 têtes, 63 secteurs/ | + | 255 têtes, 63 secteurs/ |
| - | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
| | | ||
| - | | + | Le disque /dev/sdb ne contient pas une table de partition valide |
| + | </ | ||
| ===== Installer mdadm ===== | ===== Installer mdadm ===== | ||
| - | Il faut installer '' | ||
| - | blueduck@serveur: | ||
| - | ou cliquez sur ce lien : **[[apt:// | ||
| - | Puis, exécutez : | + | Il faut [[: |
| - | | + | |
| + | Puis, après avoir redémarré votre machine, exécutez : | ||
| + | |||
| + | sudo cat / | ||
| ce qui devrait vous afficher quelque chose comme : | ce qui devrait vous afficher quelque chose comme : | ||
| - | | + | |
| - | unused devices: < | + | < |
| + | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
| + | unused devices: < | ||
| + | </ | ||
| ===== Préparer le second disque dur ===== | ===== Préparer le second disque dur ===== | ||
| - | ==== Clôner | + | ==== Cloner |
| Afin d' | Afin d' | ||
| - | blueduck@serveur: | ||
| - | Ce qui doit provoquer l' | ||
| - | Vérification qu' | ||
| - | OK | ||
| | | ||
| - | Disque /dev/sdb : 60801 cylindres, 255 têtes, 63 secteurs/ | + | |
| - | Vieille situation: | + | |
| - | Unités= cylindres de 8225280 octets, blocs de 1024 octets, décompte à partir de 0 | + | Ce qui doit provoquer l' |
| - | + | ||
| - | | + | < |
| - | / | + | Vérification qu' |
| - | / | + | OK |
| - | / | + | |
| - | / | + | Disque /dev/sdb : 60801 cylindres, 255 têtes, 63 secteurs/ |
| - | + | Vieille situation: | |
| - | Nouvelle situation: | + | Unités= cylindres de 8225280 octets, blocs de 1024 octets, décompte à partir de 0 |
| - | Unités= secteurs de 512 octets, décompte à partir de 0 | + | |
| - | + | | |
| - | | + | / |
| - | / | + | / |
| - | / | + | / |
| - | / | + | / |
| - | / | + | |
| - | Succès d' | + | Nouvelle situation: |
| - | + | Unités= secteurs de 512 octets, décompte à partir de 0 | |
| - | Relecture de la table de partitions ... | + | |
| - | + | | |
| - | Si vous créez ou modifiez une partition DOS, /dev/foo7, par exemple, alors | + | / |
| - | utiliser dd(1) pour mettre à zéro les premiers 512 octets: | + | / |
| - | dd if=/ | + | / |
| - | (Consulter fdisk(8).) | + | / |
| + | Succès d' | ||
| + | |||
| + | Relecture de la table de partitions ... | ||
| + | |||
| + | Si vous créez ou modifiez une partition DOS, /dev/foo7, par exemple, alors | ||
| + | utiliser dd(1) pour mettre à zéro les premiers 512 octets: | ||
| + | dd if=/ | ||
| + | (Consulter fdisk(8).) | ||
| + | </ | ||
| La commande : | La commande : | ||
| - | blueduck@serveur: | + | |
| + | | ||
| doit montrer que les deux disques durs ont maintenant exactement la même structure : | doit montrer que les deux disques durs ont maintenant exactement la même structure : | ||
| - | | + | |
| - | 255 têtes, 63 secteurs/ | + | < |
| - | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Disque /dev/sda: 500.1 Go, 500107862016 octets |
| - | Sector size (logical/ | + | 255 têtes, 63 secteurs/ |
| - | I/O size (minimum/ | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
| - | Identifiant de disque : 0x000860a2 | + | Sector size (logical/ |
| - | + | I/O size (minimum/ | |
| - | Périphérique Amorce | + | Identifiant de disque : 0x000860a2 |
| - | / | + | |
| - | / | + | Périphérique Amorce |
| - | / | + | / |
| - | + | / | |
| - | Disque /dev/sdb: 500.1 Go, 500107862016 octets | + | / |
| - | 255 têtes, 63 secteurs/ | + | |
| - | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Disque /dev/sdb: 500.1 Go, 500107862016 octets |
| - | Sector size (logical/ | + | 255 têtes, 63 secteurs/ |
| - | I/O size (minimum/ | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
| - | Identifiant de disque : 0x4caa4880 | + | Sector size (logical/ |
| - | + | I/O size (minimum/ | |
| - | Périphérique Amorce | + | Identifiant de disque : 0x4caa4880 |
| - | / | + | |
| - | / | + | Périphérique Amorce |
| - | / | + | / |
| + | / | ||
| + | / | ||
| + | </ | ||
| Plus simple et rapide que de partitionner à la main, non ;-) ? | Plus simple et rapide que de partitionner à la main, non ;-) ? | ||
| - | ==== Changer le type des partitions ==== | + | |
| + | ==== Changer le type des partitions | ||
| Ensuite, il faut régler le type des partitions sur //Linux raid autodetect// | Ensuite, il faut régler le type des partitions sur //Linux raid autodetect// | ||
| Rapidement, je rappelle que '' | Rapidement, je rappelle que '' | ||
| + | |||
| + | < | ||
| blueduck@serveur: | blueduck@serveur: | ||
| Ligne 178: | Ligne 210: | ||
| | | ||
| Commande (m pour l' | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| Pour changer le type d'une partition, on utilise la commande '' | Pour changer le type d'une partition, on utilise la commande '' | ||
| + | |||
| + | < | ||
| Commande (m pour l' | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| Il faut ensuite indiquer le numéro de la partition à modifier (ici la '' | Il faut ensuite indiquer le numéro de la partition à modifier (ici la '' | ||
| + | |||
| + | < | ||
| Numéro de partition (1-4): 1 | Numéro de partition (1-4): 1 | ||
| + | </ | ||
| + | |||
| Puis le code du type de partition voulu ('' | Puis le code du type de partition voulu ('' | ||
| + | |||
| + | < | ||
| Code Hexa (taper L pour lister les codes): L | Code Hexa (taper L pour lister les codes): L | ||
| | | ||
| Ligne 210: | Ligne 254: | ||
| 1c Cachée W95 FAT 80 Minix ancienne | 1c Cachée W95 FAT 80 Minix ancienne | ||
| 1e Cachée W95 FAT | 1e Cachée W95 FAT | ||
| - | Le type //Linux raid autodetect// | + | </ |
| + | |||
| + | Le type //Linux raid autodetect// | ||
| + | |||
| + | < | ||
| Code Hexa (taper L pour lister les codes): fd | Code Hexa (taper L pour lister les codes): fd | ||
| - | Type système de partition modifié de 1 à fd (Linux raid autodetect) | + | Type système de partition modifié de 83 à fd (Linux raid autodetect) |
| | | ||
| Commande (m pour l' | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| On répète l' | On répète l' | ||
| + | |||
| Commande (m pour l' | Commande (m pour l' | ||
| Numéro de partition (1-4): 2 | Numéro de partition (1-4): 2 | ||
| Code Hexa (taper L pour lister les codes): fd | Code Hexa (taper L pour lister les codes): fd | ||
| - | Type système de partition modifié de 2 à fd (Linux raid autodetect) | + | Type système de partition modifié de 83 à fd (Linux raid autodetect) |
| | | ||
| Commande (m pour l' | Commande (m pour l' | ||
| Numéro de partition (1-4): 3 | Numéro de partition (1-4): 3 | ||
| Code Hexa (taper L pour lister les codes): fd | Code Hexa (taper L pour lister les codes): fd | ||
| - | Type système de partition modifié de 3 à fd (Linux raid autodetect) | + | Type système de partition modifié de 82 à fd (Linux raid autodetect) |
| | | ||
| Commande (m pour l' | Commande (m pour l' | ||
| Ligne 237: | Ligne 288: | ||
| == Vérifier les partitions == | == Vérifier les partitions == | ||
| + | |||
| Pour s' | Pour s' | ||
| blueduck@serveur: | blueduck@serveur: | ||
| Ligne 246: | Ligne 298: | ||
| ===== Configurer le RAID 1 ===== | ===== Configurer le RAID 1 ===== | ||
| + | |||
| ==== Créer les grappes ==== | ==== Créer les grappes ==== | ||
| + | |||
| On crée ''/ | On crée ''/ | ||
| - | blueduck@serveur: | + | |
| - | | + | |
| - | | + | sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 |
| - | La commande : | + | sudo mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3 |
| - | | + | |
| + | La commande : | ||
| + | |||
| + | sudo cat / | ||
| devrait maintenant montrer que vous avez trois grappes RAID dégradées : | devrait maintenant montrer que vous avez trois grappes RAID dégradées : | ||
| + | |||
| + | < | ||
| Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
| md2 : active raid1 sdb3[1] | md2 : active raid1 sdb3[1] | ||
| Ligne 265: | Ligne 325: | ||
| | | ||
| unused devices: < | unused devices: < | ||
| + | </ | ||
| + | |||
| < | < | ||
| Les indicateurs [_U] ou [U_] signifient qu'une grappe est dégradée, alors que [UU] signifie que la grappe est normale. | Les indicateurs [_U] ou [U_] signifient qu'une grappe est dégradée, alors que [UU] signifie que la grappe est normale. | ||
| </ | </ | ||
| - | ==== Créer les systèmes de fichiers ==== | + | |
| + | ==== Créer les systèmes de fichiers | ||
| On peut désormais choisir le système de fichiers de chaque grappe, //ext4// pour ''/ | On peut désormais choisir le système de fichiers de chaque grappe, //ext4// pour ''/ | ||
| + | |||
| blueduck@serveur: | blueduck@serveur: | ||
| Ligne 297: | Ligne 362: | ||
| après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i | après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i | ||
| pour écraser la valeur. | pour écraser la valeur. | ||
| + | |||
| Continuer avec : | Continuer avec : | ||
| - | blueduck@serveur: | + | |
| + | | ||
| et | et | ||
| - | blueduck@serveur: | + | |
| + | | ||
| ==== Mettre à jour le fichier mdadm.conf ==== | ==== Mettre à jour le fichier mdadm.conf ==== | ||
| + | |||
| À présent, adaptez le fichier ''/ | À présent, adaptez le fichier ''/ | ||
| - | blueduck@serveur: | + | |
| + | | ||
| puis faites un scan de la configuration RAID qui sera ajoutée au nouveau fichier : | puis faites un scan de la configuration RAID qui sera ajoutée au nouveau fichier : | ||
| - | blueduck@serveur: | ||
| - | <note tip> | + | |
| - | Si vous obtenez le message d' | + | |
| - | bash: / | + | |
| - | contournez-le en déplaçant le fichier '' | + | |
| - | blueduck@serveur: | + | |
| - | blueduck@serveur: | + | |
| - | blueduck@serveur: | + | |
| - | blueduck@serveur: | + | |
| - | blueduck@serveur: | + | |
| - | </ | + | |
| Vérifiez que votre fichier ''/ | Vérifiez que votre fichier ''/ | ||
| blueduck@serveur: | blueduck@serveur: | ||
| + | < | ||
| # mdadm.conf | # mdadm.conf | ||
| # | # | ||
| Ligne 341: | Ligne 407: | ||
| ARRAY /dev/md1 level=raid1 num-devices=2 UUID=057ec4b9: | ARRAY /dev/md1 level=raid1 num-devices=2 UUID=057ec4b9: | ||
| ARRAY /dev/md2 level=raid1 num-devices=2 UUID=18366108: | ARRAY /dev/md2 level=raid1 num-devices=2 UUID=18366108: | ||
| + | </ | ||
| + | |||
| ==== Monter les grappes ==== | ==== Monter les grappes ==== | ||
| + | |||
| Les grappes sont prêtes à être montées, afin de pouvoir y accéder. Créez deux points de montage, par exemple ''/ | Les grappes sont prêtes à être montées, afin de pouvoir y accéder. Créez deux points de montage, par exemple ''/ | ||
| - | blueduck@serveur: | + | |
| - | | + | |
| + | sudo mkdir /mnt/md1 | ||
| puis montez les deux grappes formatées en //ext4// : | puis montez les deux grappes formatées en //ext4// : | ||
| - | blueduck@serveur: | + | |
| - | | + | |
| + | sudo mount /dev/md1 /mnt/md1 | ||
| La grappe d' | La grappe d' | ||
| Vous devriez voir les deux grappes en tapant la commande : | Vous devriez voir les deux grappes en tapant la commande : | ||
| + | |||
| blueduck@serveur: | blueduck@serveur: | ||
| Ligne 371: | Ligne 445: | ||
| /dev/md0 on /mnt/md0 type ext4 (rw) | /dev/md0 on /mnt/md0 type ext4 (rw) | ||
| /dev/md1 on /mnt/md1 type ext4 (rw) | /dev/md1 on /mnt/md1 type ext4 (rw) | ||
| + | ==== Mettre à jour les fichiers fstab et mtab ==== | ||
| + | |||
| + | <note important> | ||
| + | Je ne vais pas entrer ici dans le détail : les pages sur [[: | ||
| + | </ | ||
| + | |||
| ===== Dupliquer les données ===== | ===== Dupliquer les données ===== | ||
| + | |||
| Maintenant que les grappes sont montées, on peut copier dessus le contenu du premier disque dur : | Maintenant que les grappes sont montées, on peut copier dessus le contenu du premier disque dur : | ||
| - | blueduck@serveur: | + | |
| - | | + | |
| + | sudo cp -dpRx /multimedia/ /mnt/md1 | ||
| + | |||
| + | < | ||
| + | * s'il est présent, **le contenu** du dossier /multimedia sera copié dans /mnt/md1 ; | ||
| + | * s'il est absent, c'est **le dossier** /multimedia qui sera copié dans /mnt/md1, c' | ||
| + | |||
| + | Comme ici /multimedia sera un point de montage vers /dev/md1, il faut que ce slash soit présent. | ||
| + | |||
| + | |||
| + | __Rappel sur les options utilisées de la commande cp :__ | ||
| + | * **-d** préserve les liens symboliques ; | ||
| + | * **-p** préserve les propriétés des fichiers et dossiers (droits d' | ||
| + | * **-R** demande une copie récursive ; | ||
| + | * **-x** demande de ne pas sortir du système de fichier contenant le dossier à copier, ainsi même si **/** contient **/proc**, le contenu de **/proc** ne sera pas copié car **/proc** est dans un système de fichier virtuel (nommé //proc//, cf. ''/ | ||
| + | * l' | ||
| + | |||
| + | </ | ||
| <note tip> | <note tip> | ||
| Pour ma part, j'ai préféré utiliser '' | Pour ma part, j'ai préféré utiliser '' | ||
| - | blueduck@serveur: | + | |
| - | | + | |
| + | sudo rsync -av --progress --stats /multimedia /mnt/md1 | ||
| Compte-tenu des quantités de données à déplacer (plus de 400 Go depuis ''/ | Compte-tenu des quantités de données à déplacer (plus de 400 Go depuis ''/ | ||
| - | <note important> | + | <note important> |
| Il serait bien que quelqu' | Il serait bien que quelqu' | ||
| </ | </ | ||
| Ligne 388: | Ligne 488: | ||
| ===== Premier redémarrage ===== | ===== Premier redémarrage ===== | ||
| - | ==== Configuration de GRUB (première partie) === | + | |
| - | ==== Mettre à jour les fichiers fstab et mtab ==== | + | ==== Configuration de GRUB (première partie) ==== |
| + | |||
| + | FIXME | ||
| + | |||
| ==== Après le premier redémarrage ==== | ==== Après le premier redémarrage ==== | ||
| + | |||
| Si tout s'est bien passé, vous devriez obtenir le résultat suivant avec la commande '' | Si tout s'est bien passé, vous devriez obtenir le résultat suivant avec la commande '' | ||
| blueduck@serveur: | blueduck@serveur: | ||
| Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | ||
| + | |||
| Et toujours : | Et toujours : | ||
| + | |||
| blueduck@serveur: | blueduck@serveur: | ||
| Ligne 403: | Ligne 510: | ||
| ===== Ajouter le premier disque dur ===== | ===== Ajouter le premier disque dur ===== | ||
| - | ==== Modifier le type des partitions ==== | + | ==== Modifier le type des partitions |
| De même que pour ''/ | De même que pour ''/ | ||
| ==== Intégrer le premier disque dur à la grappe ==== | ==== Intégrer le premier disque dur à la grappe ==== | ||
| + | |||
| Le temps est venu d' | Le temps est venu d' | ||
| + | |||
| ==== Mettre à jour le fichier mdadm.conf ==== | ==== Mettre à jour le fichier mdadm.conf ==== | ||
| + | |||
| Une nouvelle fois, il faut scanner la configuration RAID pour mettre à jour le fichier ''/ | Une nouvelle fois, il faut scanner la configuration RAID pour mettre à jour le fichier ''/ | ||
| + | |||
| ==== Configuration de GRUB (deuxième partie) ==== | ==== Configuration de GRUB (deuxième partie) ==== | ||
| + | |||
| + | FIXME | ||
| + | |||
| ==== Après le deuxième redémarrage ==== | ==== Après le deuxième redémarrage ==== | ||
| + | |||
| + | FIXME | ||
| + | |||
| ===== Test : simuler la panne d'un disque dur ===== | ===== Test : simuler la panne d'un disque dur ===== | ||
| + | |||
| + | FIXME | ||
| ===== Liens ===== | ===== Liens ===== | ||
| + | |||
| + | * http:// | ||
| + | * https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
