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:21] – blueduck | tutoriel:raid1_logiciel_sur_installation_existante [Le 11/01/2018, 14:51] (Version actuelle) – [Sources] tarski | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ---- | ||
| + | |||
| + | ====== Configurer un RAID 1 logiciel sur une installation existante ====== | ||
| + | |||
| + | <note warning> | ||
| + | **ATTENTION !** Cette page est en cours de rédaction ; elle n'est donc pas terminée et la procédure qu' | ||
| + | À moins de bien savoir ce que vous faites, ne suivez pas ces instructions. | ||
| + | </ | ||
| + | |||
| + | ===== Préambule ===== | ||
| + | |||
| + | ==== Objectif ==== | ||
| + | |||
| + | J' | ||
| + | |||
| + | ==== 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' | ||
| + | |||
| + | ==== Sources ==== | ||
| + | |||
| + | 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 [[: | ||
| + | Il faut noter que Falko Timme est allé au bout de l' | ||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | Avant de commencer, je disposais : | ||
| + | * d'une installation fonctionnelle de Ubuntu Server Lucid Lynx (10.04) sur un disque de 500 Go (''/ | ||
| + | * des droits d' | ||
| + | * d'un disque de 500 Go, identique au premier, complètement vierge (ni formaté, ni partitionné), | ||
| + | * d'un Live CD d' | ||
| + | * du tutoriel (soit imprimé, soit affiché sur un autre ordinateur). | ||
| + | |||
| + | <note important> | ||
| + | J' | ||
| + | </ | ||
| + | |||
| + | ===== Notes préliminaires ===== | ||
| + | |||
| + | Le disque ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | |||
| + | Je souhaite aboutir à la situation suivante : | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | * ''/ | ||
| + | |||
| + | <note tip> | ||
| + | **Autres variantes d' | ||
| + | Je n'ai pas installé d' | ||
| + | </ | ||
| + | |||
| + | Voici donc la situation actuelle : | ||
| + | |||
| + | < | ||
| + | blueduck@serveur: | ||
| + | |||
| + | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | ||
| + | / | ||
| + | none 244M 200K 244M 1% /dev | ||
| + | none 249M 4,0K 249M 1% /dev/shm | ||
| + | none 249M 352K 249M 1% /var/run | ||
| + | none 249M | ||
| + | none 249M | ||
| + | none | ||
| + | / | ||
| + | |||
| + | blueduck@serveur: | ||
| + | |||
| + | Disque /dev/sda: 500.1 Go, 500107862016 octets | ||
| + | 255 têtes, 63 secteurs/ | ||
| + | Unités = cylindres de 16065 * 512 = 8225280 octets | ||
| + | Sector size (logical/ | ||
| + | I/O size (minimum/ | ||
| + | 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 | ||
| + | | ||
| + | Le disque /dev/sdb ne contient pas une table de partition valide | ||
| + | </ | ||
| + | |||
| + | ===== Installer mdadm ===== | ||
| + | |||
| + | Il faut [[: | ||
| + | |||
| + | Puis, après avoir redémarré votre machine, exécutez : | ||
| + | |||
| + | sudo cat / | ||
| + | |||
| + | ce qui devrait vous afficher quelque chose comme : | ||
| + | |||
| + | < | ||
| + | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
| + | unused devices: < | ||
| + | </ | ||
| + | |||
| + | ===== Préparer le second disque dur ===== | ||
| + | |||
| + | ==== Cloner la table des partitions ==== | ||
| + | |||
| + | Afin d' | ||
| + | | ||
| + | sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdb | ||
| + | |||
| + | 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 | ||
| + | |||
| + | | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | Nouvelle situation: | ||
| + | Unités= secteurs de 512 octets, décompte à partir de 0 | ||
| + | |||
| + | | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | 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 : | ||
| + | |||
| + | sudo fdisk -l | ||
| + | |||
| + | 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/ | ||
| + | Unités = cylindres de 16065 * 512 = 8225280 octets | ||
| + | Sector size (logical/ | ||
| + | I/O size (minimum/ | ||
| + | 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 | ||
| + | Sector size (logical/ | ||
| + | I/O size (minimum/ | ||
| + | Identifiant de disque : 0x4caa4880 | ||
| + | |||
| + | Périphérique Amorce | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | Plus simple et rapide que de partitionner à la main, non ;-) ? | ||
| + | |||
| + | ==== Changer le type des partitions (sdb) ==== | ||
| + | |||
| + | Ensuite, il faut régler le type des partitions sur //Linux raid autodetect// | ||
| + | Rapidement, je rappelle que '' | ||
| + | |||
| + | < | ||
| + | blueduck@serveur: | ||
| + | |||
| + | Commande (m pour l' | ||
| + | Commande d' | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| + | Pour changer le type d'une partition, on utilise la commande '' | ||
| + | |||
| + | < | ||
| + | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| + | Il faut ensuite indiquer le numéro de la partition à modifier (ici la '' | ||
| + | |||
| + | < | ||
| + | Numéro de partition (1-4): 1 | ||
| + | </ | ||
| + | |||
| + | Puis le code du type de partition voulu ('' | ||
| + | |||
| + | < | ||
| + | Code Hexa (taper L pour lister les codes): L | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | | ||
| + | 10 OPUS 56 Golden Bow a7 NeXTSTEP | ||
| + | 11 Cachée FAT12 5c Priam Edisk | ||
| + | 12 Compaq diagnost 61 SpeedStor | ||
| + | 14 Cachée FAT16 < 63 GNU HURD or Sys ab Amorce Darwin | ||
| + | 16 Cachée FAT16 64 Novell Netware | ||
| + | 17 Cachée HPFS/ | ||
| + | 18 AST SmartSleep | ||
| + | 1b Cachée W95 FAT 75 PC/IX | ||
| + | 1c Cachée W95 FAT 80 Minix ancienne | ||
| + | 1e Cachée W95 FAT | ||
| + | </ | ||
| + | |||
| + | Le type //Linux raid autodetect// | ||
| + | |||
| + | < | ||
| + | Code Hexa (taper L pour lister les codes): fd | ||
| + | |||
| + | Type système de partition modifié de 83 à fd (Linux raid autodetect) | ||
| + | | ||
| + | Commande (m pour l' | ||
| + | </ | ||
| + | |||
| + | On répète l' | ||
| + | |||
| + | Commande (m pour l' | ||
| + | Numéro de partition (1-4): 2 | ||
| + | Code Hexa (taper L pour lister les codes): fd | ||
| + | Type système de partition modifié de 83 à fd (Linux raid autodetect) | ||
| + | | ||
| + | Commande (m pour l' | ||
| + | Numéro de partition (1-4): 3 | ||
| + | Code Hexa (taper L pour lister les codes): fd | ||
| + | Type système de partition modifié de 82 à fd (Linux raid autodetect) | ||
| + | | ||
| + | Commande (m pour l' | ||
| + | Et on termine en appliquant les changements : | ||
| + | Commande (m pour l' | ||
| + | |||
| + | La table de partitions a été altérée! | ||
| + | | ||
| + | Appel de ioctl() pour relire la table de partitions. | ||
| + | Synchronisation des disques. | ||
| + | |||
| + | == Vérifier les partitions == | ||
| + | |||
| + | Pour s' | ||
| + | blueduck@serveur: | ||
| + | blueduck@serveur: | ||
| + | blueduck@serveur: | ||
| + | S'il ne reste rien d'une précédente installation, | ||
| + | mdadm: Unrecognised md component device - /dev/sdb1 | ||
| + | Dans le cas contraire, rien ne s' | ||
| + | |||
| + | ===== Configurer le RAID 1 ===== | ||
| + | |||
| + | ==== Créer les grappes ==== | ||
| + | |||
| + | On crée ''/ | ||
| + | |||
| + | sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 missing /dev/sdb1 | ||
| + | sudo mdadm --create /dev/md1 --level=1 --raid-disks=2 missing /dev/sdb2 | ||
| + | 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 : | ||
| + | |||
| + | < | ||
| + | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
| + | md2 : active raid1 sdb3[1] | ||
| + | 1052160 blocks [2/1] [_U] | ||
| + | | ||
| + | md1 : active raid1 sdb2[1] | ||
| + | 446373952 blocks [2/1] [_U] | ||
| + | | ||
| + | md0 : active raid1 sdb1[1] | ||
| + | 40957568 blocks [2/1] [_U] | ||
| + | | ||
| + | unused devices: < | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | 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 (sdb) ==== | ||
| + | |||
| + | On peut désormais choisir le système de fichiers de chaque grappe, //ext4// pour ''/ | ||
| + | |||
| + | blueduck@serveur: | ||
| + | |||
| + | mke2fs 1.41.11 (14-Mar-2010) | ||
| + | Étiquette de système de fichiers= | ||
| + | Type de système d' | ||
| + | Taille de bloc=4096 (log=2) | ||
| + | Taille de fragment=4096 (log=2) | ||
| + | Stride=0 blocks, Stripe width=0 blocks | ||
| + | 2564096 i-noeuds, 10239392 blocs | ||
| + | 511969 blocs (5.00%) réservés pour le super utilisateur | ||
| + | Premier bloc de données=0 | ||
| + | Nombre maximum de blocs du système de fichiers=0 | ||
| + | 313 groupes de blocs | ||
| + | 32768 blocs par groupe, 32768 fragments par groupe | ||
| + | 8192 i-noeuds par groupe | ||
| + | Superblocs de secours stockés sur les blocs : | ||
| + | 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, | ||
| + | 4096000, 7962624 | ||
| + | | ||
| + | Écriture des tables d' | ||
| + | Création du journal (32768 blocs) : complété | ||
| + | Écriture des superblocs et de l' | ||
| + | fichiers : complété | ||
| + | | ||
| + | Le système de fichiers sera automatiquement vérifié tous les 24 montages ou | ||
| + | après 180 jours, selon la première éventualité. Utiliser tune2fs -c ou -i | ||
| + | pour écraser la valeur. | ||
| + | |||
| + | Continuer avec : | ||
| + | |||
| + | sudo mkfs.ext4 /dev/md1 | ||
| + | |||
| + | et | ||
| + | |||
| + | sudo mkswap /dev/md2 | ||
| + | |||
| + | ==== Mettre à jour le fichier mdadm.conf ==== | ||
| + | |||
| + | À présent, adaptez le fichier ''/ | ||
| + | |||
| + | sudo cp / | ||
| + | |||
| + | puis faites un scan de la configuration RAID qui sera ajoutée au nouveau fichier : | ||
| + | |||
| + | sudo mdadm --examine --scan | sudo tee -a / | ||
| + | |||
| + | |||
| + | Vérifiez que votre fichier ''/ | ||
| + | blueduck@serveur: | ||
| + | |||
| + | < | ||
| + | # mdadm.conf | ||
| + | # | ||
| + | # Please refer to mdadm.conf(5) for information about this file. | ||
| + | # | ||
| + | | ||
| + | # by default, scan all partitions (/ | ||
| + | # alternatively, | ||
| + | DEVICE partitions | ||
| + | | ||
| + | # auto-create devices with Debian standard permissions | ||
| + | CREATE owner=root group=disk mode=0660 auto=yes | ||
| + | | ||
| + | # automatically tag new arrays as belonging to the local system | ||
| + | HOMEHOST < | ||
| + | | ||
| + | # instruct the monitoring daemon where to send mail alerts | ||
| + | MAILADDR root | ||
| + | | ||
| + | ARRAY /dev/md0 level=raid1 num-devices=2 UUID=e5e23f0a: | ||
| + | ARRAY /dev/md1 level=raid1 num-devices=2 UUID=057ec4b9: | ||
| + | ARRAY /dev/md2 level=raid1 num-devices=2 UUID=18366108: | ||
| + | </ | ||
| + | |||
| + | ==== 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 ''/ | ||
| + | |||
| + | sudo mkdir /mnt/md0 | ||
| + | sudo mkdir /mnt/md1 | ||
| + | |||
| + | puis montez les deux grappes formatées en //ext4// : | ||
| + | |||
| + | sudo mount /dev/md0 /mnt/md0 | ||
| + | sudo mount /dev/md1 /mnt/md1 | ||
| + | |||
| + | La grappe d' | ||
| + | Vous devriez voir les deux grappes en tapant la commande : | ||
| + | |||
| + | blueduck@serveur: | ||
| + | |||
| + | /dev/sda1 on / type ext4 (rw, | ||
| + | proc on /proc type proc (rw) | ||
| + | none on /sys type sysfs (rw, | ||
| + | none on / | ||
| + | none on / | ||
| + | none on / | ||
| + | none on /dev type devtmpfs (rw, | ||
| + | none on /dev/pts type devpts (rw, | ||
| + | none on /dev/shm type tmpfs (rw, | ||
| + | none on /var/run type tmpfs (rw, | ||
| + | none on /var/lock type tmpfs (rw, | ||
| + | none on / | ||
| + | none on / | ||
| + | /dev/sda2 on /multimedia type ext4 (rw,acl) | ||
| + | rpc_pipefs on / | ||
| + | nfsd on / | ||
| + | / | ||
| + | /dev/md0 on /mnt/md0 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 ===== | ||
| + | |||
| + | Maintenant que les grappes sont montées, on peut copier dessus le contenu du premier disque dur : | ||
| + | |||
| + | sudo cp -dpRx / /mnt/md0 | ||
| + | sudo cp -dpRx / | ||
| + | |||
| + | < | ||
| + | * 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> | ||
| + | Pour ma part, j'ai préféré utiliser '' | ||
| + | |||
| + | 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 ''/ | ||
| + | |||
| + | <note important> | ||
| + | Il serait bien que quelqu' | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Premier redémarrage ===== | ||
| + | |||
| + | ==== 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 '' | ||
| + | blueduck@serveur: | ||
| + | |||
| + | Sys. de fich. Tail. Occ. Disp. %Occ. Monté sur | ||
| + | |||
| + | Et toujours : | ||
| + | |||
| + | blueduck@serveur: | ||
| + | |||
| + | 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 ''/ | ||
| + | |||
| + | ==== Intégrer le premier disque dur à la grappe ==== | ||
| + | |||
| + | Le temps est venu d' | ||
| + | |||
| + | ==== Mettre à jour le fichier mdadm.conf ==== | ||
| + | |||
| + | Une nouvelle fois, il faut scanner la configuration RAID pour mettre à jour le fichier ''/ | ||
| + | |||
| + | ==== 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:// | ||
| + | * https:// | ||
| + | |||
| + | ---- | ||
| + | |||
| + | // | ||
