Cómo identificar discos físicos en Linux RAID

Cómo identificar discos físicos en Linux RAID

¿Existe alguna forma de saber de manera confiable qué unidad física en un RAID se relaciona con el nombre del dispositivo de software que le dio el sistema operativo?

Tengo una matriz RAID5 de discos USB de consumo (y uno de repuesto) en un concentrador conectado a una PC. Esto sirve como un NAS económico.

Cada dispositivo se identifica /proc/mdstatpor su nombre de dispositivo (p. ej. sdb, sdc).

Por lo que puedo decir, los nombres de los dispositivos Linux dependen del orden en que se lee el hardware en el arranque. Así que, por ejemplo, no debería poner una pegatina en cada unidad con los nombres de esos dispositivos, porque sdchoy podría serlo sdben el futuro.

En caso de falla, podría probar la asignación del nombre del dispositivo actual deteniendo el RAID y luego observando dmesg -Wcómo elimino cada uno uno por uno hasta que elimino el dispositivo fallido mediante el proceso de eliminación. Pero hay una manera mejor?

Veo que no puedo etiquetar a los miembros de RAID individualmente; todos tienen que compartir el nombre de la matriz:https://wiki.archlinux.org/title/persistent_block_device_naming#by-label

Lo he mirado ledctlpero eso no funciona con unidades de consumo:https://linux.die.net/man/8/ledctl

Respuesta1

Úselo lsblk -Spara asignar cada dispositivo al número de serie del disco (o WWN si agrega -o +wwn).

Las rutas del concentrador USB que se muestran lsusb.py -cio udevadm info /dev/sdd | grep ID_PATH=deberían tener una asignación fija a los puertos USB físicos, por ejemplo, en mi servidor "1-1.1" y "1-1.2" están conectadas a los puertos del panel frontal. Es posible que el orden de los puertos en un concentrador externo no siempre sea obvio, pero debería permanecer estático una vez que lo descubras.

Alternativa a los LED: los scripts scsi_start/ scsi_stopde sg3_utils pueden hacer que los discos duros giren o desaceleren según demanda (sin desconectarlos). Si la matriz está inactiva, detenga todos los discos y gírelos uno por uno hasta que haya hecho coincidir todos los gabinetes con los números de serie del disco duro.

Respuesta2

Escribí una respuesta, pero desde entonces descubrí que usar el UUID_SUBvalor lsblk NO es una solución. Un evento reciente de falla del disco me mostró UUID_SUBque no parece estar conectado al superbloque de la partición del disco como pensé al principio.

Por lo tanto, voy a destripar mi respuesta original y dejaré que otros voten para eliminarla.

Hasta la fecha, la única respuesta comprobada a la pregunta es utilizar discos desnudos que tengan sus números de serie visibles en la propia carcasa de la unidad y no en una carcasa exterior que bien puede ser diferente. Luego utilícelo lsbk -Spara determinar con qué unidad física lidiar en caso de falla.

información relacionada