매체 오류 및 잘못된 블록 이해

스토리지 시스템은 블록을 성공적으로 읽을 수 없는 경우 호스트에 매체 오류 응답을 리턴합니다. 호스트 읽기에 대한 시스템 응답은 이러한 작동 방식을 따릅니다.

시스템은 관리 디스크(MDisk)에 있는 익스텐트에서 볼륨을 할당합니다. MDisk는 외부 스토리지 제어기 또는 내부 드라이브에서 작성된 RAID 어레이의 볼륨일 수 있습니다. 어떤 경우든, 사용되는 RAID 레벨에 따라 하나의 드라이브에 대한 읽기 오류를 방지하는 기능이 있습니다. 그러나 여러 드라이브에 오류가 있거나 또는 다른 문제로 인해 드라이브를 다시 빌드 중이거나 오프라인 상태인 경우에는 읽기 요청 시 매체 오류가 발생할 수 있습니다.

시스템은 하나의 기본 물리적 스토리지 세트에서 다른 세트로 볼륨을 이동하거나 메트로 미러 또는 글로벌 미러를 사용하는 볼륨을 복제하기 위한 마이그레이션 기능을 제공합니다. 이러한 모든 경우에 마이그레이션된 볼륨 또는 복제된 볼륨은 원래 볼륨의 논리 블록 주소를 읽을 때 호스트에 매체 오류를 리턴합니다. 시스템은 잘못된 블록 테이블을 유지하여 읽을 수 없는 논리 블록 주소가 있는 위치를 기록합니다. 이 테이블은 볼륨 스토리지를 제공하는 MDisk와 연관됩니다.

dumpmdiskbadblocks 명령 및 dumpallmdiskbadblocks 명령은 잘못된 블록 위치를 조회하는 데 사용할 수 있습니다.
중요사항: dumpmdiskbadblocks는 작성된 가상 매체 오류를 출력하고 MDisk나 드라이브의 실제 매체 오류 목록은 출력하지 않습니다.

잘못된 블록 위치를 기록하는 데 사용되는 테이블을 채울 수 있습니다. 이 테이블은 MDisk 또는 시스템에서 전체가 채워질 수 있습니다. 테이블이 채워지지 않으면 소스 볼륨과 정확히 일치하는 이미지를 작성할 수 없기 때문에 잘못된 블록을 작성하는 마이그레이션 또는 복제가 실패합니다.

다음과 같은 경우 시스템에서 이벤트 로그에 경보를 작성합니다.
  • 매체 오류를 발견하고 잘못된 블록을 작성하는 경우
  • 잘못된 블록 테이블이 채워지는 경우

표 1에는 잘못된 블록 오류 코드가 있습니다.

표 1. 잘못된 블록 오류
오류 코드 설명
1840 관리 디스크에 잘못된 블록이 있습니다. 외부 제어기에서는 이 오류가 복사된 매체 오류여야 합니다.
1226 MDisk가 허용된 최대 잘못된 블록 수에 이미 도달했으므로 시스템에서 잘못된 블록을 작성하는 데 실패합니다.
1225 시스템이 허용된 최대 잘못된 블록 수에 이미 도달했으므로 시스템에서 잘못된 블록을 작성하는 데 실패합니다.

이 경보에 대한 권장 조치로 해당 상황을 해결할 수 있습니다.

잘못된 블록은 볼륨 디스크 익스텐트를 할당 해제하거나 볼륨을 삭제하거나 블록에 대한 쓰기 I/O를 실행하는 방식으로 지울 수 있습니다. 잘못된 블록이 발견되는 대로 수정하는 것이 좋습니다. 이러한 조치로 볼륨이 복제되거나 마이그레이션될 때 잘못된 블록이 전파되는 것을 방지할 수 있습니다. 하지만 잘못된 블록은 애플리케이션에서 사용하지 않은 볼륨에 포함될 수 있습니다. 예를 들어, 잘못된 블록이 초기화되지 않은 데이터베이스에 포함될 수 있습니다. 이러한 잘못된 블록은 애플리케이션이 해당 영역에 데이터를 쓸 때 수정됩니다. 수정이 이루어지기 전까지 잘못된 블록 레코드는 계속 사용 가능한 잘못된 블록 공간을 사용합니다.