3개의 디스크(소프트웨어 raid 포함)가 있는 raid5 어레이에 사용되는 오류 전 상태(일부 재할당된 섹터)의 하드 드라이브를 교체하고 싶습니다 mdadm
.
새 하드 드라이브를 핫 스페어로 설정하고 고장난 드라이브에서 스페어로 인계를 시작할 수 있습니까?
일부 방법에서는 드라이브를 추가한 다음 드라이브 오류 명령을 설정하는 것이 좋습니다. 내가 아는 한, 이 상태에서는 raid5의 성능이 저하되고 드라이브 오류가 발생하여 결국...
따라서 패리티 기능을 제거하지 않고 실패한 드라이브에서 예비 드라이브로 데이터를 실시간으로 "복사"(또는 RAID 재구축)하고 복사 또는 재구축 프로세스가 완료된 후 실패한 드라이브를 제거하는 것이 가능합니까? .
답변1
예, 가능합니다.3.2+ 커널). 먼저 새 드라이브를 예비 드라이브로 추가합니다.
mdadm /dev/md0 --add /dev/sdc1
( 및 를 각각 RAID 및 디스크 장치로 md0
교체하십시오 ).sdc1
그런 다음 다음과 같이 복사-바꾸기 작업을 시작합니다.
echo want_replacement > /sys/block/md0/md/dev-sdd1/state
md0
마찬가지로 RAID 장치는 어디에 있고 sdd1
실패한 드라이브는 어디에 있습니까? (실제로 sdd1은 실패한 드라이브의 파티션입니다. 저는 원래 디스크보다는 파티션에 RAID 세트를 생성하는 것을 선호합니다.)
시스템은 에서 으로 읽을 수 있는 모든 블록을 복사 sdd1
합니다 sdc1
. 읽을 수 없는 블록이 발견되면 패리티를 기반으로 블록을 다시 빌드합니다. 작업이 완료되면 이전 예비 드라이브(여기서: sdc1
)가 활성 드라이브가 되고 오류가 발생한 드라이브는 오류(F)로 표시되므로 제거할 수 있습니다.
답변2
RAID 6으로 확장할 수 있습니다. 이렇게 하면 두 드라이브가 모두 실패할 수 있습니다. 기존 디스크를 제거하지 않고 새 디스크를 기존 RAID에 통합합니다.
반면에 이렇게 하면 모든 데이터가 엉망이 됩니다. 따라서 동기화 시간이 더 오래 걸리며 불량 디스크를 제거하고 RAID 5로 되돌리려면 동일한 작업을 다시 수행해야 합니다. 그리고 이러한 데이터 증가와 섞임은 특히 예상치 못한 정전이 발생할 경우 그 자체로 위험을 초래합니다. 또는 단일 드라이브 오류의 경우 오류가 발생한 디스크 없이도 성장이 계속되며, 이 시점에서 해당 "실패한" 디스크의 데이터는 더 이상 나머지 디스크와 동일한 레이아웃을 공유하지 않기 때문에 쓸모 없게 됩니다.
전반적으로 권장되지 않습니다.
가동 시간보다 데이터 보안이 주요 관심사인 경우 RAID5를 사용하고 복구 시스템에서 디스크를 교체하세요. 동기화 중에 드라이브에 오류가 발생하더라도 재동기화 중에 RAID에 아무 것도 기록되지 않으므로 손실되지 않습니다. 아직 잃지 않은 것. 삭제/추가/재동기화를 시작하기 전에 각 디스크의 md 메타데이터를 백업해 두면, 원래 구성으로 쉽게 재조립할 수 있습니다.
대부분의 사람들은 드라이브를 읽고 작동한다고 믿습니다. 작동하지 않으면 백업을 사용해야 합니다.
드라이브가 동시에 실패하는 경우는 거의 없습니다. 대부분의 경우 드라이브는 오래 전에 실패했으며 모니터링 부족으로 인해 이를 전혀 눈치 채지 못했습니다.