RedHat 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[N]/issue_lip
LIP 명령이 적용될 때까지 한 15초 정도 기다립니다.
3) HBA의 SCSI LUN rescan
리눅스가 HBA의 SCSI 장치를 rescan하도록 요청합니다.
echo "- - -" > /sys/class/scsi_host/host[N]/scan
- 간단한 방법 ---------------------------------------------------------------------------------
- cf) 간단하게 위 1~3번을 hp에서 제공하는 fibreutils 패키지를 이용하여 가능
패키지명 : fibreutils-2.4.-3.linux.i386.rpm(172.3.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 확인
- cat /proc/scsi/scsi -> 추가 검색된 Device만큼 LUN 정보가 나타나는지 확인하세요.
또는 qlogic인 경우 /proc/scsi/qla2xxx/ 아래, Emulex인 경우 /proc/scsi/lpfc/ 아래 정보를 확인하세요.
- /var/log/messages 또는 dmesg 정보 확인
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처럼 드라이버를 다시 올려주어야 인식되는 것 같습니다.
아래는 RedHat 에서의 관련 문서입니다. 참고하세요.
-------------------------------------------------------
* RedHat 문서
RedHat Enterprise Linux4에서는 sysfs를 통한 패브릭 재발견(fabric rediscovery)을 지원합니다.
Qlogic(qla2xxx0 및 Emuex(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 tl" > /sys/class/scsi_host/hostn/scan
여기서 b는 버스(bus), t는 목표(target), 그리고 l(엘)은 hostn에서 스캔할 LUN을 의미합니다.
다음 예시에서와 같이 와일드 카드를 사용하는 것도 가능합니다.
echo "- - -" > /sys/class/scsi_host/host2/scan
시스템 운영 중 동적으로 추가된 장치에 할당된 장치명(예, /dev/sdb)은 시스템 재부팅시 달라질 수 있다는 사실을 염두하시기 바랍니다.