
Quero piscar o dispositivo com falha em meu gabinete SAS de 24 discos.
Eu descobri sg_ses --index 7 --set=locate /dev/sg24
o que deveria identificar o slot 7.
Mas como faço para descobrir qual /dev/sdh
é o slot/índice?
Isso não é óbvio, pois o Linux não nomeia /dev/sdX após o slot, mas após a sequência em que foi detectado. Pense no que acontece se o slot 1 estiver vazio na inicialização, mas for preenchido posteriormente.
Editar:
O controlador é um SAS2008.
Responder1
Depois de circular por /sys por um tempo, encontrei esta solução:
# echo /sys/class/enclosure/*/*/device/block/sdaa
/sys/class/enclosure/2:0:35:0/Slot 15/device/block/sdaa
# echo 1 > '/sys/class/enclosure/2:0:35:0/Slot 15/locate'
Ou:
# echo 1 > /sys/class/enclosure/*/*/device/block/sdaa/../../enclosure*/locate
Para piscar todos os dispositivos detectados:
parallel echo 1 \> ::: /sys/class/enclosure/*/*/device/block/sd*/../../enclosure*/locate
Isto é útil se você tiver uma unidade tão quebrada que nem sequer é detectada pelo Linux (por exemplo, ela não gira).
Editar:
Eu criei uma pequena ferramenta (chamada Blink) para piscar slots.https://gitlab.com/ole.tange/tangetools/tree/master/blink
Responder2
Este script feio adiciona informações de gabinete e slot à lsblk
saída:
lsblk -d -o VENDOR,MODEL,SERIAL,HCTL,NAME | sed -e "`ls -1d /sys/class/enclosure/*/*/device/block/*|sed "s+.*enclosure/\(.*\)/device/block/\(.*\)+s-\2\\$-\2 \1-+"`"
(você pode alterar a lista de colunas, mas a última coluna deve ser NAME
)
Responder3
Verifique /sys/class/block/sdh
para quais links. Você pode ver o host, o destino e o LUN desta forma. Geralmente isso é suficiente para identificar o endereço de hardware do dispositivo.
Responder4
Existe uma boa ferramenta incluída (disponível emhttps://github.com/amarao/sdled) para gerenciar os leds do seu gabinete.
Você deve ser capaz de usá-lo assim (embora não testado):
encled /dev/sgh fault
Do README:
falha - defina o indicador LED como 'defeituoso'. Isso NÃO causará defeito no dispositivo, apenas coloque o gabinete no status 'FAULTY'.