출처: http://fibrevillage.com/storage/279-hot-add-remove-rescan-of-scsi-devices-on-linux
SCSI device 검색
매핑된 scsi 디바이스 정보는 /proc/scsi/scsi에서 확인이 가능합니다.
또는 lsscsi를 통해서도 확인이 가능합니다.
# lsscsi
[0:0:0:0] disk ATA SEAGATE ST31000N SU0E /dev/sda
[0:0:1:0] disk ATA SEAGATE ST31000N SU0E /dev/sdb
...
[1:0:1:0] disk ATA SEAGATE ST31000N SU0E /dev/sdj
[1:0:2:0] disk ATA SEAGATE ST31000N SU0E /dev/sdk
[1:0:3:0] disk ATA HITACHI H7210CA3 A3CB /dev/sdl
[1:0:4:0] disk ATA HITACHI HUA7210S AC5A /dev/sdm
...
[5:0:7:0] disk ATA SEAGATE ST31000N SU0D /dev/sdav
[6:0:0:0] mediumx IBM TS3500 0104 /dev/sch0
[6:0:1:0] tape IBM ULT3580-TD5 0104 /dev/st0
[6:0:2:0] tape IBM ULT3580-TD5 0104 /dev/st1
아래는 /proc/scsi/scsi에서 확인하는 내용입니다.
# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: SEAGATE ST31000N Rev: SU0E
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: ATA Model: SEAGATE ST31000N Rev: SU0E
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: ATA Model: SEAGATE ST31000N Rev: SU0E
Type: Direct-Access ANSI SCSI revision: 05
...
위의 예시에서 Host: scsi0 Channel: 00 Id: 01 Lun: 00 이 디바이스는 lsscsi 결과에서의 [0:0:0:0] 와 동일한 디바이스 입니다.
SCSI device rescan
다음으로 SCSI bus를 rescan 을 해보겠습니다.
리부팅을 해도 scsi장비들이 rescan 되지만, 좋은 방법은 아닙니다.
scsi bus를 rescan 하기 위해서는 device가 어디에 연결이 되었는지는 알아야 합니다. 만약에 device가 연결된 bus를 모른다면 각각의 bus를 모두 rescan 할 수 도 있습니다.
아래의 커맨드를 통해서 rescan을 할 수 있습니다.
echo "- - -" > /sys/class/scsi_host/host<H>/scan
여기서 H는 scan을 할 scsi 버스의 번호입니다.
아래의 예시를 보시면 해당 커맨드를 통해서 새로운 디바이스(sdd)가 인식이 되었습니다.
# lsscsi
...
[1:0:0:7] disk IBM 1814 FAStT 1060 /dev/sdb
[1:0:0:8] disk IBM 1814 FAStT 1060 /dev/sdc
[1:0:0:10] disk IBM 1814 FAStT 1060 /dev/sde
# echo "- - -" > /sys/class/scsi_host/host1/scan
# lsscsi
...
[1:0:0:7] disk IBM 1814 FAStT 1060 /dev/sdb
[1:0:0:8] disk IBM 1814 FAStT 1060 /dev/sdc
[1:0:0:9] disk IBM 1814 FAStT 1060 /dev/sdd
[1:0:0:10] disk IBM 1814 FAStT 1060 /dev/sde
이 방법은 디스크 뿐만 아니라 scsi cd/dvd장비에도 사용할 수 있습니다.
아래의 다른 방법으로도 rescan이 가능합니다.
echo "scsi add-single-device 1 0 0 9" > /proc/scsi/scsi
SCSI device 삭제
scsi device 삭제는 아래 커맨드를 통해서 할 수 있습니다.
echo 1 > /sys/class/scsi_device/h:c:t:l/device/delete
또는
echo 1 > /sys/block/<dev>/device/delete
여기서 <dev> 는 sda, sdb 와 같은 명칭입니다.
아래는 scsi device sdau를 삭제하는 예시입니다.
# echo 1 > /sys/block/sdau/device/delete
# lsscsi | grep sdau
#
그리고 아래와 같은 방법으로도 삭제가 가능합니다.
echo "scsi remove-single-device h c t l" > /proc/scsi/scsi
SCSI device 추가
scsi device는 위에서 설명한 scan을 통해서 추가할 수 있습니다.
echo "- - -" > /sys/class/scsi_host/host<h>/scan
그리고 scsi 로케이션 h:c:t:l을 알고 있다면 아래의 커맨드도 사용할 수 있습니다.
echo "c t l" > /sys/class/scsi_host/host<h>/scan
그리고 아래의 방법도 사용할 수 있습니다.
echo "scsi add-single-device a b c d" > /proc/scsi/scsi
SCSI device 리스캔
아래의 커맨드를 통해서 새로운 디바이스가 아닌, 기존의 디바이스나 missing된 디바이스를 리스캔 할 수 도있습니다.
echo 1 > /sys/block/sdau/device/rescan
또는
echo 1 > /sys/class/scsi_device/h:c:t:l/device/rescan
'IT 지식정리 > 스토리지' 카테고리의 다른 글
리눅스: HBA에 연결된 디바이스 확인 (0) | 2018.03.27 |
---|---|
리눅스에서 테입 장비 확인 (0) | 2018.03.21 |
리눅스에서 iscsi 연결설정하기 (iscsi initiator) (0) | 2018.03.19 |
백업의 방식 및 종류 2015. 8. 7. (0) | 2017.11.04 |
SSD,HDD와 Tape간의 퍼포먼스를 비교.. 2013. 9. 11. (0) | 2017.11.04 |