[Linux] Red Hat Linux - 시스템 리부팅없이 스토리지 LUN 인식하는 방법
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)은
시스템 재부팅시 달라질 수 있다는 사실을 염두하시기 바랍니다.