Red Hat Linux에서 시스템을 리부팅하지 않고, SCSI LUN 인식하는 방법입니다.


1) HBA 호스트번호 확인

host bus adapter(HBA)의 호스트 넘버를 알기 위해서 다음 명령을 실행합니다

ls /sys/class/fc_host/

host0 또는 host1, host2 같은 결과를 보실 수 있습니다.


 

2) HBA 채널을 다시 스캔 (LUN만 새롭게 rescan할 경우에는 필요 없습니다.)

FC bus를 다시 스캔하기 위해서 HBA가 LIP 시그널을 보내도록 요청합니다   

echo "1" >/sys/class/fc_host/host$NUMBER/issue_lip

LIP명령이 적용될 때까지 한 15초 정도 기다립니다


 

3) HBA의 SCSI LUN rescan

리눅스가 HBA의 SCSI 장치를 rescan하도록 요청합니다

echo "- - -" >/sys/class/scsi_host/host$NUMBER/scan

example:

echo "- - -" > /sys/class/scsi_host/host0/scan



 - 간단한 방법 -

------------------------------------------------------------------------------------------|

|cf) 간단하게 위 1~3번을 hp에서 제공하는 fibreutils 패키지를 이용하여 가능                          | 

|                                                                                                                                      |

|    패키지명 : fibreutils-2.4-3.linux.i386.rpm (172.31.72.75:/DBMS/ERP/AppFile 에 있습니다.)    |

|    1) 패키지 설치 : rpm -Uvh fibreutils-2.4-3.linux.i386.rpm -> /opt/hp/hp_fibreutils 에 설치됨   |

|      패키지 설치여부 확인 : rpm -qa | grep -i fibreutils                                                         |

|                                                                                                                                      |

|    2) /opt/hp/hp_fibreutils/hp_rescan -a (LUN detect 커맨드)                                               |

|_________________________________________________________________________________________|   



4) 추가된 SCSI Device 확인

  1. cat /proc/scsi/scsi -> 추가 검색된 Device만큼 LUN 정보가 나타나는지 확인하세요.

     또는 qlogic인 경우 /proc/scsi/qla2xxx/ 아래, Emulex인 경우 /proc/scsi/lpfc/ 아래 정보를 확인하세요.

  2. /var/log/messages 또는 dmesg 정보 확인


example:

  Vendor: VMware    Model: Virtual disk      Rev: 1.0

  Type:   Direct-Access                      ANSI SCSI revision: 02

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: unknown partition table

Attached scsi disk sdc at scsi0, channel 0, id 2, lun 0

Attached scsi generic sg2 at scsi0, channel 0, id 2, lun 0,  type 0

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: sdc1

SCSI device sdc: 20971520 512-byte hdwr sectors (10737 MB)

sdc: cache data unavailable

sdc: assuming drive cache: write through

 sdc: sdc1


 

5) fdisk -l, cat /proc/partitions 로 확인

   => 정상적으로 해당 디바이스가 커널에 인식되었는지 확인

      위 4번의 경우 /dev/sdc가 fdisk -l, cat /proc/partitions에 나타나는지 확인

   


6) 해당 디바이스를 partitioning 하고 파일시스템 구성하여 사용

이 방법은 지금까지 사용하면서 문제가 된 적은 없지만,

여전히 가장 권고하는 방법은 Rebooting이라고 하네요.

그리고 Suse 리눅스의 경우, 위 방법으로는 안되는 것 같습니다.

QLogic HBA인 경우, 파일시스템을 unmount한 후에

modprobe -r qla2xxx 처럼 드라이버를 내렸다가
modprobe qla2xxx처럼 드라이버를 다시 올려주어야 인식되는 것 같습니다.



아래는 Red Hat에서의 관련 문서입니다. 참고하세요.  


=============================================================================================

※ Red Hat 문서

Red Hat Enterprise Linux 4에서는 sysfs를 통한 패브릭 재발견(fabric rediscovery)을 지원합니다.

Qlogic (qla2xxx) 및 Emulex (lpfc) Fibre Channel HBA 드라이버의 경우,

다음과 같은 명령을 실행하여 새로운 스토리지를 재발견하고 재스캔할 수 있습니다:


echo "1" > /sys/class/fc_host/hostXYZ/issue_lip

echo "- - -" > /sys/class/scsi_host/hostXYZ/scan


여기서 XYZ는 여러분 HBA의 scsi 호스트 번호를 의미합니다.


시스템 운영 중 새로운 목표 장치가 추가되면 운영 체제가 자동으로 검색합니다.

다른 설정을 사용시, 새로운 목표 장치를 검색하기 위해서는 다음과 같은 명령을 입력하셔야 합니다:

echo 1 > /sys/class/fc_host/hostn/issue_lip

여기서 hostn은 적절한 어댑터 이름을 입력하시면 됩니다.


특정 목표 장치에서 새로운 로직 유닛(Logic Unit)이 생성될 경우,

다음과 같은 명령을 입력하셔야 새로운 로직 유닛을 검색하고 설정할 수 있습니다:

echo "b t l" > /sys/class/scsi_host/hostn/scan


여기서 b는 버스(bus), t는 목표(target), 그리고 l은 hostn에서 스캔할 LUN을 의미합니다.


다음 예시에서와 같이 와일드 카드를 사용하는 것도 가능합니다:

echo "- - -" > /sys/class/scsi_host/host2/scan


시스템 운영 중 동적으로 추가된 장치에 할당된 장치명 (예, /dev/sdb)은

시스템 재부팅시 달라질 수 있다는 사실을 염두하시기 바랍니다.


+ Recent posts