소개
이 문서에서는 다양한 유형의 디스크 오류, 분류 방법 및 이러한 오류를 식별하는 데 사용할 수 있는 툴에 대해 설명합니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서의 정보는 UCS(Unified Computing System)의 하드 디스크를 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우, 모든 명령어의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
또한 드라이브에서 중간 오류를 식별할 때 HDD(Hard Disk Drive)와 RAID(Redundant Array of Independent Disks) 컨트롤러의 역할에 대해 설명합니다.
참고: 미디어 오류는 미디어 오류라고도 합니다
HDD 중간 오류 처리
HDD 중간 오류의 원인
중간 오류의 가장 일반적인 원인은 신호 진폭이 낮아
- 신뢰할 수 없는 LBA(Logical Bus Address) 읽기 위치입니다. 여러 번 다시 시도하면 복구 가능한 경우도 있습니다.
- 일시적인 조건, 부드러운 입자에 의해 발생 높은 플라이 쓰기입니다.
- 오프 트랙 쓰기로 이어지는 일시적인 충격, 진동 또는 음향 이벤트로 인해 발생하는 일시적인 상태입니다.
- HDD 제조에서 불량한 오류 맵 기능으로 현재 주요 결함 위치를 패딩합니다.
HDD에서 중간 오류를 어떻게 감지합니까?
1단계 HDD는 주기적으로 백그라운드 미디어 검사를 수행하여 오류를 감지합니다.
2단계. HDD가 미디어에서 읽기를 시도하며 어떤 이유로 인해 기록된 데이터를 검색할 수 없습니다.
3단계. HDD가 기록된 데이터를 검색할 수 없는 경우 미디어에서 데이터를 성공적으로 읽기 위해 다양한 오류 복구 단계를 시도하는 HDD 복구 코드를 호출합니다.
4단계. 모든 복구 단계가 실패하면 드라이브는 호스트에 03/11/0x 오류를 다시 발생하며 LBA는 보류 중인 결함 목록에 배치됩니다.
Raid 컨트롤러는 어떻게 중간 오류를 탐지합니까?
- RAID 컨트롤러에서 패트롤 읽기, 일관성 검사, 정상 읽기, 재구축 및 읽기/수정/쓰기 작업을 수행하는 동안 중간 오류가 발생합니다.
- RAID 컨피그레이션에 따라 컨트롤러는 HDD에서 보고된 미디어 오류를 처리할 수 있으며 추가 작업은 필요하지 않습니다.
- 경우에 따라 컨트롤러에서 미디어 오류를 처리할 수 없으며 오류를 처리하기 위해 호스트에 오류를 전달합니다.
운영 체제(OS)에 중간 오류가 발생하는 경우는 언제입니까?
- HDD에서 중간 오류를 보고하고 RAID 컨트롤러에서 복구를 처리할 수 없는 경우 호스트에 오류 메시지가 표시됩니다.
- 이 알림은 HDD 및 RAID 컨트롤러가 중간 오류에서 복구할 수 없었기 때문에 OS가 작동하라는 요청이므로, 더 이상 이벤트가 발생했음을 시스템에 알리는 권고 메시지가 아닙니다.
- OS에 미디어 오류를 올바르게 해결하는 데 필요한 컨텍스트가 있는 경우 OS에서 처리해야 합니다
- 디스크가 JBOD(Just a Bunch Of Disk)에 있는 경우 컨트롤러에서 수정하지 않으므로 OS에 오류가 표시됩니다. 이는 HyperFlex(HX)/VSAN(Virtual Storage Area Network) 환경에서 흔히 볼 수 있습니다.
HDD 역할
성장 결함(G-list) HDD 레벨
드라이브가 작동하는 동안, 헤드는 자기 판독 레벨이 약해진 섹터를 마주칠 수 있습니다. 데이터는 여전히 읽을 수 있지만 적합한 섹터 읽기 수준에 대한 권장 임계값 아래로 떨어질 수 있습니다. 이 디스크 드라이브는 이 데이터를 알려진 정상 예약 목록에서 사용 가능한 새 위치에 저장할 수 있고 섹터로 간주할 수 있습니다. 데이터를 이동한 후에는 기존 섹터 주소가 Grow Defect 목록에 추가되고 다시 사용되지 않습니다. 이 프로세스는 복구 가능한 미디어 오류입니다. 정상 작동이 확인된 예비 섹터의 대부분이 소진되면 드라이브에서 SMART 트리거가 제공됩니다.
RAID 컨트롤러 역할
패트롤 읽기
- 패트롤 읽기는 백그라운드에서 드라이브 읽기를 수행하고 드라이브의 불량 영역을 매핑하는 사용자 정의 가능한 옵션입니다.
- Patrol Read(패트롤 읽기)는 드라이브 장애로 이어질 수 있는 물리적 디스크 오류를 확인합니다. 이러한 검사에는 일반적으로 시정 조치 시도가 포함됩니다. 패트롤 읽기는 자동 또는 수동 활성화로 활성화하거나 비활성화할 수 있습니다.
- 패트롤 읽기는 컨트롤러에 연결된 물리적 디스크의 모든 섹터를 정기적으로 확인하며, 여기에는 RAID 구성 드라이브에 있는 시스템 예약 영역이 포함됩니다. 패트롤 읽기는 모든 RAID 레벨 및 모든 핫 스페어 드라이브에 대해 작동합니다.
- 이 프로세스는 RAID 컨트롤러가 정의된 시간 동안 유휴 상태이고 다른 백그라운드 작업이 활성 상태가 아닌 경우에만 시작되지만, 무거운 입출력(I/O) 프로세스와 동시에 계속 실행할 수 있습니다.
- JBOD에 구성된 드라이브에서는 패트롤 읽기를 수행할 수 없습니다.
참고:LSI(Latent Semantic Indexing)에서는 최상의 시스템 성능을 위해 패트롤 읽기 빈도 및 기타 패트롤 읽기 설정을 기본값으로 둘 것을 권장합니다. 값을 변경하기로 결정한 경우 나중에 복원할 수 있도록 여기에 원래 기본값을 기록합니다.
참고: Patrol Read는 실행 시 진행 상황을 보고하지 않습니다. 패트롤 읽기 상태는 이벤트 로그에만 보고됩니다.
Patrol Read(패트롤 읽기) 옵션은 그림과 같습니다.
MegaCli 예
패트롤 읽기 상태 및 패트롤 읽기 실행 간 지연에 대한 정보를 보려면 다음을 수행합니다.
# MegaCli64 -AdpPR -Info -aALL
현재 패트롤 읽기 속도를 확인하려면 다음을 실행합니다.
# MegaCli64 -AdpGetProp PatrolReadRate -aALL
자동 패트롤 읽기를 비활성화하려면
# MegaCli64 -AdpPR -Dsbl -All
자동 패트롤 읽기를 활성화하려면
#MegaCli64 -AdpPR -EnblAuto -aALL
수동 패트롤 읽기 스캔을 시작하려면
# MegaCli64 -AdpPR -시작 -모두
패트롤 읽기 검사를 중지하려면
# MegaCli64 -AdpPR -중지 -모두
일관성 검사
- RAID에서 Consistency Check는 어레이의 중복 데이터의 정확성을 확인합니다. 예를 들어 패리티가 있는 시스템에서 일관성을 확인한다는 것은 데이터 드라이브의 패리티를 계산하고 그 결과를 패리티 드라이브의 내용과 비교하는 것을 의미합니다.
- JBOD는 일관성 검사를 지원하지 않습니다.
- RAID 0은 일관성 검사를 지원하지 않습니다.
- RAID 1은 패리티가 아닌 데이터 비교를 사용합니다.
- RAID 6은 2개의 패리티 드라이브에 대한 패리티를 계산하고 둘 다 확인합니다.
참고: 최소한 한 달에 한 번 일관성 검사를 실행하는 것이 좋습니다.
Consistency Check 관리 옵션은 그림과 같습니다.
일관성 검사 예약 옵션은 이미지에 표시된 것과 같습니다.
MegaCli 예
예약된 다음 정합성 검사 시간을 보려면 다음을 수행합니다.
#MegaCli64 -AdpCcSched -Info -aALL
예약된 일관성 검사 시간을 변경하려면
#MegaCli64 -AdpCCSched -SetSTartTime 20171028 02 -aALL
일관성 검사를 비활성화하려면
#MegaCli64 -AdpCcSched -Dsbl -aALL
RAID 컨트롤러가 중간 오류를 복구할 수 없는 조건
- JBOD
- 호스트 OS는 중간 오류에 대한 책임이 있습니다.
- RAID 0에서
- 이중화가 없으므로 컨트롤러는 LBA에 쓸 데이터를 HDD에 제공할 수 없습니다.
- RAID 1에서
- 컨트롤러가 어떤 미러 복제본에 올바른 데이터가 있는지 알 수 없는 경우. 이는 두 LBA를 모두 읽을 수 있지만 데이터가 일치하지 않는 경우에만 발생합니다.
- RAID 5
- 동일한 스트라이프에 2개 이상의 오류가 있는 경우 스토리지 시스템 재구축이 시작된 후에 발생할 가능성이 높습니다. 재구축되는 드라이브는 하나의 오류이며 다른 드라이브 재구축에서 중간 오류가 두 번째 오류가 됩니다. 컨트롤러는 교체 드라이브에서 LBA를 재구축하는 데 필요한 데이터를 재구성할 수 없습니다.
- RAID 6
- 동일한 스트라이프에 3개 이상의 오류가 있는 경우 스토리지가 재구축되는 동안 발생할 수 있습니다. 재구축되는 드라이브는 하나의 오류이며, 재구축이 진행되는 동안 다른 두 드라이브에서 중간 오류가 발생하면 두 번째와 세 번째 오류 또는 중간 오류와 두 번째 드라이브 오류가 발생합니다. 컨트롤러는 오류가 있는 드라이브에서 LBA를 재구축하는 데 필요한 데이터를 재구성할 수 없습니다.
관련 정보