RAID1 md 어레이에는 2개의 디스크가 있습니다. MDADM은 디스크 오류를 감지하고 에서 디스크를 "실패"시키지만 mdadm
서버가 예기치 않게 다시 시작됩니다. 확인해보니 /proc/mdstat
" mdadm --detail /dev/md0
삭제되었습니다"라고 뜹니다.
일반적으로 디스크가 "실패"로 표시되면 mdadm
디스크 이름이 에 표시되거나 에 표시됩니다. 이를 통해 장애가 발생한 디스크를 쉽게 식별하고 교체를 위해 서버에서 올바른 디스크를 제거할 수 있습니다./proc/mdstat
(F)
mdadm --detail /dev/md0
그러나 재부팅 후 mdadm
드라이브가 mdadm 배열에서 자동으로 "제거"되면 실패한 디스크는 이러한 명령에 표시되지 않습니다. 각 드라이브를 반복하여 UUID 배열이 포함된 mdadm 헤더를 찾을 수 있다는 것을 알고 있지만 어떤 경우에는 올바른 드라이브에서도 mdadm --examine /dev/dm-*
표시되는 것을 볼 수 있습니다 (다른 테스트 서버에서는 드라이브가 무엇인지 정확히 알고 있습니다). mdadm: No md superblock detected on xxx
) 디스크 이름은 다음과 같습니다)
그래서 내 질문은 m이 자동으로 디스크 이름을 삭제할 때 실패한 디스크 이름을 어떻게 일관되게 식별할 수 있느냐는 것입니다 mdad
( mdadm
이것은 "실패"한 다음 서버가 어떻게든(또는 의도적으로) 다시 시작될 때만 발생한다는 점을 알아차렸습니다).
답변1
디스크의 가능한 오류 모드 중 하나는 디스크가 완전히 응답하지 않아 후속 재부팅 시 디스크를 감지할 수 없다는 것입니다. 커널에 관한 한 디스크는 플러그가 뽑힌 것처럼 보입니다.
따라서 이 상황에서 오류가 발생한 디스크를 식별하는 완전히 일반적이고 신뢰할 수 있는 유일한 방법은 제거: 오류가 발생한 모든 디스크를 나열하는 것입니다.예작업(예: lsblk -o +SERIAL,MODEL
디스크 일련 번호와 모델 이름을 목록에 포함)한 다음 실제 디스크를 찾습니다.아니요목록에.
lsblk
시스템이 여전히 장애가 발생한 디스크를 감지할 수 있는 경우 장치에 파티션이 있을 수도 있고 없을 수도 있지만 연결된 마운트 지점이 없고 RAID 세트와 더 이상 연결되어 있지 않기 때문에 출력에서도 상당히 명확해야 합니다. .
일부 디스크는 내부 자체 테스트에 실패하면 크기를 0으로 보고하기 시작하므로 여기서도 SIZE
출력 열이 유용합니다.lsblk