내 소프트웨어 RAID5(mdadm) 시스템은 5개의 디스크로 구성되어 있습니다. 최근 특정 파일을 읽을 때 I/O 오류가 발생합니다. 다른 파일의 대부분은 여전히 읽을 수 있습니다.
처음에는 어느 디스크가 고장났는지 알아내고(smartctl을 이용해) 고장난 디스크를 빠르게 교체해 다른 디스크도 고장나기 전에 어레이를 재구축할 계획이었다. 그러나 smartctl은 다음을 보여줍니다.삼디스크에 수정할 수 없는 오류가 있습니다.
저는 이 세 디스크의 불량 섹터가 교차하지 않는 한 mdadm이 계속 재구축할 수 있어야 한다고 생각합니다. 이를 통해 하나씩 교체하고 재구축할 수 있는 옵션이 제공됩니다.
아니면 I/O 오류가 발생했다는 사실은 이미 패리티가 손실되어 여러 디스크의 동일한 섹터를 읽을 수 없다는 것을 의미합니까? 실패한 섹터가 교차하여 정보가 되돌릴 수 없게 손실되는지 여부를 확인할 수 있는 방법이 있습니까?
답변1
표준 절차는 다음과 같습니다.
- 항상 좋은 최신 정보를 얻으십시오.지원(적어도 다른 매체에, 서로 다른 위치에 있는 최소 두 개의 독립 사본)
- 계속해서감시 장치RAID에 문제가 있는지 확인하세요. 오류가 누적되면 RAID는 쓸모가 없습니다.
- 미사일 발사 중지최소한 매달 디스크. 이렇게 하면 오류가 누적되는 것을 방지하고 재구축을 방지할 수 있습니다.
- 고려하다RAID 6두 개의 중복 디스크가 있습니다.
당신은 이 문제를 심각하게 받아들이지 않는 것 같습니다. 아직 남아 있는 것을 복구해 보세요.지금. 거의 실패할 뻔한 어레이를 재구축하려고 하면 예상보다 더 많은 피해가 발생할 수 있습니다.
데이터의 가치가 충분히 높다면 신뢰할 수 있고 유능한 데이터 복구 서비스를 찾으세요. 4~5자리 금액의 현금을 따로 보관해 두세요. 그렇지 않으면 헹구고 반복하십시오. 디스크를 교체하고 다시 포맷하고 다시 설치하고 표준 절차를 더욱 진지하게 수행하십시오.
답변2
읽을 수 없는 섹터가 "교차하지 않는" 경우, 즉 다른 스트라이프에 있는 경우 MD RAID가 맞습니다.5월패리티를 사용하여 데이터를 복구합니다. 그러나 회복 중에 일부 드라이브가 중단될 수 있으며 그 다음에는 기회가 크게 감소합니다.
데이터 복구에는 일반적인 규칙이 있습니다.항상 원시 덤프로 시작. 이는 무제한 시도를 보장합니다. 뭔가를 엉망으로 만들면 덤프로 다시 시작할 수 있습니다. 따라서 일반적으로 죽어가는 디스크를 모두 작동하는 디스크에 복제하고 오류를 읽은 다음 새 디스크에서 RAID를 조립할 수 있습니다.
각 드라이브를 섹터별로 복제하여 교체할 수 있습니다
ddrescue
(예:~ 아니다MD RAID 복구 절차를 사용하여). 오류를 통해 복사하는 것 외에도 소위 말하는 것을 생성합니다.로그 파일, 이는 실제로 불량 섹터 맵입니다. 세 개를 모두 복제하면 해당 지도를 비교하여 교차점이 있는지 확인할 수 있습니다. 버리지 마십시오. 이 지도가 복구 중에 도움이 될 수 있습니다.그러나 RAID5는 이러한 덤프라는 점에서 매우 불쾌한 짐승입니다. 무엇이 잘못될 수 있나요? 드라이브의 섹터가 전혀 읽히지 않아 I/O 오류가 발생하는 경우 RAID 레이어는 다른 디스크에서 해당 데이터를 복구합니다. 오래된 디스크의 경우입니다. 그러나 오류 없이 읽었지만 잘못된 데이터를 반환하는 경우 RAID는 패리티에서 복구를 시도하지 않고 대신 잘못된 데이터를 반환합니다.
ddrescue
읽을 수 없는 섹터를 0으로 채우고 나중에 이 복제 장치로 어레이를 조립하면 다시 읽혀지므로 잠재적으로 원래 데이터를 복구할 수 있는 경우 0(손상된 데이터)을 읽는 것으로 변환됩니다. RAID는 데이터를 보장하지 않습니다진실성. 이는 두 개의 패리티 신드롬이 있는 RAID6이나 두 개 이상의 미러가 있는 RAID1을 제외한 모든 변형의 실제 문제입니다. 그리고 이미 짐작하셨겠지만 이 문제는 RAID5의 경우 가장 파괴적인 방식으로 나타납니다. (최신 디스크 크기와 비트 오류율에 대한 추가 고려 사항이 있습니다.)복제 작업 중에 디스크가 완전히 종료될 수 있습니다. 그럼 당신은 붙어 있습니다. 이 시점 이후에도 복구를 수행할 가능성이 있지만 비용이 많이 듭니다.많이. "클린룸" 서비스가 있으며, 예를 들어 하드 디스크 내부의 헤드를 교체하고 다시 읽을 수 있습니다. 느리고 오류가 발생하기 쉬우며 상당한 비용이 청구될 가능성이 높습니다. 데이터가 매우 귀중한 경우 이를 고려하십시오.
따라서 원본 디스크를 복제한 다음 복제본을 따로 보관하고 디스크에서 어레이를 조립하는 것이 좋습니다.원래의디스크를 삭제하고 어레이 자체에서 복제를 시도합니다(
/dev/mdX
). 문제가 발생하면(디스크가 죽는 경우) 복제본으로 교체하고 나중에 깨진 스트라이프를 수동으로 복구(4페이지 참조)하고 로그 파일을 참조(3페이지 참조)하는 것은 매우 힘든 작업입니다. 또한 여유가 필요하다는 점에 유의하세요.두 배복구를 수행할 원래 공간입니다. 아니면 스스로 아무것도 하지 말고, 모든 작업을 전문가에게 아웃소싱하세요. 이는 어레이와 데이터의 부적절한 유지 관리에 대해 지불하는 대가입니다.그리고 지금, 당신은 이 귀중한 경험을 하게 되었습니다. 배열을 비난하지 말고 자신을 비난하고 교훈을 얻고 올바르게 관리하십시오.
- RAID5를 사용하기 전에 세 번 생각해보세요. 그런 다음 "아니요"라고 말하고 다른 RAID 레벨로 이동합니다.
- 어레이를 정기적으로 스크럽하십시오. 이는 MD RAID가 드라이브의 데이터를 읽고 비교하며 문제가 있는 경우(불일치, 읽을 수 없는 블록) 벨을 울린다는 의미입니다. 그러면 초기 증상에 따라 불량하게 동작하는 드라이브를 교체할 수 있습니다. 좋은 배포판에는 기본적으로 이것이 구성되어 있습니다(적어도 Debian).
- 문제의 중요한 징후를 놓치지 않도록 디스크와 어레이를 모니터링하십시오.
- 마지막으로 정기적으로 데이터를 백업하는 관리자 클럽에 오신 것을 환영합니다.