Linux mdadm raid 어레이의 드라이브 오류. 돕다!

Linux mdadm raid 어레이의 드라이브 오류. 돕다!

내 시스템이 일종의 치명적인 오류로 인해 어려움을 겪고 있는 것 같습니다. 이제 당황하고 어떻게 해야 할지 모르겠습니다.

3드라이브 RAID 10 어레이가 있습니다. 오늘 아침 나는 배열(모든 사진이 있는 곳)에 액세스하는 데 문제가 있다는 것을 알았습니다. mdadm을 확인해보니 어레이(드라이브 2)에서 하나의 드라이브가 제거되었다고 나와 있습니다. 컴퓨터가 예기치 않게 종료되어(정전) 드라이브가 쫓겨났기 때문일 것이라고 생각했습니다.

드라이브를 다시 추가하려고 시도했는데 작동했습니다. 그런 다음 mdstat로 재구축 진행 상황을 확인했는데 재구축 속도는 10kb/s였습니다. 예. 이 속도로 3TB 드라이브를 재구축하려면 수년이 걸릴 것입니다. dmseg를 확인해보니 드라이브 3에서 많은 I/O 오류가 발생하는 것으로 나타났습니다. 드라이브 3에 일종의 하드웨어 오류가 발생한 것 같습니다. 디스크 유틸리티(gnome, gnome-disk-tool 등에서 나온 것 같습니다)를 사용하여 드라이브 상태를 확인했는데 거의 6000개의 불량 섹터가 있지만 그 외에는 모든 것이 정상이라고 합니다.

이제 저는 드라이브 2가 실제로 여전히 괜찮다고 생각하고 당황하고 있는데, 이제 그것을 읽을 때 다시 동기화되고 있어 좋은 데이터가 파괴될 수도 있습니다. 그런 다음 컴퓨터를 종료해 보았습니다(mdstat가 다시 동기화 중인데도 저장되었다고 읽었습니다).

아쉽게도 종료 기능은 작동하지 않습니다. "ESC"를 누르면 터미널이 표시되고 "print_req_error: I/O 오류, dev sdd, 섹터..." 유형 오류가 표시됩니다. 나는 무엇을 해야할지 모르겠습니다. 등? 이런 상황이 30분 동안 지속됐다.

어떤 제안이 있으십니까?

답변1

이것은 기적입니다. 어떻게 든 어레이를 백업하고 실행했습니다. 이것이 내가 한 일입니다:

  1. 원본 게시물에서 언급했듯이 시스템은 여전히 ​​실패한 드라이브에 쓰려고 하기 때문에 종료되지 않았습니다. 나는 user361233의 조언에 따라 플러그를 뽑았습니다.
  2. 나는 더 이상 당황하지 않습니다. 컴퓨터가 꺼진 상태에서도 다음 단계를 생각할 수 있습니다.
  3. 나는 가서 두 개의 새로운 3TB 드라이브를 구입했습니다.
  4. 나는 잠을 자고 오늘 드라이브가 하나만 연결된 라이브 세션 USB(manjaro)를 사용하여 컴퓨터를 부팅했습니다(그래서 각 디스크에 대해 한 번씩 3번 재부팅했습니다). kde 파티션 관리자를 사용하여 디스크 상태를 확인했습니다. SMART 상태는 모든 디스크가 정상임을 나타냅니다. 그런 다음 어레이의 디스크 3에서 발생한 모든 하드웨어 오류가 적어도 일시적으로 사라지기를 바랍니다.
  5. 세 개의 디스크를 모두 연결하고 재부팅했습니다(다시 라이브 세션 USB를 사용하여). 돌이켜보면 manjaro는 이미 mdadm이 설치되어 있어 어레이(예: /dev/md127)를 부팅하려고 시도하고 있었기 때문에 복구 환경에 대한 최선의 선택이 아니었습니다. 수동으로 어레이를 시작하려고 할 때 이 사실을 발견했습니다.

    mdadm --assemble --scan
    

    이렇게 하면 이미 활성 배열(또는 이와 유사한 것)이 있다고 불평합니다. /dev/md127이 자동으로 시작되는 경우가 있다는 것을 기억하여 해당 배열을 중지하고 수동으로 시작해 보았습니다.

    mdadm --stop /dev/md127
    mdadm --assemble --scan
    

    이것도 작동하지 않습니다. 그런 다음 실제로 어레이를 조립하는 데 사용되는 각 디스크의 파티션을 지정해 보았습니다.

    mdadm  --assemble /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1
    

    작동합니다! 그런 다음 mdadm --examine /dev/md0. 이상한 점은 어레이가 최대 3/3 디스크라고 되어 있다는 것입니다. 확인했을 때 cat /proc/mdstat어레이의 드라이브 2가 재구축되고 있다는 징후는 없었습니다(원래 드라이브 2는 정전 후 어레이에서 쫓겨난 드라이브였음을 기억하십시오). 어떤 종류의 기적이 일어났습니다. 컴퓨터를 종료했을 때 드라이브 2가 매우 느리게 재구축되고 있었는데 이는 실제로는 괜찮았을 것입니다. 그리고 이번에는 mdadm이 어떻게든 이를 어레이에 받아들였습니다.

  6. 그런 다음 어레이에 액세스하여 구입한 새 디스크에 데이터를 복사하려고 했습니다. 작동하지 않습니다. 단순히 디렉토리의 내용을 나열하면 ls명령이 중단됩니다. 이번에도 dmesg디스크 3(\dev\sdd)과 관련된 수많은 I/O 오류가 발생합니다.

  7. 명령 취소를 시도하고 lsCTRL-C를 몇 번 시도한 후 명령 프롬프트가 다시 시작될 때까지 몇 분 정도 기다렸습니다. 이 시점에서 mdadm --examine /dev/md0. 그런 다음 디스크 3에 하드웨어 오류가 있음을 식별하고 해당 디스크를 어레이에서 제거합니다. 이제 어레이에는 디스크 1(/dev/sdb, 완벽하게 정상인 드라이브)과 디스크 2(/dev/sdc, 이 모든 것이 시작될 때 원래 어레이에서 제외된 드라이브)만 있습니다.

  8. 배열에 다시 액세스하려고 시도했는데 이제 작동합니다! 을 사용할 수 ls있으며 파일 브라우저를 사용하여 모든 파일을 나열할 수도 있습니다. 이 시점에서 나는 구입한 추가 드라이브에 중요한 파일을 모두 복사하기 시작했습니다. 이제 이 과정이 거의 끝났습니다.

마지막으로, 정기적으로 별도의 장치에 파일을 백업해야 한다는 점을 상기시켜 드립니다. 예전에는 이런 습관이 있었는데, 지난 1~2년 동안 방치해 두었어요. 이 게시물이 너무 길고 가장 구체적이지 않다면 죄송합니다. 각 명령의 정확한 출력이 기억나지 않습니다.

긴 이야기 짧게나는 컴퓨터를 끄고 당황하지 않았습니다. 그런 다음 문제를 해결하기 위한 계획을 세울 시간을 갖습니다. 이는 최신 백업을 유지하라는 좋은 알림입니다.

답변2

귀하의 질문에 답변하기가 어렵고 의견이 너무 길어서 몇 가지 일반적인 지침만 말씀드리겠습니다.

이제 저는 드라이브 2가 실제로 여전히 괜찮다고 생각하고 당황하고 있는데, 이제 그것을 읽을 때 다시 동기화되고 있어 좋은 데이터가 파괴될 수도 있습니다.

커널 오류가 없으면 디스크를 다시 추가하십시오(이전과 동일한 역할과 동일한 오프셋으로)는 데이터를 "파기"하지 않습니다. 이미 존재했던 동일한 데이터의 대부분을 다시 작성하므로 손상이 발생하지 않습니다.

  • 어레이에서 여러 드라이브가 누락된 경우 역할이 변경될 수 있습니다.
  • 오프셋은 일반적으로 sdx이전 값을 추가할 때만 변경됩니다.sdx1
  • 매우 운이 좋지 않은 경우 이전에 이상한 상태였다면 오프셋도 변경될 수 있습니다.

드라이브가 문제가 없더라도 킥된 드라이브의 주요 문제는 해당 드라이브가 더 이상 어레이의 일부가 아니라는 것입니다. 어레이가 쓰기 모드로 마운트되면 어레이의 데이터가 수정되고 삭제된 드라이브의 데이터가 업데이트되지 않으므로 오래되어 더 이상 "양호"하지 않습니다.

디스크 유틸리티(gnome, gnome-disk-tool 등에서 나온 것 같습니다)를 사용하여 드라이브 상태를 확인했는데 거의 6000개의 불량 섹터가 있지만 그 외에는 모든 것이 정상이라고 합니다.

드라이브에 문제가 발생하면 데이터를 복구할 수 없습니다. 6,000개의 불량 섹터가 하룻밤 사이에 나타나지 않았다면 오래 전에 해당 드라이브를 교체했을 것입니다. 직접 테스트하지 않으면 가능한 한 빨리 오류가 발생한 드라이브를 모니터링하고 교체합니다. 그러면 RAID가 실패합니다.

ddrescue기존 드라이브에서 복사할 수 있는 새 드라이브를 구입 한 다음Copy-On-Write 오버레이를 사용한 데이터 복구 실험. 덮어쓰기를 사용하면 원본 파일을 수정하지 않고 쓸 수 있습니다(따라서 새 디스크 복사본을 만들 필요가 없고 복사본의 복사본도 필요하지 않습니다). 그러나 덮어쓰기에는 작동 중인 드라이브가 필요하며 결함이 있는 드라이브를 사용하면 덮어쓰기를 수행할 수 없습니다.

관련 정보