Как связать имена устройств linux scsi с дисковыми устройствами?

14121
David Mackintosh

У меня на сервере CentOS 4.x запущен программный рейд. На сервере есть два scsi-диска в лотках горячей замены. mdadm сообщает, что рейд провалился, и поэтому я хотел бы заменить его.

Я изучаю / proc / mdstat, который говорит мне, что на моих двух raid-устройствах есть компоненты на дисках sda и sdb. Это также говорит мне, что SDB является тем, который потерпел неудачу.

Я изучаю / proc / scsi / scsi, который говорит мне, что у меня есть два физических устройства с идентификаторами SCSI 0 0 0 0 и 0-0-1-0.

Поскольку я хочу сделать изменение горячим, я предполагаю, что SDB 0-0-1-0. Поэтому я говорю:

# echo "scsi remove-single-device 0 0 1 0" > /proc/scsi/scsi 

... и компьютер barfs, потому что sda был только что удален, оставив систему без действительных дисков.

Теперь, подумав, я попал в этот беспорядок, когда в последний раз выходил из строя диск, это был sda / 0-0-0-0, и я сделал это по-старому - остановил компьютер, вынул неисправный диск затем загрузитесь с выжившим в его старом слоте. Это оставило меня с компьютером, который думал, что sda был 0-0-1-0. Затем я получил и вставил, горячий, замена, и добавил это так:

# echo "scsi add-single-device 0 0 0 0" > /proc/scsi/scsi 

... который работал, что означало, что я мог применить метку диска, раздел и восстановить мои raid-массивы. Это также означало, что компьютер считает, что SDB 0-0-0-0. Теперь SDB умирает снова (350 дней спустя, но это еще одна проблема), и я все это забыл.

Так. Если предположить, что и моя память, и мои навыки ведения документации не достаточны для напоминания о том, что это произошло, есть ли способ в будущем сравнить имена устройств scsi (0-0- $ n-0) и связать их с именованными устройствами (сд $ х)?

3

1 ответ на вопрос

5
larsks

Вы можете посмотреть в /sys/block/sda/device, which will have a symlink starting with scsi_device that identifies the device:

$ ls -d /sys/block/sda/device/scsi_device* /sys/block/sda/device/scsi_device:0:0:0:0 

Or you can look in /sys/bus/scsi/devices:

$ ls /sys/bus/scsi/devices/ 0:0:0:0 1:0:0:0 2:0:0:0 3:0:0:0 7:0:0:0 8:0:0:0 

Each entry here represents a SCSI device. Inside each directory is a symlink starting with block: that identifies the corresponding block device:

$ ls -d /sys/bus/scsi/devices/0\:0\:0\:0/block* /sys/bus/scsi/devices/0:0:0:0/block:sda 
В CentOS 4.x нет файлов / sys / blocl / sd? / Device / scsi_device *. Но он правильно заполняет / sys / bus / scsi / devices / 0 \: 0 \:? \: 0 /. Спасибо. David Mackintosh 14 лет назад 0

Похожие вопросы