Adaptec 레이드카드를 통해 레이드 구성시 |
Linux를 사용중에 다음과 같은 에러 메시지가 있을시에 해결 방법
에러 내용 :
aacraid: Host adapter abort request (4,0,1,0)
aacraid: Host adapter reset request. SCSI hang ?
* 하드디스크, 인클로저, 백플레인, 케이블 등의 원인으로도 이런 에러 메시지가 나타날 수 있습니다. 그런 경우는 해당 장비를 점검하고 문제가 없는 것으로 교체하셔야 합니다.
* 이런 비슷한 에러에 대해 Adaptec 뿐만 아니라 다른 회사의 RAID카드에도 같이 적용이 가능합니다.
아래 설명은, 소프트웨어적인 부분에서 이런 문제가 나타날 경우에 대한 설명입니다.
해결 방법 :
RAID 컨트롤러들은 timeout/recovery 사이클에 기초를 두고 있습니다. 이것은 대략 35초 + 알파의 시간입니다.
* Timeout 사이클 동안, 컨트롤러는 하드디스크로부터 응답을 기다리게 됩니다.
하드디스크가 문제가 없을 경우는 아주 빠른 응답을 하기 때문에 상관이 없습니다.
하지만, 하드디스크가 문제가 있을 경우, 하드디스크 내부에서 딜레이를 일으키게 되는 데, 컨트롤러는 위의 Timeout 값만큼 기다리게 됩니다.
일반적으로 실제적인 Hang 에러는 하드디스크나 백플레인의 에러 기인한 경우가 많습니다.
따라서, 아래의 해결 방법은 OS 쪽에서 설정값이 작은 경우에 대한 해결 방법을 설명합니다.
과거에 몇몇의 SCSI 서브시스템들은 디폴트로 60초 였습니다. (SAS/SATA 모두 SCSI 서브시스템을 사용합니다.)
하지만, 지금은 표준으로 30초가 사용됩니다. 이것은 컨트롤러와 Linux의 SCSI 서브 시스템간의 간섭 패턴에 기인한 것입니다.
("Linux의 SCSI 서브시스템"은 하드웨어를 말하는 것이 아니라, OS 내부의 소프트웨어적인 인터페이스 계층을 의미합니다.)
SYSFS에서 timeout 이 35초 보다 작다면 이를 수정하여, 이 문제를 피해갈 수 있습니다.
Linux 블럭디바이스(Block Device)의 Timeout 값은 SYSFS를 통해 변경될 수 있습니다.
예를 들면, 만약 /dev/sdc , /dev/sdd , /dev/sde 가 Linux 호스트에 연결된 디바이스 LUN이라면 다음과 같이 수정할 수 있습니다.
echo 45 > /sys/block/sdc/device/timeout
echo 45 > /sys/block/sdd/device/timeout
echo 45 > /sys/block/sde/device/timeout
위의 예에서 Timeout 값은 45초 이며, 이 정도면 충분한 값입니다.
Note:
모든 RAID 카드들은 TImeout 사이클을 가지고 있습니다. 따라서 위의 해결 방법으로도 계속 같은 에러가 발생한다면, 이것은 사용자가 가지고 있는 시스템의 하드웨어적인 문제일수 있습니다.
예를 들면, 하드디스크가 계속 딜레이를 일으킨다면, Hang 에러의 원인이 될 수 있습니다.
- 모든 펌웨어를 업데이트 하십시오.
마더보드, 컨트롤러, 타겟장치(HDD), 인클로저, 백플레인, 기타 ….
- SYSFS에서 각각의 디바이스의 Queue depth를 체크하십시오.
- 하드디스크 제조사에 문의하십시오.
어떤 하드디스크는 RAID에 사용하는데 부적절한 경우가 있습니다.
또한, 하드디스크의 고장일 수 있습니다.(자주 딜레이 발생또는 디스크 다운)
- 인클로저를 사용하신다면, 해당 제조사에 문의하십시오.
인클로저에 있는 백플레인에서 시그널 오류를 일으킬 수 있습니다.
백플레인의 고장이거나, 호환성 이슈가 있을수 있습니다.
- 출처 : 앤디코