informatique:linux:raid0_sous_linux
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
informatique:linux:raid0_sous_linux [2011/02/16 21:43] – [Augmenter un lv] pteu | informatique:linux:raid0_sous_linux [2024/06/29 14:10] (current) – pteu | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | {{tag> | + | =======Le RAID logiciel sous Linux======= |
- | + | ||
- | ======Le RAID logiciel sous Linux====== | + | |
Le RAID est un mécanisme de gestion de unités de stockage, qui peut être matériel (via une carte dédiée) ou logiciel (géré par le système d' | Le RAID est un mécanisme de gestion de unités de stockage, qui peut être matériel (via une carte dédiée) ou logiciel (géré par le système d' | ||
- | + | Avant de le mettre en place, se renseigner sur quel type de RAID est adapté à notre besoin (en terme de performance, | |
- | =====Installation de Debian avec RAID0===== | + | ======Installation de Debian avec RAID0====== |
Le but de cet article est de décrire la procédure que j'ai utilisée pour installer une Debian Lenny sur 2 disques dur en RAID0 logiciel avec Linux Software RAID. Mes motivations sont : | Le but de cet article est de décrire la procédure que j'ai utilisée pour installer une Debian Lenny sur 2 disques dur en RAID0 logiciel avec Linux Software RAID. Mes motivations sont : | ||
Line 43: | Line 41: | ||
- | =====Création d'un RAID1===== | + | ======Création d'un RAID1====== |
//à la main// | //à la main// | ||
Line 119: | Line 117: | ||
</ | </ | ||
- | =====Divers===== | + | ======Divers====== |
- | ====Monitorer son RAID==== | + | =====Créer un volume RAID1 avec un seul disque===== |
+ | Il s'agit ici de créer un RAID 1 avec un seul disque, donc un RAID en défaut (pas de réplication de données mais la machine fonctionne toujours). Cela permet par exemple de préparer une machine avec un seul disque en attendant la livraison du second. | ||
< | < | ||
- | cat /proc/mdstat | + | mdadm --create |
- | | + | |
- | md1 : active raid0 sda3[0] sdb3[1] | + | |
- | | + | |
- | + | ||
- | md0 : active raid0 sda2[0] sdb2[1] | + | |
- | | + | |
- | + | ||
- | | + | |
</ | </ | ||
- | On peut avoir plus de détails avec : | + | -> On créer |
- | < | + | |
- | mdadm --detail | + | |
- | | + | ======Création d'un raid5 + LVM====== |
- | Version : 00.90 | + | |
- | Creation Time : Sat Feb 7 12:49:57 2009 | + | =====Volume RAID 5===== |
- | Raid Level : raid0 | + | |
- | Array Size : 1945696256 | + | Un raid0 avec de la redondance pour la sécurité des données ? C'est un **raid5** et c'est ce que je vais réaliser sur mon NAS (malgré qu'il ne soit doté que d'un processeur [[http://fr.wikipedia.org/ |
- | Raid Devices : 2 | + | |
- | Total Devices | + | Première chose : repérer les noms des disques |
- | | + | <code bash> |
- | Persistence : Superblock is persistent | + | sudo fdisk -l | grep Disk |
- | + | Disk /dev/sda: 64.0 GB, 64023257088 bytes | |
- | Update Time : Tue Feb 10 20:31:42 2009 | + | Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes |
- | State : clean | + | Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes |
- | Active Devices : 2 | + | Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes |
- | | + | |
- | Failed Devices | + | |
- | Spare Devices | + | |
- | + | ||
- | Chunk Size : 64K | + | |
- | + | ||
- | UUID : 9695e8d2: | + | |
- | Events : 0.5 | + | |
- | + | ||
- | | + | |
- | 0 | + | |
- | | + | |
</ | </ | ||
+ | Dans mon cas je vais utiliser /dev/sdb, /dev/sdc et /dev/sdd pour mon RAID 5. | ||
- | ====Créer un volume RAID1 avec un seul disque==== | + | Puis, créer des partitions de type "Raid auto detect" |
- | Il s'agit ici de créer un RAID 1 avec un seul disque, donc un RAID en défaut (pas de réplication de données | + | |
- | < | + | < |
- | mdadm --create | + | sudo fdisk /dev/sdd |
+ | Le périphérique ne contient pas une table de partitions DOS ou Sun, SGI, OSF valable | ||
+ | Création d'une nouvelle étiquette DOS avec id de disque 0x7b3be7ec. | ||
+ | Les modifications restent en mémoire jusqu' | ||
+ | Après quoi, bien sûr, le contenu précédent sera irrécupérable. | ||
+ | |||
+ | Avertissement : drapeau 0x0000 non valable dans la table de partitions 4, sera corrigé par w(écriture) | ||
+ | |||
+ | Attention : la taille du disque est 3.0 To (3000592982016 octets). | ||
+ | Ce format de table de partitions DOS ne peut pas être utilisé | ||
+ | sur des disques pour des volumes plus grand (2199023255040 octets) et | ||
+ | secteurs de 512 octets. Utiliser parted(1) et le format de table | ||
+ | de partitions à GUID (GPT). | ||
+ | |||
+ | |||
+ | Le périphérique dispose d'une taille de secteur logique plus | ||
+ | petite que la taille de secteur physique. Ajuster la limite de | ||
+ | taille à celle de secteur physique (ou optimale en terme d' | ||
+ | est conseillé, sinon les performances risquent d' | ||
+ | |||
+ | Commande (m pour l' | ||
+ | Partition type: | ||
+ | | ||
+ | | ||
+ | Select (default p): p | ||
+ | Numéro de partition (1-4, par défaut | ||
+ | Utilisation de la valeur par défaut 1 | ||
+ | Premier secteur (2048-4294967295, par défaut 2048): | ||
+ | Utilisation de la valeur par défaut 2048 | ||
+ | Dernier secteur, +secteurs or +taille{K, | ||
+ | Utilisation de la valeur par défaut 4294967294 | ||
+ | |||
+ | Commande (m pour l' | ||
+ | Partition sélectionnée 1 | ||
+ | Code Hexa (taper L pour lister les codes): fd | ||
+ | Type système de partition modifié de 1 à fd (RAID Linux autodétecté) | ||
+ | |||
+ | 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. | ||
</ | </ | ||
- | -> On créer | + | Créez le RAID : |
+ | <code bash> | ||
+ | mdadm --create --verbose | ||
+ | </ | ||
+ | Si vous obtenez l' | ||
+ | <code bash> | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: chunk size defaults to 512K | ||
+ | mdadm: cannot open /dev/sdc1: No such file or directory | ||
+ | </ | ||
+ | ... recréez les partition avec **cfdisk** plutôt que fdisk ! | ||
- | =====Création d'un raid5 + LVM===== | + | Après avoir créés les partitions j'obtiens une erreur ! |
+ | <code bash> | ||
+ | mdadm --create --verbose /dev/md0 --level 5 --assume-clean --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: chunk size defaults to 512K | ||
+ | mdadm: super1.x cannot open /dev/sdc1: Device or resource busy | ||
+ | mdadm: /dev/sdc1 is not suitable for this array. | ||
+ | mdadm: super1.x cannot open /dev/sdd1: Device or resource busy | ||
+ | mdadm: /dev/sdd1 is not suitable for this array. | ||
+ | mdadm: create aborted | ||
+ | </ | ||
- | Un raid0 avec de la redondance pour la sécurité des données | + | D' |
+ | <code bash> | ||
+ | sudo aptitude remove dmraid | ||
+ | </ | ||
+ | |||
+ | ... mais toujours le même problème :( | ||
+ | |||
+ | N' | ||
+ | |||
+ | Au reboot, les disques ont été renumérotés | ||
+ | <code bash> | ||
+ | sudo fdisk -l | grep Disk | ||
+ | Disk /dev/sda: 2000.4 GB, 2000398934016 bytes | ||
+ | Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes | ||
+ | Disk /dev/sdc: 64.0 GB, 64023257088 bytes | ||
+ | Disk /dev/sdd: 2000.4 GB, 2000398934016 bytes | ||
+ | </ | ||
<code bash> | <code bash> | ||
- | #création | + | # Création |
# --assume-clean permet d' | # --assume-clean permet d' | ||
- | mdadm --create --verbose /dev/md0 --level=raid5 | + | mdadm --create --verbose /dev/md0 --level |
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: layout defaults to left-symmetric | ||
+ | mdadm: chunk size defaults to 512K | ||
+ | mdadm: /dev/sdb1 appears to be part of a raid array: | ||
+ | level=raid5 devices=3 ctime=Thu Sep 6 23:40:51 2012 | ||
+ | mdadm: size set to 1953381888K | ||
+ | Continue creating array? y | ||
+ | mdadm: Defaulting to version 1.2 metadata | ||
+ | mdadm: array /dev/md0 started. | ||
</ | </ | ||
+ | |||
+ | Rofl ! It works ! | ||
Il faut attendre un peu le temps de la construction du raid, puis on vérifie : | Il faut attendre un peu le temps de la construction du raid, puis on vérifie : | ||
<code bash> | <code bash> | ||
- | mdadm --detail /dev/md0 | + | |
- | / | + | /dev/md0: |
Version : 1.2 | Version : 1.2 | ||
- | Creation Time : Tue Feb 15 18:58:18 2011 | + | Creation Time : Wed Sep 12 21:35:52 2012 |
Raid Level : raid5 | Raid Level : raid5 | ||
- | Array Size : 3907020800 | + | Array Size : 3906763776 |
- | Used Dev Size : 1953510400 | + | Used Dev Size : 1953381888 |
Raid Devices : 3 | Raid Devices : 3 | ||
Total Devices : 3 | Total Devices : 3 | ||
Persistence : Superblock is persistent | Persistence : Superblock is persistent | ||
- | Update Time : Wed Feb 16 12:32:05 2011 | + | Update Time : Thu Sep 13 18:00:13 2012 |
State : clean | State : clean | ||
| | ||
Line 209: | Line 278: | ||
Name : ymir2: | Name : ymir2: | ||
- | UUID : 9c8c8486:625dbdfd:98aa755c:b4266366 | + | UUID : 5766333b:7721932e:a40ebe2e:0c6fe1d0 |
| | ||
Line 220: | Line 289: | ||
# ou : | # ou : | ||
cat / | cat / | ||
- | md0 : active raid5 sdd1[2] sdb1[1] sda1[0] | + | Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] |
- | | + | md0 : active raid5 sdd1[2] sdb1[1] sda1[0] |
+ | | ||
- | unused devices: < | + | unused devices: < |
</ | </ | ||
- | |||
---- | ---- | ||
- | |||
Dans le première commande on pourrait tilter sur la ligne : | Dans le première commande on pourrait tilter sur la ligne : | ||
Line 234: | Line 302: | ||
Array Size : 3907020800 (3726.03 GiB 4000.79 GB) | Array Size : 3907020800 (3726.03 GiB 4000.79 GB) | ||
</ | </ | ||
+ | |||
3726.03 GiB alors que je devrait avoir 4 To ? WTF !! | 3726.03 GiB alors que je devrait avoir 4 To ? WTF !! | ||
- | Juste un rappel pour vérifier tout ça : | + | ====Rappel sur les unités==== |
* 8 bits = 1 octet (byte en anglais : un octet et one byte c'est pareil !). Les abréviations respectives sont b (bit), o (octet) et B (byte). | * 8 bits = 1 octet (byte en anglais : un octet et one byte c'est pareil !). Les abréviations respectives sont b (bit), o (octet) et B (byte). | ||
* 1 kB = 1 ko = 1000 octets (bytes). Dans la même logique, 1 MB vaut 1000 kB, 1 GB vaut 1000 MB, etc... : **ce sont des puissances de 10** : 1000 c'est 10^3. | * 1 kB = 1 ko = 1000 octets (bytes). Dans la même logique, 1 MB vaut 1000 kB, 1 GB vaut 1000 MB, etc... : **ce sont des puissances de 10** : 1000 c'est 10^3. | ||
* 1 KiB vaut, lui, 1024 octets (bytes). Dans la même logique, 1 KiB = 1024 B, 1 MiB vaut 1024 KiB, 1 GiB vaut 1024 MiB, etc... **ce sont des puissances de 2** (normal pour de l' | * 1 KiB vaut, lui, 1024 octets (bytes). Dans la même logique, 1 KiB = 1024 B, 1 MiB vaut 1024 KiB, 1 GiB vaut 1024 MiB, etc... **ce sont des puissances de 2** (normal pour de l' | ||
- | <note> | + | <WRAP center round info 80%> |
Les //X//i se prononcent kibi (Ki), mébi (Mi), etc... | Les //X//i se prononcent kibi (Ki), mébi (Mi), etc... | ||
- | </note> | + | </WRAP> |
- | <note> | + | <WRAP center round info 80%> |
Les abréviations des kilos sont " | Les abréviations des kilos sont " | ||
- | </note> | + | </WRAP> |
Autant la première notation (B, kB, MB...) est assez classique et facile à calculer : | Autant la première notation (B, kB, MB...) est assez classique et facile à calculer : | ||
Line 280: | Line 350: | ||
- | Une fois le raid construit, si tout va bien, il faudra le monter automatiquement au démarrage la prochaine fois : | + | Une fois le raid construit, si tout va bien, il faudra le monter automatiquement au démarrage la prochaine fois ; commenter la ligne "ARRAY xxx" dans le fichier ''/ |
<code bash> | <code bash> | ||
- | echo " | ||
mdadm --detail --scan >> / | mdadm --detail --scan >> / | ||
+ | |||
+ | # PI le résultat de la commande : | ||
+ | ARRAY /dev/md0 metadata=1.2 name=ymir2: | ||
</ | </ | ||
+ | |||
+ | =====Raid en vrac au reboot===== | ||
+ | |||
+ | Sous Ubuntu 10.10 cette fois j'ai rencontré un problème lors du reboot car il me montait /dev/md avec 2 disques et /dev/md_d0 avec le dernier. Hideux. Même en retouchant le mdadm.conf celà n'a rien changé. Je suis alors tombé sur [[http:// | ||
+ | <code bash> | ||
+ | # arrêt du raid triso | ||
+ | mdadm --stop /dev/md_d0 | ||
+ | | ||
+ | | ||
+ | |||
+ | mdadm --auto-detect | ||
+ | |||
+ | / | ||
+ | |||
+ | update-initramfs -u | ||
+ | | ||
+ | |||
+ | # puis on reboot | ||
+ | init 6 | ||
+ | </ | ||
+ | |||
+ | Au redémarrage le volume RAID est monté correctement \o/. | ||
+ | |||
+ | ====D' | ||
+ | |||
+ | <code bash> | ||
+ | cat / | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md126 : inactive sdc[1] | ||
+ | 1953514496 blocks | ||
+ | |||
+ | md127 : active (auto-read-only) raid5 sdd[2] sdb[0] | ||
+ | 3907028992 blocks level 5, 64k chunk, algorithm 2 [3/2] [U_U] | ||
+ | |||
+ | unused devices: < | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --examine /dev/sdb1 | ||
+ | /dev/sdb1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 0.90.00 | ||
+ | UUID : cc5892bf: | ||
+ | Creation Time : Fri Aug 19 18:22:07 2011 | ||
+ | Raid Level : raid5 | ||
+ | Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB) | ||
+ | Array Size : 3907023872 (3726.03 GiB 4000.79 GB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Preferred Minor : 0 | ||
+ | |||
+ | Update Time : Thu Nov 17 19:32:24 2011 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 3 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Chunk Size : 64K | ||
+ | |||
+ | Number | ||
+ | this | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | mdadm --examine /dev/sdc1 | ||
+ | /dev/sdc1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 0.90.00 | ||
+ | UUID : cc5892bf: | ||
+ | Creation Time : Fri Aug 19 18:22:07 2011 | ||
+ | Raid Level : raid5 | ||
+ | Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB) | ||
+ | Array Size : 3907023872 (3726.03 GiB 4000.79 GB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Preferred Minor : 0 | ||
+ | |||
+ | Update Time : Thu Nov 17 19:32:24 2011 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 3 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Chunk Size : 64K | ||
+ | |||
+ | Number | ||
+ | this | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | mdadm --examine /dev/sdd1 | ||
+ | /dev/sdd1: | ||
+ | Magic : a92b4efc | ||
+ | Version : 0.90.00 | ||
+ | UUID : cc5892bf: | ||
+ | Creation Time : Fri Aug 19 18:22:07 2011 | ||
+ | Raid Level : raid5 | ||
+ | Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB) | ||
+ | Array Size : 3907023872 (3726.03 GiB 4000.79 GB) | ||
+ | Raid Devices : 3 | ||
+ | Total Devices : 3 | ||
+ | Preferred Minor : 0 | ||
+ | |||
+ | Update Time : Thu Nov 17 19:32:24 2011 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 3 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | Chunk Size : 64K | ||
+ | |||
+ | Number | ||
+ | this | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | egrep -v " | ||
+ | DEVICE partitions | ||
+ | CREATE owner=root group=disk mode=0660 auto=yes | ||
+ | HOMEHOST < | ||
+ | MAILADDR root | ||
+ | ARRAY /dev/md0 level=raid5 num-devices=3 metadata=0.90 UUID=cc5892bf: | ||
+ | | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --detail --scan | ||
+ | ARRAY /dev/md/0_0 metadata=0.90 UUID=c50da923: | ||
+ | ARRAY /dev/md/0_1 metadata=0.90 UUID=cb278753: | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --stop /dev/md126 | ||
+ | | ||
+ | mdadm --stop /dev/md127 | ||
+ | | ||
+ | mdadm --assemble /dev/md0 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | mdadm --detail --scan | ||
+ | ARRAY /dev/md0 metadata=0.90 UUID=cc5892bf: | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | cat / | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : active raid5 sdb1[0] sdd1[2] sdc1[1] | ||
+ | 3907023872 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU] | ||
+ | |||
+ | unused devices: < | ||
+ | </ | ||
+ | |||
+ | |||
+ | =====LVM===== | ||
Création du bousin LVM : déclaration dans l' | Création du bousin LVM : déclaration dans l' | ||
Line 310: | Line 558: | ||
</ | </ | ||
+ | Vérifications : afficher les résumés des volumes physiques, des groupes de volumes et des volumes logiques : | ||
+ | <code bash> | ||
+ | pvs | ||
+ | PV | ||
+ | / | ||
+ | / | ||
- | =====Management du raid===== | + | vgs |
+ | VG #PV #LV #SN Attr | ||
+ | md0_vg | ||
+ | ymir2 1 | ||
+ | |||
+ | lvs | ||
+ | LV VG | ||
+ | data_lv md0_vg -wi-ao | ||
+ | root ymir2 -wi-ao 56,91g | ||
+ | swap_1 | ||
+ | </ | ||
+ | |||
+ | ======Management du raid====== | ||
+ | |||
+ | =====Monitorer son RAID===== | ||
+ | |||
+ | <WRAP center round important 60%> | ||
+ | Attention les commandes qui vont suivre ne proviennent pas toutes du même RAID ! | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | cat / | ||
+ | | ||
+ | md1 : active raid0 sda3[0] sdb3[1] | ||
+ | | ||
+ | |||
+ | md0 : active raid0 sda2[0] sdb2[1] | ||
+ | | ||
+ | |||
+ | | ||
+ | </ | ||
+ | |||
+ | On peut avoir plus de détails avec : | ||
+ | < | ||
+ | mdadm --detail /dev/md1 | ||
+ | /dev/md1: | ||
+ | | ||
+ | | ||
+ | Raid Level : raid0 | ||
+ | Array Size : 1945696256 (1855.56 GiB 1992.39 GB) | ||
+ | Raid Devices : 2 | ||
+ | Total Devices : 2 | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | State : clean | ||
+ | Active Devices : 2 | ||
+ | | ||
+ | Failed Devices : 0 | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | Chunk Size : 64K | ||
+ | |||
+ | UUID : 9695e8d2: | ||
+ | Events : 0.5 | ||
+ | |||
+ | | ||
+ | 0 | ||
+ | 1 | ||
+ | </ | ||
Arrêter/ | Arrêter/ | ||
Line 336: | Line 650: | ||
- | =====Management de LVM===== | + | ======Augmenter un RAID + LVM====== |
- | ====Augmenter | + | Récemment j'ai ajouté |
+ | * augmenter le RAID | ||
+ | * augmenter le LV | ||
- | Synopsis : On a un lv ''/ | + | =====Augmenter |
- | Démonter le volume logique (NB : cette étape n'est pas obligatoire avec le système de fichier que j' | + | Bien sur ce nouveau disque disque a la même taille que les disques déjà inclus dans le RAID. Je créé une partition de type " |
+ | |||
+ | <code bash> | ||
+ | Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes | ||
+ | 81 têtes, 63 secteurs/ | ||
+ | Unités = secteurs de 1 * 512 = 512 octets | ||
+ | Taille de secteur (logique / physique) : 512 octets / 512 octets | ||
+ | taille d'E/S (minimale / optimale) : 512 octets / 512 octets | ||
+ | Identifiant de disque : 0x720b8114 | ||
+ | |||
+ | Périphérique Amorce | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | Puis on ajoute le disque à la grappe : | ||
+ | <code bash> | ||
+ | mdadm /dev/md0 -a /dev/sdc1 | ||
+ | </ | ||
+ | |||
+ | Et enfin on augmente le nombre de disque à notre RAID. **Attention** cette étape va automatiquement lancer la resynchronisation du RAID, qui prend beaucoup de temps et ne supporte pas d' | ||
+ | <code bash> | ||
+ | mdadm --grow /dev/md0 --raid-device=4 | ||
+ | mdadm: Need to backup 3072K of critical section.. | ||
+ | </ | ||
+ | |||
+ | <WRAP center round important 80%> | ||
+ | Ne faites pas comme moi qui ai lancé cette commande à peine 3h avant une coupure électrique programmée... D' | ||
+ | </ | ||
+ | |||
+ | Vérification de l' | ||
+ | <code bash> | ||
+ | cat / | ||
+ | Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] | ||
+ | md0 : active raid5 sdc1[3] sdd1[2] sdb1[1] sda1[0] | ||
+ | 3906763776 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU] | ||
+ | [> | ||
+ | </ | ||
+ | |||
+ | Une fois la synchro terminée (soit environ < | ||
+ | <code bash> | ||
+ | mdadm --detail /dev/md0 | ||
+ | |||
+ | /dev/md0: | ||
+ | Version : 1.2 | ||
+ | Creation Time : Wed Sep 12 21:35:52 2012 | ||
+ | Raid Level : raid5 | ||
+ | Array Size : 5860145664 (5588.67 GiB 6000.79 GB) | ||
+ | Used Dev Size : 1953381888 (1862.89 GiB 2000.26 GB) | ||
+ | Raid Devices : 4 | ||
+ | Total Devices : 4 | ||
+ | Persistence : Superblock is persistent | ||
+ | |||
+ | Update Time : Tue Feb 19 06:03:31 2013 | ||
+ | State : clean | ||
+ | | ||
+ | Working Devices : 4 | ||
+ | | ||
+ | Spare Devices : 0 | ||
+ | |||
+ | | ||
+ | Chunk Size : 512K | ||
+ | |||
+ | Name : ymir2: | ||
+ | UUID : 5766333b: | ||
+ | | ||
+ | |||
+ | Number | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | C'est déjà bien mais c'est pô fini ; il faut maintenant le dire à LVM ! | ||
+ | |||
+ | =====Prise en compte par LVM===== | ||
+ | |||
+ | 1) Première chose : Démonter le volume logique (NB : cette étape n'est pas obligatoire avec le système de fichier que j' | ||
<code bash> | <code bash> | ||
umount / | umount / | ||
</ | </ | ||
- | Augmenter la taille du lv ; attention sa taille ne doit pas dépasser la taille de son volume group (vg), ni être inférieur sa taille actuelle (sinon on perd des données). Pour le vérifier | + | 2) Augmenter la taille du pv : |
<code bash> | <code bash> | ||
- | # on regarde a quel vg le lv appartient -> md0_vg | + | pvresize |
- | lvdisplay | + | |
- | | + | |
- | LV Name | + | |
- | | + | |
- | LV UUID WSTrwM-JLAG-Bu9R-GsHw-XVsT-Dpbo-Zm5imT | + | |
- | LV Write Access | + | |
- | LV Status | + | |
- | # open 0 | + | |
- | LV Size 2,00 TiB | + | |
- | Current LE | + | |
- | Segments | + | |
- | Allocation | + | |
- | Read ahead sectors | + | |
- | - currently set to | + | |
- | Block device | + | |
- | # on affiche les caractéristique du vg | + | # vérif : c'est mieux ! |
- | vgdisplay | + | pvdisplay |
+ | --- Physical volume --- | ||
+ | PV Name / | ||
+ | VG Name | ||
+ | PV Size 5,46 TiB / not usable 1,50 MiB | ||
+ | Allocatable | ||
+ | PE Size 4,00 MiB | ||
+ | Total PE 1430699 | ||
+ | Free PE 0 | ||
+ | Allocated PE 1430699 | ||
+ | PV UUID | ||
+ | |||
+ | # le vg en tient compte immédiatement : | ||
+ | vgdisplay | ||
--- Volume group --- | --- Volume group --- | ||
VG Name | VG Name | ||
Line 373: | Line 766: | ||
Format | Format | ||
Metadata Areas 1 | Metadata Areas 1 | ||
- | Metadata Sequence No | + | Metadata Sequence No |
VG Access | VG Access | ||
VG Status | VG Status | ||
Line 382: | Line 775: | ||
Cur PV 1 | Cur PV 1 | ||
Act PV 1 | Act PV 1 | ||
- | VG Size 3,64 TiB | + | VG Size 5,46 TiB |
PE Size 4,00 MiB | PE Size 4,00 MiB | ||
- | Total PE | + | Total PE |
- | Alloc PE / Size 524288 | + | Alloc PE / Size 1430699 |
- | Free PE / Size 429574 | + | Free PE / Size 0 / 0 |
- | VG UUID 1g20v1-7HKi-CWtx-D8IP-GS9P-rTfB-nL9WHr | + | VG UUID AEKER3-SOwc-zwSQ-rR4J-iJw0-IxlI-qP2hd6 |
</ | </ | ||
- | On a bien 3.64TiB au total soit 4 To. | ||
- | On pourrait déclarer une nouvelle taille de 3.64 TiB ('' | + | 3) Augmenter la taille du lv ; attention sa taille ne doit pas dépasser la taille de son volume group (vg), ni être inférieur sa taille actuelle (sinon on perd des données). |
+ | |||
+ | On pourrait déclarer une nouvelle taille de 5,46 TiB ('' | ||
<code bash> | <code bash> | ||
lvresize -l +100%FREE / | lvresize -l +100%FREE / | ||
- | Extending logical volume data_lv to 3,64 TiB | + | Extending logical volume data_lv to 5,46 TiB |
Logical volume data_lv successfully resized | Logical volume data_lv successfully resized | ||
</ | </ | ||
- | On doit ensuite vérifier l' | + | 4) On doit ensuite vérifier l' |
- | <code bash> | + | <code bash> |
- | e2fsck -f / | + | |
- | | + | |
Passe 1 : vérification des i-noeuds, des blocs et des tailles | Passe 1 : vérification des i-noeuds, des blocs et des tailles | ||
Passe 2 : vérification de la structure des répertoires | Passe 2 : vérification de la structure des répertoires | ||
Line 407: | Line 800: | ||
Passe 4 : vérification des compteurs de référence | Passe 4 : vérification des compteurs de référence | ||
Passe 5 : vérification de l' | Passe 5 : vérification de l' | ||
- | / | + | / |
</ | </ | ||
Line 413: | Line 806: | ||
<code bash> | <code bash> | ||
resize2fs / | resize2fs / | ||
- | | + | |
- | En train de retailler | + | En train de redimensionner |
- | Le système de fichiers / | + | Le système de fichiers / |
</ | </ | ||
- | et on remonte le lv : | + | ... et on remonte le lv : |
<code bash> | <code bash> | ||
mount / | mount / | ||
- | df -Th /mnt/data | + | df -hT /mnt/data |
- | | + | Sys. de fichiers |
- | / | + | / |
- | ext4 3,6T 196M 3,6T 1% /mnt/data | + | |
</ | </ | ||
- | =====Tests et banchmarks===== | ||
- | Je vais comparer ici mon ex raid0 avec le nouveau | + | Okaaaay ! |
+ | |||
+ | ======Tests et benchmarks====== | ||
+ | |||
+ | Je vais comparer ici mon ex raid0 avec mon précédent | ||
Le raid0 est sur le serveur ymir : | Le raid0 est sur le serveur ymir : | ||
Line 442: | Line 837: | ||
- | ====Test en écriture==== | + | =====Test en écriture===== |
- | ===A l' | + | ====A l' |
J' | J' | ||
Line 474: | Line 869: | ||
De ces valeurs on peut retenir une chose : l' | De ces valeurs on peut retenir une chose : l' | ||
- | ====Test en lecture==== | + | =====Test en lecture===== |
- | ===Avec hdparm=== | + | ====Avec hdparm==== |
sur ymir2 : | sur ymir2 : | ||
<code bash> | <code bash> | ||
Line 500: | Line 895: | ||
</ | </ | ||
- | ===Avec dd=== | + | ====Avec dd==== |
On réutilise le fichier précédemment créé et on le lis dans le vent (/dev/null) : | On réutilise le fichier précédemment créé et on le lis dans le vent (/dev/null) : | ||
Line 543: | Line 938: | ||
- | =====Liens===== | + | ======Test avec bonnie++====== |
+ | |||
+ | bonnie++ est un logiciel tierce qui mesure les performances d'un disque. | ||
+ | |||
+ | |||
+ | ======Suppression totale d'un volume RAID====== | ||
+ | |||
+ | Parce que mdadm est coriace, et que la procédure de suppression d'un RAID pour récupérer les disques n'est pas si anodine que cela, voici une petite check-list : | ||
+ | |||
+ | Supprimer les metadata avec dmraid | ||
+ | <code bash> | ||
+ | sudo dmraid -r -E /dev/sdb | ||
+ | no raid disks and with names: "/ | ||
+ | |||
+ | sudo dmraid -r -E /dev/sdc | ||
+ | Do you really want to erase " | ||
+ | ERROR: ddf1: seeking device "/ | ||
+ | ERROR: writing metadata to /dev/sdc, offset 2000398933504 sectors, size 0 bytes returned 0 | ||
+ | ERROR: erasing ondisk metadata on /dev/sdc | ||
+ | |||
+ | sudo dmraid -r -E /dev/sdd | ||
+ | Do you really want to erase " | ||
+ | ERROR: ddf1: seeking device "/ | ||
+ | ERROR: writing metadata to /dev/sdd, offset 2000398933504 sectors, size 0 bytes returned 0 | ||
+ | ERROR: erasing ondisk metadata on /dev/sdd | ||
+ | </ | ||
+ | |||
+ | Si ça ne marche pas on observe encore : | ||
+ | <code bash> | ||
+ | cat / | ||
+ | Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] | ||
+ | md0 : inactive sdd[0](S) sdb[2](S) | ||
+ | 3907028992 blocks | ||
+ | unused devices: < | ||
+ | </ | ||
+ | |||
+ | <code bash> | ||
+ | umount /dev/md0 | ||
+ | mdadm --manage /dev/md0 --stop | ||
+ | mdadm --manage /dev/md0 --remove | ||
+ | rm / | ||
+ | </ | ||
+ | |||
+ | Suppression de la partition " | ||
+ | <code bash> | ||
+ | sudo fdisk /dev/sdb | ||
+ | d | ||
+ | p | ||
+ | w | ||
+ | </ | ||
+ | |||
+ | On efface les superblocks : | ||
+ | <code bash> | ||
+ | sudo mdadm --zero-superblock /dev/sdb | ||
+ | sudo mdadm --zero-superblock /dev/sdb1 | ||
+ | mdadm: Couldn' | ||
+ | </ | ||
+ | |||
+ | Cela évite de se retrouver bloquer au boot par le prompt busybox ! | ||
+ | |||
+ | Dans mon cas au reboot un nouveau volume raid est apparu tout seul : " | ||
+ | <code bash> | ||
+ | sudo update-initramfs -u | ||
+ | sudo reboot | ||
+ | </ | ||
+ | |||
+ | |||
+ | ======Liens====== | ||
* [[http:// | * [[http:// |
informatique/linux/raid0_sous_linux.1297892580.txt.gz · Last modified: 2013/10/14 20:54 (external edit)