hp Smart Array CLI 사용해서 논리드라이브 복구(Linux)

* 주의 : 최신 Smart Array 리눅스 드라이버는 cciss가 아니라 hpsa이다. rhel/CentOS 6 이상에서는 hpacucli가 아니라 hpssaducli를 사용해야 한다. 사용방법은 아래와 거의 비슷하다. 
한가지 추가하면 Smart Array에 최신 SSD를 장착하면 CLI에서 제대로 인식이 안된다. Intel SSD를 장착했는데 CLI에서 ID가 제대로 보이지 않아 결국 재부팅해야 했다.
2015. 05. 08

2009년 Smart Array P410의 Firmware version 2.X대 시절 논리드라이브는 쉽게 망가지는 그런 것이었다. 버전이 5.X가 되었음에도 불구하고, 가끔 논리 드라이브가 망가지는 경우가 있다. 디스크 1개를 Raid0로 설정해서 사용하는데(이렇게 쓰는 경우는 드물지만) 논리드라이브만 망가졌을 경우 대부분 논리라이브 강제 복구만으로 해결된다. 아래는 Linux가 설치된 서버에서 hp의 Smart Array CLI 툴인 hpacucli를 이용해서 리부팅 없이 논리드라이브를 복구하는 방법을 설명한다.
물리디스크에 문제가 없다면 데이터는 복구할 가능성이 크다. P410 외 다른 Smart Array에서도 증상이 같다면 아래 방법으로 해결 가능할 것으로 생각된다.

1. hpacucli(HP Array Configuration Utility CLI for Linux) 다운로드 & 설치
hpacucli는 linux shell에서 HP Smart Array의 상태를 확인하고, 관리할 수 있는 툴이다. 아래 링크에서 최신버전을 다운 받는다. 아래 링크에 문제가 있을 경우 구글에서 검색해서 hp 홈페이지에서 다운로드 한다.
다운로드 페이지(2013/02/05)

hpacucli는 rpm 패키지로 제공되므로 rpm 명령으로 쉽게 설치할 수 있다.
>rpm -Uvh hpacucli-VERSION.rpm

2. 논리드라이브 장애시 증상

fdisk 명령으로 확인하면 이전에 있었던 드라이브가 보이지 않는다. 아래 fdisk의 결과에서 c0d1 디스크가 사라진 것을 볼 수 있다.

> fdisk -l | grep Disk
Disk /dev/cciss/c0d0: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d2: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d3: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d4: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d5: 750.1 GB, 750122819584 bytes

또한 물리드라이브에는 이상이 없고, 논리드라이브 중 한개의 상태가 Failed로 되어 있는 것을 확인할 수 있다.

> hpacucli
HP Array Configuration Utility CLI 8.75-12.0
Detecting Controllers...Done.
Type "help" for a list of supported commands.
Type "exit" to close the console.

=> ctrl slot=0 pd all show status
  physicaldrive 1I:1:1 (port 1I:box 1:bay 1, 750 GB): OK
  physicaldrive 1I:1:2 (port 1I:box 1:bay 2, 750 GB): OK
  physicaldrive 1I:1:3 (port 1I:box 1:bay 3, 750 GB): OK
  physicaldrive 1I:1:4 (port 1I:box 1:bay 4, 750 GB): OK
  physicaldrive 2I:1:5 (port 2I:box 1:bay 5, 750 GB): OK
  physicaldrive 2I:1:6 (port 2I:box 1:bay 6, 750 GB): OK
Physical Drive에는 문제가 없음

=> ctrl slot=0 ld all show status
  logicaldrive 1 (698.6 GB, RAID 0): OK
  logicaldrive 2 (698.6 GB, RAID 0): Failed
  logicaldrive 3 (698.6 GB, RAID 0): OK
  logicaldrive 4 (698.6 GB, RAID 0): OK
  logicaldrive 5 (698.6 GB, RAID 0): OK
  logicaldrive 6 (698.6 GB, RAID 0): OK

3. 논리드라이브 복구
Physical Drive에는 문제가 없으나 Logical Drive중 하나가 Failed상태면 아래와 같이 논리드라이브를 복구한다.

=> ctrl slot=0 ld 2 modify reenable forced
=> exit
> partprobe #요거 중요함
> fdisk -l | grep Disk
Disk /dev/cciss/c0d0: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d1: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d2: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d3: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d4: 750.1 GB, 750122819584 bytes
Disk /dev/cciss/c0d5: 750.1 GB, 750122819584 bytes


4. 링크
* 기타 hpacucli 명령 설명 : http://www.datadisk.co.uk/html_docs/redhat/hpacucli.htm (명령들 설명- 이 글 관련해선 'reenable forced' 명령을 잘 확인할 것)

댓글

이 블로그의 인기 게시물

mysql DATETIME형의 기본값으로 현재시간 설정

FIX::장치가 더 이상 응답하지않거나 연결이 끊어졌습니다.

FIX :: LACP bonding 구성시 트래픽이 한쪽 포트로 몰리는 현상