sg_inq 로 emc 스토리지 lun number 확인하기.

CentOS7.0 에 EMC 스토리지 LUN 4개 사용중(LUN 0, 4, 5, 19)이며, 물리적으로는 SAN 스위치를 통해 연결되어 있다.(대략 아래와 같은 구성)

san_connect

 

lsscsi 커맨드로 보면, 아래처럼 여러개의 디스크가 보인다.

# lsscsi -g
[0:0:0:0] disk DGC RAID 5 0219 /dev/sdc /dev/sg2
[0:0:0:1] disk DGC RAID 5 0219 /dev/sdd /dev/sg3
[0:0:0:2] disk DGC RAID 5 0219 /dev/sde /dev/sg4
[0:0:0:3] disk DGC RAID 5 0219 /dev/sdf /dev/sg5
[0:0:1:0] disk DGC RAID 5 0219 /dev/sdb /dev/sg6
[0:0:1:1] disk DGC RAID 5 0219 /dev/sdg /dev/sg7
[0:0:1:2] disk DGC RAID 5 0219 /dev/sdh /dev/sg13
[0:0:1:3] disk DGC RAID 5 0219 /dev/sdi /dev/sg1

물론, lsscsi -i 하면,  emc storage lun의 ui(unique id)값을 확인 할 수 있지만, 이것을 가지고 스토리지에서 lun number를 찾아야 하며, multipath를 사용하지 않으므로, 위의 sdc가 sdb와 같은지는 확인 하기가 어렵다.

# lsscsi -i
[0:0:0:0] disk DGC RAID 5 0219 /dev/sdc –
[0:0:0:1] disk DGC RAID 5 0219 /dev/sdd –
[0:0:0:2] disk DGC RAID 5 0219 /dev/sde –
[0:0:0:3] disk DGC RAID 5 0219 /dev/sdf –
[0:0:1:0] disk DGC RAID 5 0219 /dev/sdb 3600601607f121a00a46a689d7c3de411
[0:0:1:1] disk DGC RAID 5 0219 /dev/sdg 3600601607f121a00666a12c43f65e411
[0:0:1:2] disk DGC RAID 5 0219 /dev/sdh 3600601607f121a006010d80a9e64e411
[0:0:1:3] disk DGC RAID 5 0219 /dev/sdi 3600601607f121a00fa518858817ae411
[1:0:0:0] disk HP LOGICAL VOLUME 3.52 /dev/sda 3600508b1001c8e50e64f83ef84c5b78b

이제, sg_inq 커맨드를 사용하면 된다. (sg_inq 커맨드가 없으면, sg3_utils 패키지를 설치한다)sg_inq 커맨드는 매우 아래와 같이 다양한 결과를 보여준다.

# sg_inq -i /dev/sdc
VPD INQUIRY: Device Identification page
Designation descriptor number 1, descriptor length: 20
designator_type: NAA, code_set: Binary
associated with the addressed logical unit
NAA 6, IEEE Company_id: 0x6016
Vendor Specific Identifier: 0x7f121a00
Vendor Specific Identifier Extension: 0xa46a689d7c3de411
[0x600601607f121a00a46a689d7c3de411]
Designation descriptor number 2, descriptor length: 20
designator_type: vendor specific [0x0], code_set: Binary
associated with the addressed logical unit
vendor specific:
00 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00
Designation descriptor number 3, descriptor length: 8
designator_type: Relative target port, code_set: Binary
associated with the target port
Relative target port: 0x2
Designation descriptor number 4, descriptor length: 8
designator_type: Target port group, code_set: Binary
associated with the target port
Target port group: 0x1

위의 0x60으로 시작하는 숫자는 ui 값이며, 아래쪽의 13은 LUN 번호다. 다만 16진수 13이므로, 이것을 10진수로 변환하면 19가된다. 그러므로, 스토리지의 LUN 19번이된다.

아래와 같은 커맨드 조합으로, 모든 스토리지 디스크의 lun을 알 수 있으며, multipath로 연결된 경우는 어느 디스크가 같은 디스크인지도 알 수 있게 된다.

# ls /dev/sd? | grep -v sda | awk ‘{print “sg_inq -i “$1″ |grep -i \” 00\””}’ | sh -v
sg_inq -i /dev/sdb |grep -i ” 00″
00 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00
sg_inq -i /dev/sdc |grep -i ” 00″
00 00 00 00 00 00 00 00 00 13 00 00 00 00 00 00
sg_inq -i /dev/sdd |grep -i ” 00″
00 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00
sg_inq -i /dev/sde |grep -i ” 00″
00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00
sg_inq -i /dev/sdf |grep -i ” 00″
00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00
sg_inq -i /dev/sdg |grep -i ” 00″
00 01 00 00 00 00 00 00 00 05 00 00 00 00 00 00
sg_inq -i /dev/sdh |grep -i ” 00″
00 02 00 00 00 00 00 00 00 04 00 00 00 00 00 00
sg_inq -i /dev/sdi |grep -i ” 00″
00 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00

위의 결과로, sdb/sdc, sdd/sdg, sde/sdh, sdf/sdi 가 동일한 디스크임을 알 수 있다.

LUN  number 만 나오도록 좀더 수정하면,

# ls /dev/sd? | grep -v sda | awk ‘{print “sg_inq -i “$1″ |grep -i \” 00\””}’ | sh -v | cut -f19 -d ‘ ‘
sg_inq -i /dev/sdb |grep -i ” 00″
13
sg_inq -i /dev/sdc |grep -i ” 00″
13
sg_inq -i /dev/sdd |grep -i ” 00″
05
sg_inq -i /dev/sde |grep -i ” 00″
04
sg_inq -i /dev/sdf |grep -i ” 00″
00
sg_inq -i /dev/sdg |grep -i ” 00″
05
sg_inq -i /dev/sdh |grep -i ” 00″
04
sg_inq -i /dev/sdi |grep -i ” 00″
00

답글 남기기

Your email address will not be published.