
Я хочу перепрошить неисправное устройство в моем 24-дисковом корпусе SAS.
Я нашел, sg_ses --index 7 --set=locate /dev/sg24
какой из них должен идентифицировать слот 7.
Но как мне узнать, какой /dev/sdh
это слот/индекс?
Это не очевидно, так как Linux не называет /dev/sdX после слота, а после последовательности, в которой он был обнаружен. Подумайте, что произойдет, если слот 1 пуст при загрузке, но заполняется позже.
Редактировать:
Контроллер — SAS2008.
решение1
Покопавшись некоторое время в /sys, я нашел следующее решение:
# 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'
Или:
# echo 1 > /sys/class/enclosure/*/*/device/block/sdaa/../../enclosure*/locate
Чтобы мигать всеми обнаруженными устройствами:
parallel echo 1 \> ::: /sys/class/enclosure/*/*/device/block/sd*/../../enclosure*/locate
Это полезно, если ваш диск настолько сломан, что Linux его даже не определяет (например, он не раскручивается).
Редактировать:
Я сделал небольшой инструмент (называется Blink) для мигания слотов.https://gitlab.com/ole.tange/tangetools/tree/master/blink
решение2
Этот уродливый скрипт добавляет в lsblk
вывод информацию о корпусе и слоте:
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-+"`"
(вы можете изменить список столбцов, но последний столбец должен быть NAME
)
решение3
Проверьте, что /sys/class/block/sdh
ссылается на. Таким образом можно увидеть хост, цель и LUN. Обычно этого достаточно, чтобы точно определить аппаратный адрес устройства.
решение4
В комплект входит замечательный инструмент (доступный по адресуhttps://github.com/amarao/sdled) для управления светодиодами вашего корпуса.
Вы сможете использовать его следующим образом (правда, это не проверялось):
encled /dev/sgh fault
Из README:
неисправность - установите светодиодный индикатор в состояние «неисправен». Это НЕ сделает устройство неисправным, просто установите светодиод корпуса в состояние «НЕИСПРАВЕН».