Como associo nomes de dispositivos do Linux scsi a dispositivos de disco?

3

Eu tenho um servidor CentOS 4.x executando o software raid. O servidor possui dois discos scsi em bandejas de troca a quente. O mdadm relata que o ataque falhou e, portanto, gostaria de substituí-lo.

Eu examino / proc / mdstat, o que me diz que meus dois dispositivos RAID possuem componentes em discos sda e sdb. Também me diz que sdb é o que falhou.

Eu examino / proc / scsi / scsi, o que me diz que eu tenho dois dispositivos físicos, nos IDs SCSI 0 0 0 0 e 0-0-1-0.

Como quero fazer a alteração, suponho que sdb seja 0-0-1-0. Então eu digo:

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

... e o computador barfs porque o sda acabou de ser removido, deixando o sistema sem drives válidos.

Agora, após reflexão, a maneira como eu entrei nessa bagunça foi a última vez que um disco falhou, era sda / 0-0-0-0, e fiz isso da maneira antiga - pare o computador, remova a unidade morta, então arranque do sobrevivente em seu antigo slot. Isso me deixou com um computador que achava que o sda era 0-0-1-0. Eu então obtive e inseri, hot, um substituto, e o adicionei assim:

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

... o que funcionou, o que significa que eu poderia aplicar um rótulo de disco, particionar e reconstruir meus arrays de ataque. Isso também significa que o computador acha que sdb é 0-0-0-0. Agora sdb morre novamente (350 dias depois, mas isso é outro problema) e eu esqueci tudo isso.

Supondo que minha memória e meus registros mantendo habilidades são inadequados para me lembrar que isso aconteceu, existe uma maneira que no futuro eu possa comparar os nomes de dispositivos scsi (0-0- $ n-0) e associá-los a dispositivos nomeados? (sd $ x)?

    
por David Mackintosh 11.12.2009 / 21:49

1 resposta

5

Você pode procurar em /sys/block/sda/device, which will have a symlink starting with scsi_device que identifica o dispositivo:

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

Ou você pode procurar em /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

Cada entrada aqui representa um dispositivo SCSI. Dentro de cada diretório há um link simbólico começando com block: que identifica o dispositivo de bloco correspondente:

$ ls -d /sys/bus/scsi/devices/0\:0\:0\:0/block*
/sys/bus/scsi/devices/0:0:0:0/block:sda
    
por 12.12.2009 / 02:13