===== RAID : Présentation ===== [[https://fr.wikipedia.org/wiki/RAID_(informatique)]] Le RAID est un ensemble de techniques de virtualisation du stockage permettant de répartir des données sur plusieurs disques durs afin d'améliorer soit les performances, soit la sécurité ou la tolérance aux pannes de l'ensemble du ou des systèmes. Quand on créé un RAID, on créé une array (tableau de partitions disque, en général sur des disques différents) Sous linux, un nouveau device est créé : /dev/md : un chiffre, en général 0, si aucun autre RAID n'est déjà monté. On peut monter 3 différents type de RAID : * RAID0 : pour additionner l'espace de chaque partition * RAID1 : pour redonder l'espace de chaque partition. On parle de miroir * RAID5 : pour faire les 2 (mais ça a l'air moins efficace). Il existe 2 mises en oeuvre d'un RAID : * __RAID pseudo matériel, ou RAID logiciel__ : Controllé par un software, nécessite donc un filesystem en dehors du RAID pour pouvoir le monter * __RAID matériel__ Un controlleur RAID est dédié à au RAID. Le controlleur peut être interne à l'unité centrale ou déporté dans une baie de stockage. Un controlleur RAID est en général doté d'un processeur spécifique, de mémoire et est capable de gérer tous les aspects du système de stockage RAID grace au microcode embarqué. ==> Virtualisation complète du stockage ===== Voir l'état des matrices RAID montée sur un PC ===== cat /proc/mdstat --> Retournera : Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] md0 : active raid1 sdb1[0] 524224 blocks [2/1] [U_] md1 : active raid1 sdb2[2] 1950890924 blocks super 1.0 [2/1] [_U] bitmap: 15/15 pages [60KB], 65536KB chunk unused devices: **Remarque importante :** - Les disques d'un RAID qui sont en faute sont décrits avec un '_' - Les disques d'un RAID valides sont décrits avec un 'U' ===== Voir l'état d'un RAID ===== mdadm --detail /dev/md ( = 0 ou 1 ou 2 ...) --> Retournera ceci /dev/md1: Version : 1.0 Creation Time : Sun Nov 12 11:43:34 2017 Raid Level : raid1 Array Size : 1950890924 (1860.51 GiB 1997.71 GB) Used Dev Size : 1950890924 (1860.51 GiB 1997.71 GB) Raid Devices : 2 Total Devices : 1 Persistence : Superblock is persistent Intent Bitmap : Internal Update Time : Fri Dec 22 12:31:35 2017 State : clean, degraded Active Devices : 1 Working Devices : 1 Failed Devices : 0 Spare Devices : 0 Name : dlink-2A629F:1 (local to host dlink-2A629F) UUID : 420b3ee5:930f930b:549dac8d:37508aaf Events : 375350 Number Major Minor RaidDevice State 0 0 0 0 removed 2 8 18 1 active sync /dev/sdb2 ===== Remove an array ===== sudo mdadm --stop /dev/md0 sudo mdadm --remove /dev/md0 lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT ===== After discovering the devices used to create an array, zero their superblock to reset them to normal: ===== sudo mdadm --zero-superblock /dev/sda1 ===== Pour créer une matrice dégradée (avec sdb2 en principal) : ===== sudo mdadm --create --verbose /dev/md1 --level=1 --raid-devices=1 /dev/sdb2 ===== Marquer un dique à failed ===== mdadm --manage /dev/md1 --fail /dev/sda2 --> cat /proc/mdstat montrera md1 : active raid1 sda2[1](F) ===== Ajouter un nouveau disque sur une matrice de 2 disque dont 1 était manquant ===== Je l'ai fait sur mon ubuntu le 13/02/2020. si le nouveau disque est /dev/sdc, sudo mdadm --manage /dev/md127 --add /dev/sdc puis, pour vérifier : sudo mdadm --detail /dev/md127 cela donnera les informations suivantes, qui montre la (re-construction) du 2e disque dur ... Rebuild Status : 0% complete Name : xms-fixe-ubuntu:0 (local to host xms-fixe-ubuntu) UUID : 0a5a20ac:b037cc7c:e91a0cb1:c29cb344 Events : 62847 Number Major Minor RaidDevice State 0 8 1 0 active sync /dev/sda1 2 8 32 1 spare rebuilding /dev/sdc ===== Recenser les processus qui utilisent un point de montage ===== fuser -vm /mnt/dir ou lsof ===== Arrêter/Démarrer les services du NAS avec Firmware ALT-F ===== rcall start rcall stop Remarque : dropbear et le serveur http d'administration sont toujours dispos apres rcall stop (sauf si le serveur d'admin est configuré avec l'option "pas inetd". ) ===== Demonter les disques de mon NAS ===== umount /dev/sdb2 --> umount: can't umount /dev/sdb2: Device or resource busy Pour l'instant je peux démonter /dev/sda2, et [root@dlink-2A629F]# cat /etc/fstab # /dev/sdb2 /mnt/sdb2 ext4 defaults 0 0 /dev/sda1 none swap pri=1 0 0 /dev/md0 none swap pri=1 0 0 ==> j'ai désactivé la premiere ligne /dev/sdb2 dans /etc/fstab et je redémarre le NAS Mais le sdb2 est à nouveau monté !!!! Je démonter sdb2 en forcant : umount -l /dev/sdb2 Là, la partition est démontée, j'ai toujours ma connexion ssh, mais plus de réponse de page d'admin rcall start (permet de réaccéder à l'interface web.) ===== Meilleur moyen de recréer un RAID1 standard ===== __E1 : Create a new degraded RAID1 with your new disk using Disk->Wizard (1)__ Remarques : * c'est donc le nouveau disque qui sera le premier composant de cette nouvelle array * Un /dev/md est créé, on peut le monter pour accéder aux fichier dessus, mais pour l'instant, c'est vide * Sur le NAS avec ALT-F, les sda et sdb et md sont montés dans /mnt __E2 : Copy all data from the old "standard" partition to the new RAID1 using Setup->Folders__ Copier le contenu de l'ancien disque sur /mnt/md Ca se fait soit en ligne de commande, soit via l'IHM, comme indiqué __E3 : Verify that the data in the RAID1 is fine__ Moi j'ai juste vérifié que je pouvais parcourir l'arboresence de /mnt/md __E4 : Change the old disk "standard" partition type to RAID using Disk->Partitioner (2)__ Après E3, on peut abandonner l'ancien disque puisque tout est copié et opérationnel ; on pourrait dès lors utiliser /mnt/md1 On changer l'ancienne partition pour la mettre en RAID Remarque : Attention, il se peut que des ajustements de tailles soient nécessaires ... ? Moi c'est ce qui s'est passé, pour ajuster les blocs de 4k ... __E5 : Add the old disk RAID partition to te new RAID as a new component using Disk->RAID__ Ajouter l'ancienne partition comme 2e composant du RAID1 md. Et là normalement, le controlleur de RAID1 va faire son travail de check. Normalement, en attendant ... pas mal, à la fin tout est bon ===== Réparer un RAID ===== E1 : Identifier le disque qui est fail (voir au dessus) E2 : Insérer un nouveau disque Via l'IHM E3 : Créer une partition de taille identique à celle du RAID E4 : Aller dans le menu RAID et ajouter le composant nouvellement créé au RAID en question. Il vous indiquera que ca sert soit a ajouter un composant, soit à remplacer un composant fail. Une fois ceci, attendre que la construction se termine (très long). Normalement, tout devrait être bon.