web-dev-qa-db-fra.com

Identifier physiquement le disque dur défectueux

Supposons donc que votre serveur dispose de 6 disques durs sains. Un disque tombe en panne (ne sera pas monté/détecté, abandonne le raid avec des erreurs) ou échoue (SMART s'aggrave, etc.). Vous devez échanger le mauvais disque. Lorsque vous ouvrez le boîtier, vous voyez .. six disques durs identiques.

Comment savoir lequel n'est plus en bonne santé/montage/fonctionnement?

Le système serait Linux, probablement un serveur Ubuntu, utilisant tout au plus un logiciel RAID simple. Les disques durs seraient SATA et connectés directement à la carte mère. (pas de contrôleur de raid)

Je ne veux pas déconnecter les lecteurs de manière aléatoire jusqu'à ce que je sélectionne le bon. Les lecteurs me semblent tous identiques; J'imagine qu'il existe un moyen commun d'identifier le lecteur dont je ne suis pas au courant. Quelqu'un at-il des conseils/astuces/meilleures pratiques? Merci!

EDIT: J'avais voulu que cela soit "généralisé" d'une manière ondulée à la main, mais cela s'est révélé comme "incomplet" et "horrible". Ma faute!

27
privatehuff

J'ai eu ce problème exact sur un serveur (tour) comme vous l'expliquez, et c'était facile:

smartctl affichera le numéro de série du lecteur

Les vendeurs expédient parfois leurs propres outils spécifiques, comme hdparm, qui feront de même.

Sortez donc la série du mauvais lecteur, puis utilisez un miroir de dentiste et une lampe de poche pour trouver le lecteur.

Sur un rack, vous aurez généralement des voyants lumineux comme d'autres l'ont dit, mais je parie que la même chose s'appliquerait.

27
Tom Ritter

La pose d'autocollants sur les lecteurs (selon la conception du plateau) peut ne pas être possible. Au moment où le lecteur meurt, les autocollants pourraient être séchés et tomber.

ledctl (du package ledmon) est vraiment la solution.

ledctl locate=/dev/disk/by-id/[drive-id]

ou

ledctl locate=/dev/sda

allumera le voyant de panne du lecteur sur votre châssis pour le lecteur spécifié. J'ai fourni deux exemples pour illustrer que peu importe COMMENT vous identifiez le lecteur. Vous pouvez utiliser le numéro de série, le nom, etc. Toutes les informations dont vous disposez peuvent être utilisées. Les lecteurs sont référencés de plusieurs manières sous le chemin/dev/et/dev/disk /.

Pour éteindre la lumière, il suffit de l'exécuter à nouveau, en modifiant la localisation de Locate_off comme suit:

ledctl locate_off=/dev/sda
17
UCS75

Habituellement, vous devez espérer que les connexions sont étiquetées d'une certaine manière, puis fonctionnent à partir de l'identité du périphérique défaillant. Par exemple ... et quelqu'un devrait commenter pour me corriger ... si vous avez deux IDE canaux, vous avez jusqu'à 2 lecteurs sur chacun, vous pouvez avoir sda, sdb, sdc , et sdd. Si sdd échouait, ce serait le deuxième lecteur sur le câble du deuxième canal IDE.

Si c'est SATA et comme le système que j'ai dans l'arrière-salle, les ports sont étiquetés pour chacun des disques sata. Encore une fois, le lettrage du lecteur va de à travers tout ce que les lecteurs montent, en commençant par le port 0 des connecteurs SATA et en remontant.

S'il y a des différences de fabrication, le dmesg | grep sd ou dmesg | grep hd devrait donner des indices.

Si vous avez les numéros de série disponibles, je pense que la commande hdparm pourrait vous les donner dans le logiciel afin que vous puissiez les suivre de cette façon. Vous voudrez peut-être étiqueter les disques quelque part si tel est le cas, vous n'avez donc pas à vous en soucier lorsque vous constatez un problème.

... Je savais qu'il y avait une autre raison pour laquelle je préférais le RAID matériel au RAID logiciel ... des lumières clignotantes. Vraiment comme les lumières clignotantes.

EDIT: smartctl, pas hdparm, donne le numéro de série. Ma faute.

6
Bart Silverstrim

Pour une réponse courte - "lsscsi" Pour une réponse détaillée - "lshw -c disk" vous montrera les ports HDD et SATA dans lesquels ceux connectés.

3
Sarath kumar S

Certains lecteurs exposent un "fichier" de localisation dans /sys dans lequel vous pouvez faire écho à 1 pour allumer le voyant lumineux de localisation ou 0 pour l'éteindre.

$ for light in $( find /sys -name "locate" ) ; do echo 1 > $light ; sleep 10 ; echo 0 > $light; done
3
crh

À tout le moins, le logiciel/contrôleur RAID qui vous a parlé du disque défectueux doit vous dire quel disque a échoué (numéro d'identification). 0 est généralement celui en haut à gauche, se déplaçant vers le bas, puis vers la droite (si dans deux colonnes ou plus). Les ports sont probablement étiquetés.

2
mrdenny

Si vous n'avez pas de lumière de localisation et que vous ne pouvez pas facilement trouver les numéros de série à l'extérieur des lecteurs, cette technique ringarde peut parfois vous aider: créez BEAUCOUP d'activité sur ce lecteur spécifique, puis recherchez le lecteur avec la LED d'activité allumée en continu . Il est préférable de poursuivre avec une vérification plus détaillée du numéro de série, mais cela peut aider à affiner la recherche.

Par exemple.:

# while true; do dd if=/dev/disk/by-id/scsi-drive-that-is-dying of=/dev/null; sleep 1; done

(La boucle while n'est pas techniquement nécessaire, mais elle gardera les choses en mouvement pendant que vous vous dirigez vers le centre de données. Le "sommeil 1" permet d'éviter l'utilisation élevée du processeur créée par une boucle rapide si le "dd" échoue à cause de dire .. . le lecteur étant déconnecté.)

2
Steve Bonds

Six disques durs internes? S'il s'agit de lecteurs externes remplaçables à chaud, le support remplaçable à chaud dispose probablement d'un voyant d'erreur pour vous aider à identifier le mauvais lecteur. De nombreux programmes de gestion de raid ont également la possibilité de faire clignoter la lumière sur un lecteur particulier pour déterminer lequel est lequel. S'ils sont tous internes sans lumière, alors vous êtes dans votre logiciel RAID pour vous dire quels ID sont bons et regarder les ID SCSI, etc. pour le comprendre. S'ils sont définis sur auto, votre document de contrôleur RAID devrait vous indiquer l'ordre dans la chaîne SCSI auquel les ID sont attribués. Bonne chance. Faites une sauvegarde maintenant pendant que les choses tournent encore!

2
BillN

Lorsque tout le reste échoue, vous pouvez identifier les disques non défaillants et revenir en arrière.

find / -type f -exec cat {} \; >> /dev/null

Quel que soit le lecteur, les voyants d'activité ne s'allument PAS sont probablement mauvais (et j'espère que ce n'est qu'un.) Notez que si vous avez configuré des disques de secours, ils ne s'allumeront pas non plus.

1
toppledwagon

Ils doivent être étiquetés sur le châssis et correspondre au logiciel RAID.

Sur nos Dells, ce n'est pas comme vous le pensez. Sur le nôtre 0: 0 est en bas à gauche, 0: 1 est en haut à gauche, 0: 2 est en bas au milieu, etc. Dans tous les serveurs que j'ai utilisés (sauf les travaux faits maison), le logiciel RAID indiquera le port, et ce sera étiquetés.

0
dubRun

scsirastools possède un ensemble d'outils qui vous permettent d'effectuer divers tests de diagnostic sur des disques SCSI. Vous pouvez également utiliser sgmon pour éteindre un disque sous contrôle logiciel. Cela vous permettrait au moins d'identifier le disque physique de vous pourriez le localiser avec les diagnostics.

Si vous avez un contrôleur RAID matériel, le BIOS ou le logiciel de gestion du contrôleur doit avoir une fonction qui vous permet d'identifier les disques défectueux.