Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
tutoriel:raid1_logiciel_sur_installation_existante [Le 18/05/2010, 16:23] blueduck |
tutoriel:raid1_logiciel_sur_installation_existante [Le 11/09/2022, 12:18] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag>Lucid RAID tutoriel BROUILLON}} | {{tag>Lucid RAID tutoriel BROUILLON}} | ||
+ | |||
+ | ---- | ||
+ | |||
====== Configurer un RAID 1 logiciel sur une installation existante ====== | ====== Configurer un RAID 1 logiciel sur une installation existante ====== | ||
Ligne 7: | Ligne 10: | ||
</note> | </note> | ||
- | == Objectif == | + | ===== Préambule ===== |
+ | |||
+ | ==== Objectif ==== | ||
J'explique dans ce tutoriel la marche à suivre pour ajouter un disque dur en RAID 1 logiciel sur une installation existante de Ubuntu Server Lucid Lynx (10.04), version 32 bits. | J'explique dans ce tutoriel la marche à suivre pour ajouter un disque dur en RAID 1 logiciel sur une installation existante de Ubuntu Server Lucid Lynx (10.04), version 32 bits. | ||
- | == 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'étant pas du tout un spécialiste de la question, je ne fournis aucune garantie sur le résultat que vous pourriez obtenir en suivant ces instructions ; vous êtes prévenus que certaines d'entre elles peuvent rendre votre système inutilisable et vous contraindre à le réinstaller. Je vous invite vivement à faire une sauvegarde complète de vos données avant de commencer. | 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'étant pas du tout un spécialiste de la question, je ne fournis aucune garantie sur le résultat que vous pourriez obtenir en suivant ces instructions ; vous êtes prévenus que certaines d'entre elles peuvent rendre votre système inutilisable et vous contraindre à le réinstaller. Je vous invite vivement à faire une sauvegarde complète de vos données avant de commencer. | ||
- | == Sources == | + | ==== Sources ==== |
Ce tutoriel est très largement basé sur celui de Falko Timme que vous trouverez à cette adresse : http://www.howtoforge.com/software-raid1-grub-boot-debian-etch. | Ce tutoriel est très largement basé sur celui de Falko Timme que vous trouverez à cette adresse : http://www.howtoforge.com/software-raid1-grub-boot-debian-etch. | ||
Je l'ai traduit, légèrement adapté pour Ubuntu 10.04, et actualisé pour ce qui concerne la configuration de [[:grub-pc|GRUB2]]. | Je l'ai traduit, légèrement adapté pour Ubuntu 10.04, et actualisé pour ce qui concerne la configuration de [[:grub-pc|GRUB2]]. | ||
+ | Il faut noter que Falko Timme est allé au bout de l'installation avec prise en compte de GRUB2 dans l'article suivant qui semble être une mise à jour du précédent : https://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-incl-grub2-configuration-ubuntu-10.04 . | ||
===== Pré-requis ===== | ===== Pré-requis ===== | ||
Ligne 31: | Ligne 37: | ||
J'avais au préalable copié l'intégralité du disque ''sda'' sur un autre ordinateur (je sais, je l'ai déjà dit, mais il faut vraiment sauvegarder vos données). | J'avais au préalable copié l'intégralité du disque ''sda'' sur un autre ordinateur (je sais, je l'ai déjà dit, mais il faut vraiment sauvegarder vos données). | ||
</note> | </note> | ||
+ | |||
===== Notes préliminaires ===== | ===== Notes préliminaires ===== | ||
Ligne 50: | Ligne 57: | ||
Voici donc la situation actuelle : | Voici donc la situation actuelle : | ||
- | blueduck@serveur:~$ df -h | + | <code> |
+ | blueduck@serveur:~$ df -h | ||
- | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | + | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur |
- | /dev/sda1 39G 7,2G 30G 20% / | + | /dev/sda1 39G 7,2G 30G 20% / |
- | 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 0 249M 0% /var/lock | + | none 249M 0 249M 0% /var/lock |
- | none 249M 0 249M 0% /lib/init/rw | + | none 249M 0 249M 0% /lib/init/rw |
- | none 39G 7,2G 30G 20% /var/lib/ureadahead/debugfs | + | none 39G 7,2G 30G 20% /var/lib/ureadahead/debugfs |
- | /dev/sda2 420G 367G 32G 93% /multimedia | + | /dev/sda2 420G 367G 32G 93% /multimedia |
- | blueduck@serveur:~$ sudo fdisk -l | + | blueduck@serveur:~$ sudo fdisk -l |
- | Disque /dev/sda: 500.1 Go, 500107862016 octets | + | Disque /dev/sda: 500.1 Go, 500107862016 octets |
- | 255 têtes, 63 secteurs/piste, 60801 cylindres | + | 255 têtes, 63 secteurs/piste, 60801 cylindres |
- | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
- | Sector size (logical/physical): 512 bytes / 512 bytes | + | Sector size (logical/physical): 512 bytes / 512 bytes |
- | I/O size (minimum/optimal): 512 bytes / 512 bytes | + | I/O size (minimum/optimal): 512 bytes / 512 bytes |
- | Identifiant de disque : 0x000860a2 | + | Identifiant de disque : 0x000860a2 |
| | ||
- | Périphérique Amorce Début Fin Blocs Id Système | + | Périphérique Amorce Début Fin Blocs Id Système |
- | /dev/sda1 * 1 5099 40957686 83 Linux | + | /dev/sda1 * 1 5099 40957686 83 Linux |
- | /dev/sda2 5100 60670 446374057+ 83 Linux | + | /dev/sda2 5100 60670 446374057+ 83 Linux |
- | /dev/sda3 60671 60801 1052257+ 82 Linux swap / Solaris | + | /dev/sda3 60671 60801 1052257+ 82 Linux swap / Solaris |
| | ||
- | Disque /dev/sdb: 500.1 Go, 500107862016 octets | + | Disque /dev/sdb: 500.1 Go, 500107862016 octets |
- | 255 têtes, 63 secteurs/piste, 60801 cylindres | + | 255 têtes, 63 secteurs/piste, 60801 cylindres |
- | 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 | + | Le disque /dev/sdb ne contient pas une table de partition valide |
+ | </code> | ||
===== Installer mdadm ===== | ===== Installer mdadm ===== | ||
- | Il faut installer ''mdadm'' pour configurer le RAID. Tapez : | ||
- | blueduck@serveur:~$ sudo aptitude install mdadm | ||
- | ou cliquez sur ce lien : **[[apt://mdadm|mdadm]]**. | ||
- | Puis, exécutez : | + | Il faut [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://mdadm|mdadm]]** pour configurer le RAID. |
- | blueduck@serveur:~$ sudo cat /proc/mdstat | + | |
+ | Puis, après avoir redémarré votre machine, exécutez : | ||
+ | |||
+ | sudo cat /proc/mdstat | ||
ce qui devrait vous afficher quelque chose comme : | ce qui devrait vous afficher quelque chose comme : | ||
- | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | + | |
- | unused devices: <none> | + | <file> |
- | ===== Préparer le second disque ===== | + | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] |
- | ==== Clôner la table des partitions ==== | + | unused devices: <none> |
+ | </file> | ||
+ | |||
+ | ===== Préparer le second disque dur ===== | ||
+ | |||
+ | ==== Cloner la table des partitions ==== | ||
Afin d'être sûr que le second disque dur (''/dev/sdb'') sera divisé en partitions absolument identiques à celles du premier disque dur (''/dev/sda''), on clône la table des partitions du premier pour l'appliquer au second : | Afin d'être sûr que le second disque dur (''/dev/sdb'') sera divisé en partitions absolument identiques à celles du premier disque dur (''/dev/sda''), on clône la table des partitions du premier pour l'appliquer au second : | ||
- | blueduck@serveur:~$ sudo sfdisk -d /dev/sda | sfdisk /dev/sdb | ||
- | Ce qui doit provoquer l'affichage suivant : | ||
- | Vérification qu'aucun autre n'utilise le disque en ce moment ... | ||
- | OK | ||
| | ||
- | Disque /dev/sdb : 60801 cylindres, 255 têtes, 63 secteurs/piste | + | sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb |
- | Vieille situation: | + | |
- | Unités= cylindres de 8225280 octets, blocs de 1024 octets, décompte à partir de 0 | + | Ce qui doit provoquer l'affichage suivant : |
- | + | ||
- | Périph Amor Début Fin #cyls #blocs Id Système | + | <file> |
- | /dev/sdb1 0 - 0 0 0 Vide | + | Vérification qu'aucun autre n'utilise le disque en ce moment ... |
- | /dev/sdb2 0 - 0 0 0 Vide | + | OK |
- | /dev/sdb3 0 - 0 0 0 Vide | + | |
- | /dev/sdb4 0 - 0 0 0 Vide | + | Disque /dev/sdb : 60801 cylindres, 255 têtes, 63 secteurs/piste |
- | + | 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 | + | |
- | + | Périph Amor Début Fin #cyls #blocs Id Système | |
- | Périph Amorce Début Fin #secteurs Id Système | + | /dev/sdb1 0 - 0 0 0 Vide |
- | /dev/sdb1 * 63 81915434 81915372 83 Linux | + | /dev/sdb2 0 - 0 0 0 Vide |
- | /dev/sdb2 81915435 974663549 892748115 83 Linux | + | /dev/sdb3 0 - 0 0 0 Vide |
- | /dev/sdb3 974663550 976768064 2104515 82 Linux swap / Solaris | + | /dev/sdb4 0 - 0 0 0 Vide |
- | /dev/sdb4 0 - 0 0 Vide | + | |
- | Succès d'écriture de la nouvelle table de partitions | + | Nouvelle situation: |
- | + | Unités= secteurs de 512 octets, décompte à partir de 0 | |
- | Relecture de la table de partitions ... | + | |
- | + | Périph Amorce Début Fin #secteurs Id Système | |
- | Si vous créez ou modifiez une partition DOS, /dev/foo7, par exemple, alors | + | /dev/sdb1 * 63 81915434 81915372 83 Linux |
- | utiliser dd(1) pour mettre à zéro les premiers 512 octets: | + | /dev/sdb2 81915435 974663549 892748115 83 Linux |
- | dd if=/dev/zero of=/dev/foo7 bs=512 count=1 | + | /dev/sdb3 974663550 976768064 2104515 82 Linux swap / Solaris |
- | (Consulter fdisk(8).) | + | /dev/sdb4 0 - 0 0 Vide |
+ | Succès d'écriture de la nouvelle table de partitions | ||
+ | |||
+ | 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=/dev/zero of=/dev/foo7 bs=512 count=1 | ||
+ | (Consulter fdisk(8).) | ||
+ | </file> | ||
La commande : | La commande : | ||
- | blueduck@serveur:~$ sudo fdisk -l | + | |
+ | sudo fdisk -l | ||
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 : | ||
- | Disque /dev/sda: 500.1 Go, 500107862016 octets | + | |
- | 255 têtes, 63 secteurs/piste, 60801 cylindres | + | <file> |
- | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Disque /dev/sda: 500.1 Go, 500107862016 octets |
- | Sector size (logical/physical): 512 bytes / 512 bytes | + | 255 têtes, 63 secteurs/piste, 60801 cylindres |
- | I/O size (minimum/optimal): 512 bytes / 512 bytes | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
- | Identifiant de disque : 0x000860a2 | + | Sector size (logical/physical): 512 bytes / 512 bytes |
- | + | I/O size (minimum/optimal): 512 bytes / 512 bytes | |
- | Périphérique Amorce Début Fin Blocs Id Système | + | Identifiant de disque : 0x000860a2 |
- | /dev/sda1 * 1 5099 40957686 83 Linux | + | |
- | /dev/sda2 5100 60670 446374057+ 83 Linux | + | Périphérique Amorce Début Fin Blocs Id Système |
- | /dev/sda3 60671 60801 1052257+ 82 Linux swap / Solaris | + | /dev/sda1 * 1 5099 40957686 83 Linux |
- | + | /dev/sda2 5100 60670 446374057+ 83 Linux | |
- | Disque /dev/sdb: 500.1 Go, 500107862016 octets | + | /dev/sda3 60671 60801 1052257+ 82 Linux swap / Solaris |
- | 255 têtes, 63 secteurs/piste, 60801 cylindres | + | |
- | Unités = cylindres de 16065 * 512 = 8225280 octets | + | Disque /dev/sdb: 500.1 Go, 500107862016 octets |
- | Sector size (logical/physical): 512 bytes / 512 bytes | + | 255 têtes, 63 secteurs/piste, 60801 cylindres |
- | I/O size (minimum/optimal): 512 bytes / 512 bytes | + | Unités = cylindres de 16065 * 512 = 8225280 octets |
- | Identifiant de disque : 0x4caa4880 | + | Sector size (logical/physical): 512 bytes / 512 bytes |
- | + | I/O size (minimum/optimal): 512 bytes / 512 bytes | |
- | Périphérique Amorce Début Fin Blocs Id Système | + | Identifiant de disque : 0x4caa4880 |
- | /dev/sdb1 * 1 5099 40957686 83 Linux | + | |
- | /dev/sdb2 5100 60670 446374057+ 83 Linux | + | Périphérique Amorce Début Fin Blocs Id Système |
- | /dev/sdb3 60671 60801 1052257+ 82 Linux swap / Solaris | + | /dev/sdb1 * 1 5099 40957686 83 Linux |
+ | /dev/sdb2 5100 60670 446374057+ 83 Linux | ||
+ | /dev/sdb3 60671 60801 1052257+ 82 Linux swap / Solaris | ||
+ | </file> | ||
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 (sdb) ==== | ||
Ensuite, il faut régler le type des partitions sur //Linux raid autodetect//. On continue d'utiliser ''[[:fdisk|fdisk]]''.\\ | Ensuite, il faut régler le type des partitions sur //Linux raid autodetect//. On continue d'utiliser ''[[:fdisk|fdisk]]''.\\ | ||
Rapidement, je rappelle que ''fdisk'' est une ligne de commande : chaque commande est une lettre, que l'on valide avec ''ENTRÉE''. Les modifications ne sont pas appliquées tant qu'on ne les a pas écrites avec la commande ''w''. La commande ''m'' affiche les commandes disponibles : | Rapidement, je rappelle que ''fdisk'' est une ligne de commande : chaque commande est une lettre, que l'on valide avec ''ENTRÉE''. Les modifications ne sont pas appliquées tant qu'on ne les a pas écrites avec la commande ''w''. La commande ''m'' affiche les commandes disponibles : | ||
+ | |||
+ | <code> | ||
blueduck@serveur:~$ sudo fdisk /dev/sdb | blueduck@serveur:~$ sudo fdisk /dev/sdb | ||
Ligne 177: | Ligne 210: | ||
| | ||
Commande (m pour l'aide): | Commande (m pour l'aide): | ||
+ | </code> | ||
+ | |||
Pour changer le type d'une partition, on utilise la commande ''t'' : | Pour changer le type d'une partition, on utilise la commande ''t'' : | ||
+ | |||
+ | <code> | ||
Commande (m pour l'aide): t | Commande (m pour l'aide): t | ||
+ | </code> | ||
+ | |||
Il faut ensuite indiquer le numéro de la partition à modifier (ici la ''1'') : | Il faut ensuite indiquer le numéro de la partition à modifier (ici la ''1'') : | ||
+ | |||
+ | <code> | ||
Numéro de partition (1-4): 1 | Numéro de partition (1-4): 1 | ||
+ | </code> | ||
+ | |||
Puis le code du type de partition voulu (''L'' affiche la liste des codes possibles) : | Puis le code du type de partition voulu (''L'' affiche la liste des codes possibles) : | ||
+ | |||
+ | <file> | ||
Code Hexa (taper L pour lister les codes): L | Code Hexa (taper L pour lister les codes): L | ||
| | ||
Ligne 209: | Ligne 254: | ||
1c Cachée W95 FAT 80 Minix ancienne be Amorce Solaris ff BBT | 1c Cachée W95 FAT 80 Minix ancienne be Amorce Solaris ff BBT | ||
1e Cachée W95 FAT | 1e Cachée W95 FAT | ||
- | Le type //Linux raid autodetect// correspond au code ''fd'' : | + | </file> |
+ | |||
+ | Le type //Linux raid autodetect// correspond au code ''fd'' : | ||
+ | |||
+ | <file> | ||
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'aide): | Commande (m pour l'aide): | ||
+ | </file> | ||
+ | |||
On répète l'opération pour les deux autres partitions (la ''2'' et la ''3'') : | On répète l'opération pour les deux autres partitions (la ''2'' et la ''3'') : | ||
+ | |||
Commande (m pour l'aide): t | Commande (m pour l'aide): t | ||
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'aide): t | Commande (m pour l'aide): t | ||
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'aide): | Commande (m pour l'aide): | ||
Ligne 236: | Ligne 288: | ||
== Vérifier les partitions == | == Vérifier les partitions == | ||
+ | |||
Pour s'assurer qu'il n'y a pas de restes d'une précédente installation RAID, on exécute les commandes suivantes : | Pour s'assurer qu'il n'y a pas de restes d'une précédente installation RAID, on exécute les commandes suivantes : | ||
blueduck@serveur:~$ sudo mdadm --zero-superblock /dev/sdb1 | blueduck@serveur:~$ sudo mdadm --zero-superblock /dev/sdb1 | ||
Ligne 245: | Ligne 298: | ||
===== Configurer le RAID 1 ===== | ===== Configurer le RAID 1 ===== | ||
+ | |||
==== Créer les grappes ==== | ==== Créer les grappes ==== | ||
+ | |||
On crée ''/dev/md0'' avec ''/dev/sdb1'' ; ''/dev/md1'' et ''/sdv/sdb2'' : ''/dev/md2'' à partir de ''/dev/sdb3''. Les partitions correspondantes du premier disque ne peuvent pas être ajoutées pour le moment, car le système fonctionne dessus. C'est pourquoi on les remplace par le mot ''missing'' dans les commandes suivantes : | On crée ''/dev/md0'' avec ''/dev/sdb1'' ; ''/dev/md1'' et ''/sdv/sdb2'' : ''/dev/md2'' à partir de ''/dev/sdb3''. Les partitions correspondantes du premier disque ne peuvent pas être ajoutées pour le moment, car le système fonctionne dessus. C'est pourquoi on les remplace par le mot ''missing'' dans les commandes suivantes : | ||
- | blueduck@serveur:~$ sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 | + | |
- | blueduck@serveur:~$ sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 | + | sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 |
- | blueduck@serveur:~$ sudo mdadm --create /dev/md2 --level=1 --raid-disks=2 missing /dev/sdb3 | + | 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 |
- | blueduck@serveur:~$ sudo cat /proc/mdstat | + | |
+ | La commande : | ||
+ | |||
+ | sudo cat /proc/mdstat | ||
devrait maintenant montrer que vous avez trois grappes RAID dégradées : | devrait maintenant montrer que vous avez trois grappes RAID dégradées : | ||
+ | |||
+ | <file> | ||
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 264: | Ligne 325: | ||
| | ||
unused devices: <none> | unused devices: <none> | ||
+ | </file> | ||
+ | |||
<note> | <note> | ||
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. | ||
</note> | </note> | ||
- | ==== Créer les systèmes de fichiers ==== | + | |
+ | ==== Créer les systèmes de fichiers (sdb) ==== | ||
On peut désormais choisir le système de fichiers de chaque grappe, //ext4// pour ''/dev/md0'' et ''/dev/md1'', //swap// pour ''/dev/md2'' : | On peut désormais choisir le système de fichiers de chaque grappe, //ext4// pour ''/dev/md0'' et ''/dev/md1'', //swap// pour ''/dev/md2'' : | ||
+ | |||
blueduck@serveur:~$ sudo mkfs.ext4 /dev/md0 | blueduck@serveur:~$ sudo mkfs.ext4 /dev/md0 | ||
Ligne 296: | 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:~$ sudo mkfs.ext4 /dev/md1 | + | |
+ | sudo mkfs.ext4 /dev/md1 | ||
et | et | ||
- | blueduck@serveur:~$ sudo mkswap /dev/md2 | + | |
+ | sudo mkswap /dev/md2 | ||
==== Mettre à jour le fichier mdadm.conf ==== | ==== Mettre à jour le fichier mdadm.conf ==== | ||
+ | |||
À présent, adaptez le fichier ''/etc/mdadm/mdadm.conf'', qui ne contient encore aucune information concernant les grappes, à la nouvelle situation. Faites d'abord une copie du fichier existant (on ne sait jamais) : | À présent, adaptez le fichier ''/etc/mdadm/mdadm.conf'', qui ne contient encore aucune information concernant les grappes, à la nouvelle situation. Faites d'abord une copie du fichier existant (on ne sait jamais) : | ||
- | blueduck@serveur:~$ sudo cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-dist | + | |
+ | sudo cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf-dist | ||
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:~$ sudo mdadm --examine --scan >> /etc/mdadm/mdadm.conf | ||
- | <note tip> | + | sudo mdadm --examine --scan | sudo tee -a /etc/mdadm/mdadm.conf |
- | Si vous obtenez le message d'erreur suivant : | + | |
- | bash: /etc/mdadm/mdadm.conf: Permission non accordée | + | |
- | contournez-le en déplaçant le fichier ''mdadm.conf'' dans votre dossier personnel. Devenez-en propriétaire pour pouvoir écrire dedans, relancez la commande précédente, puis rétablissez ''root'' comme propriétaire du fichier et déplacez-le à nouveau vers son emplacement d'origine : | + | |
- | blueduck@serveur:~$ sudo mv /etc/mdadm/mdadm.conf ~ | + | |
- | blueduck@serveur:~$ sudo chown blueduck:blueduck ~/mdadm.conf | + | |
- | blueduck@serveur:~$ sudo mdadm --examine --scan >> ~/mdadm.conf | + | |
- | blueduck@serveur:~$ sudo chown root:root ~/mdadm.conf | + | |
- | blueduck@serveur:~$ sudo mv ~/mdadm.conf /etc/mdadm | + | |
- | </note> | + | |
Vérifiez que votre fichier ''/etc/mdadm/mdadm.conf'' ressemble à ça : | Vérifiez que votre fichier ''/etc/mdadm/mdadm.conf'' ressemble à ça : | ||
blueduck@serveur:~$ sudo cat /etc/mdadm/mdadm.conf | blueduck@serveur:~$ sudo cat /etc/mdadm/mdadm.conf | ||
+ | <file> | ||
# mdadm.conf | # mdadm.conf | ||
# | # | ||
Ligne 340: | Ligne 407: | ||
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=057ec4b9:88398a79:2b872d8f:382c1990 | ARRAY /dev/md1 level=raid1 num-devices=2 UUID=057ec4b9:88398a79:2b872d8f:382c1990 | ||
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=18366108:daee6e7a:2b872d8f:382c1990 | ARRAY /dev/md2 level=raid1 num-devices=2 UUID=18366108:daee6e7a:2b872d8f:382c1990 | ||
+ | </file> | ||
+ | |||
==== 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 ''/mnt/md0'' et ''/mnt/md1'' : | Les grappes sont prêtes à être montées, afin de pouvoir y accéder. Créez deux points de montage, par exemple ''/mnt/md0'' et ''/mnt/md1'' : | ||
- | blueduck@serveur:~$ sudo mkdir /mnt/md0 | + | |
- | blueduck@serveur:~$ sudo mkdir /mnt/md1 | + | sudo mkdir /mnt/md0 |
+ | 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/md0 /mnt/md0 | + | |
- | blueduck@serveur:~$ sudo mount /dev/md1 /mnt/md1 | + | sudo mount /dev/md0 /mnt/md0 |
+ | sudo mount /dev/md1 /mnt/md1 | ||
La grappe d'échange (''/dev/md2'') n'a pas besoin d'être montée pour le moment. | La grappe d'échange (''/dev/md2'') n'a pas besoin d'être montée pour le moment. | ||
Vous devriez voir les deux grappes en tapant la commande : | Vous devriez voir les deux grappes en tapant la commande : | ||
+ | |||
blueduck@serveur:~$ sudo mount | blueduck@serveur:~$ sudo mount | ||
Ligne 370: | 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 [[:mount_fstab#le_fichier_fstab|fstab]] et les [[:uuid_et_label|UUID]] ne manquent pas. Soyez simplement extrêmement prudents avec ce fichier, dans lequel une erreur peut facilement empêcher votre système de démarrer. | ||
+ | </note> | ||
+ | |||
===== 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 / /mnt/md0 | + | |
- | blueduck@serveur:~$ sudo cp -dpRx /multimedia /mnt/md1 | + | sudo cp -dpRx / /mnt/md0 |
+ | sudo cp -dpRx /multimedia/ /mnt/md1 | ||
+ | |||
+ | <note>Le slash (/) à la fin de /multimedia**/** a son importance : | ||
+ | * 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'est-à-dire qu'on obtiendra dans /mnt/md1 un dossier ''multimedia''. | ||
+ | |||
+ | 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'accès, propriétaires, heure de la dernière modification) ; | ||
+ | * **-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. ''/etc/fstab'') différent du système de fichier //ext4// contenant **/** ; | ||
+ | * l'option **-u** pourrait être rajoutée en cas de copie interrompue (ne copie les fichiers que s'ils sont plus récents, ou n'ont pas encore été copiés). | ||
+ | |||
+ | </note> | ||
<note tip> | <note tip> | ||
Pour ma part, j'ai préféré utiliser ''[[:rsync|rsync]]'' : | Pour ma part, j'ai préféré utiliser ''[[:rsync|rsync]]'' : | ||
- | blueduck@serveur:~$ sudo rsync -av --progress --stats --filter "- /mnt" / /mnt/md0 | + | |
- | blueduck@serveur:~$ sudo rsync -av --progress --stats /multimedia /mnt/md1 | + | sudo rsync -av --progress --stats --filter "- /mnt" / /mnt/md0 |
+ | sudo rsync -av --progress --stats /multimedia /mnt/md1 | ||
Compte-tenu des quantités de données à déplacer (plus de 400 Go depuis ''/dev/sda2''), cela me permettait en cas de besoin d'interrompre la synchronisation, et de la reprendre plus tard. | Compte-tenu des quantités de données à déplacer (plus de 400 Go depuis ''/dev/sda2''), cela me permettait en cas de besoin d'interrompre la synchronisation, et de la reprendre plus tard. | ||
- | <note important> | + | <note important>FIXME |
- | Il serait bien que quelqu'un précise ici si l'on peut sans risque substituer comme je l'ai fait ''rsync'' à ''cp''. D'autre part, il doit être possible d'éviter la synchronisation de certains dossiers en ajoutant des filtres (je pense notamment à ''/proc'', ''/tmp'', ...) : à confirmer. | + | Il serait bien que quelqu'un précise si l'on peut sans risque substituer comme je l'ai fait ''rsync'' à ''cp''. D'autre part, il doit être possible d'éviter la synchronisation de certains dossiers en ajoutant des filtres (je pense notamment à ''/proc'', ''/tmp'', ...) : à confirmer. |
</note> | </note> | ||
</note> | </note> | ||
===== 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 ==== | ||
+ | |||
+ | Si tout s'est bien passé, vous devriez obtenir le résultat suivant avec la commande ''df'' : | ||
+ | blueduck@serveur:~$ df -h | ||
+ | |||
+ | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | ||
+ | |||
+ | Et toujours : | ||
+ | |||
+ | blueduck@serveur:~$ sudo cat /proc/mdstat | ||
+ | |||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | |||
+ | |||
+ | ===== Ajouter le premier disque dur ===== | ||
+ | |||
+ | ==== Modifier le type des partitions (sda) ==== | ||
+ | |||
+ | De même que pour ''/dev/sdb'' précédemment, nous utilisons ''fdisk'' pour changer le type des partitions de ''/dev/sda'' en //Linux raid autodetect//. | ||
+ | |||
+ | ==== Intégrer le premier disque dur à la grappe ==== | ||
+ | |||
+ | Le temps est venu d'intégrer les partitions de ''/dev/sda'' dans les grappes ''/dev/md0'', ''/dev/md1'' et ''/dev/md2''. | ||
+ | |||
+ | ==== Mettre à jour le fichier mdadm.conf ==== | ||
+ | |||
+ | Une nouvelle fois, il faut scanner la configuration RAID pour mettre à jour le fichier ''/etc/mdadm/mdadm.conf''. | ||
+ | |||
+ | ==== Configuration de GRUB (deuxième partie) ==== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | ==== Après le deuxième redémarrage ==== | ||
+ | |||
+ | FIXME | ||
+ | |||
+ | ===== Test : simuler la panne d'un disque dur ===== | ||
+ | |||
+ | FIXME | ||
+ | ===== Liens ===== | ||
+ | |||
+ | * http://forum.debian-fr.org/viewtopic.php?f=8&t=27585 : un tutoriel approchant celui-là, sauf que le RAID mis en place n'inclut pas le système. Des exemples de maintenance à la fin. | ||
+ | * https://www.system-linux.eu/index.php?post/2010/04/30/RAID1-logiciel-sous-GNU/Linux.-%28partie-1/2%29 : un tutoriel plutôt bien fait | ||
+ | |||
+ | ---- | ||
+ | |||
+ | //Contributeur principal : [[:utilisateurs:blueduck]].// |