Comment récupérer les données et reconstruire les raids logiciels ratés - partie 8
- 1164
- 43
- Clara Nguyen
Dans les articles précédents de cette série RAID, vous êtes passé de zéro à Raid Hero. Nous avons examiné plusieurs configurations de raids logiciels et expliqué l'essentiel de chacun, ainsi que les raisons pour lesquelles vous vous pencheriez vers l'un ou l'autre selon votre scénario spécifique.
Récupérer la reconstruction de Raid Software Raid - Partie 8Dans ce guide, nous discuterons de la façon de reconstruire un tableau de raid logiciel sans perte de données en cas d'échec de disque. Par conciliation, nous ne considérerons qu'un Raid 1 Configuration - mais les concepts et les commandes s'appliquent à tous les cas.
Scénario de test des raids
Avant de continuer plus loin, assurez-vous que vous avez mis en place un Raid 1 Array Suivant les instructions fournies dans la partie 3 de cette série: Comment configurer Raid 1 (Mirror) dans Linux.
Les seules variations dans notre cas présent seront:
1) Une version différente de Centos (V7) de celle utilisée dans cet article (V6.5), et
2) différentes tailles de disque pour / dev / sdb et / dev / sdc (8 Go chacun).
De plus, si Selinux est activé en mode d'application, vous devrez ajouter les étiquettes correspondantes au répertoire où vous monterez le périphérique RAID. Sinon, vous rencontrerez ce message d'avertissement tout en tentant de le monter:
Erreur de montage SELINUX RAIDVous pouvez résoudre ce problème en fonctionnant:
# restorecon -r / mnt / raid1
Configuration de la surveillance des raids
Il existe une variété de raisons pour lesquelles un dispositif de stockage peut échouer (les SSD ont considérablement réduit les chances que cela se produise, cependant), mais quelle que soit la cause, vous pouvez être sûr que les problèmes peuvent se produire à tout moment et vous devez être prêt à remplacer l'échec partie et pour assurer la disponibilité et l'intégrité de vos données.
Un conseil d'abord. Même lorsque vous pouvez inspecter / proc / mdstat Afin de vérifier l'état de vos raids, il existe une méthode meilleure et de gain de temps qui consiste à courir mdadm en mode moniteur + scan, qui enverra des alertes par e-mail à un destinataire prédéfini.
Pour configurer cela, ajoutez la ligne suivante dans / etc / mdadm.confli:
MailAdDR [Protégé par e-mail]
Dans mon cas:
MailAdDR [Protégé par e-mail]Alertes des e-mails de surveillance des raids
Courir mdadm En mode Monitor + Scan, ajoutez l'entrée Crontab suivante en tant que racine:
@reboot / sbin / mdadm --monitor --ncan --Onsehot
Par défaut, mdadm Vérifiera les tableaux RAID toutes les 60 secondes et envoie une alerte si elle trouve un problème. Vous pouvez modifier ce comportement en ajoutant le --retard
Option à l'entrée crontab ci-dessus avec la quantité de secondes (par exemple, --retard
1800 signifie 30 minutes).
Enfin, assurez-vous d'avoir un Envoyez-vous un agent utilisateur (MUA) installé, comme Mutt ou MailX. Sinon, vous ne recevrez aucune alerte.
Dans une minute, nous verrons ce qu'une alerte a envoyé par mdadm ressemble à.
Simulant et remplacement d'un périphérique de stockage RAID défaillant
Pour simuler un problème avec l'un des périphériques de stockage du tableau RAID, nous utiliserons le --gérer
et --se dérouler
Options comme suit:
# MDADM --MANAGE --set-Faulté / Dev / MD0 / Dev / SDC1
Cela entraînera / dev / sdc1 être marqué comme défectueux, comme nous pouvons le voir dans / proc / mdstat:
Stimuler le problème avec le stockage des raidsPlus important encore, voyons si nous avons reçu une alerte par e-mail avec le même avertissement:
Alerte par e-mail sur le périphérique RAID défaillardDans ce cas, vous devrez supprimer l'appareil du tableau des raids logiciels:
# MDADM / DEV / MD0 - Remove / Dev / SDC1
Ensuite, vous pouvez le retirer physiquement de la machine et le remplacer par une pièce de rechange (/ dev / sdd, où une partition de type FD a déjà été créé):
# mdadm --manage / dev / md0 --add / dev / sdd1
Heureusement pour nous, le système commencera automatiquement à reconstruire le tableau avec la pièce que nous venons d'ajouter. Nous pouvons tester cela en marquant / dev / sdb1 comme défectueux, le retirer du tableau et s'assurer que le fichier Tecmint.SMS est toujours accessible à / mnt / raid1:
# MDADM --Detail / Dev / MD0 # Mont | grep raid1 # ls -l / mnt / raid1 | grep tecmint # cat / mnt / raid1 / tecmint.SMSConfirmer le tableau des raids de reconstruction
L'image ci-dessus montre clairement qu'après avoir ajouté / dev / sdd1 au tableau en remplacement de / dev / sdc1, La reconstruction des données a été automatiquement effectuée par le système sans intervention de notre part.
Bien qu'il ne soit pas strictement requis, c'est une excellente idée d'avoir un appareil de rechange à portée. Pour ce faire, remettons-nous / dev / sdb1 et / dev / sdc1:
# mdadm --manage / dev / md0 --add / dev / sdb1 # mdadm --manage / dev / md0 --add / dev / sdc1Remplacer le périphérique RAID défaillant
Se remettre d'une perte de redondance
Comme expliqué précédemment, mdadm Reconstruirea automatiquement les données lorsqu'un disque échoue. Mais que se passe-t-il si 2 disques dans le tableau échouent? Simulons ce scénario en marquant / dev / sdb1 et / dev / sdd1 Aussi défectueux:
# umount / mnt / raid1 # mdadm --manage --set-faulté / dev / md0 / dev / sdb1 # mdadm --stop / dev / md0 # mdadm --manage --set-faulté / dev / md0 / dev / sdd1
Tente de recréer le tableau de la même manière qu'il a été créé pour le moment (ou d'utiliser le --supposer
option) peut entraîner une perte de données, il doit donc être laissé en dernier recours.
Essayons de récupérer les données de / dev / sdb1, par exemple, dans une partition de disque similaire (/ dev / sde1 - Notez que cela nécessite que vous créiez une partition de type FD dans / dev / sde avant de procéder) en utilisant ddrescue:
# DDRESCUE -R 2 / DEV / SDB1 / DEV / SDE1Récupération du tableau des raids
Veuillez noter que jusqu'à présent, nous n'avons pas touché / dev / sdb ou / dev / sdd, les partitions qui faisaient partie du tableau des raids.
Maintenant, reconstruisons le tableau en utilisant / dev / sde1 et / dev / sdf1:
# mdadm --create / dev / md0 --level = miroir --raid-devices = 2 / dev / sd [e-f] 1
Veuillez noter que dans une situation réelle, vous utiliserez généralement les mêmes noms d'appareils que pour le tableau d'origine, c'est-à-dire, / dev / sdb1 et / dev / sdc1 Une fois les disques défaillants ont été remplacés par de nouveaux.
Dans cet article, j'ai choisi d'utiliser des appareils supplémentaires pour recréer le tableau avec de nouveaux disques et éviter la confusion avec les disques d'échec d'origine.
Lorsqu'on lui a demandé de continuer à écrire un tableau, tapez Y et presser Entrer. Le tableau doit être démarré et vous devriez pouvoir regarder ses progrès avec:
# watch -n 1 chat / proc / mdstat
Une fois le processus se terminer, vous devriez pouvoir accéder au contenu de votre raid:
Confirmer le contenu RAIDRésumé
Dans cet article, nous avons examiné comment récupérer RAID Échecs et pertes de licenciement. Cependant, vous devez vous rappeler que cette technologie est une solution de stockage et NE FAIT PAS remplacer les sauvegardes.
Les principes expliqués dans ce guide s'appliquent à toutes les configurations de raid, ainsi que les concepts que nous couvrirons dans le prochain et dernier guide de cette série (gestion des raids).
Si vous avez des questions sur cet article, n'hésitez pas à nous envoyer une note en utilisant le formulaire de commentaire ci-dessous. Nous avons hâte d'avoir de tes nouvelles!
- « Comment obtenir des informations matérielles avec la commande DMIDECODE sur Linux
- Powerline - Ajoute de puissantes lignes de statut et invites à l'éditeur VIM et à Bash Terminal »