성장 작업 후 mdraid가 재동기화되는 이유는 무엇입니까?

성장 작업 후 mdraid가 재동기화되는 이유는 무엇입니까?

저는 최근 mdadm raid1 볼륨으로 구성된 NAS를 확장하기로 결정했습니다. 디스크 슬롯은 제한되어 있으므로 프로세스는 대략 다음과 같습니다.

  1. 디스크 중 하나를 꺼내서 더 큰 디스크로 교체하세요.
  2. 질문mdadm /dev/md0 --add /dev/sda1
  3. 새 디스크에서 재동기화가 완료될 때까지 기다립니다.
  4. 다른 디스크를 꺼내서 교체하세요.
  5. 질문mdadm /dev/md0 --add /dev/sdb1
  6. 재동기화가 완료될 때까지 기다리기
  7. 질문mdadm /dev/md0 --grow --size=max

7단계가 필요합니다. 그렇지 않으면 md0이 이제는 더 큰 디스크에 완전히 상주하더라도 이전 크기로 유지되기 때문입니다.

내 질문은 mdadm7단계 후에 다시 동기화해야 하는 이유는 무엇입니까? 어떤 데이터를 어디에서 어디로 동기화하고 있나요? 이전 볼륨의 모든 데이터는 2단계와 5단계 이후의 재동기화 프로세스 중에 완전히 동기화되었으므로 7단계 이후의 유일한 새 데이터는 디스크의 두 번째 절반에 있는 정크를 교체하는 것뿐입니다.

답변1

RAID 1의 "가비지"도 동일해야 합니다. 이는 MD 어레이를 생성한 후 발생하는 재동기화와 동일합니다.초기 어레이 생성커널 위키에서.

초기 재동기화(및 성장 후 재동기화)의 가장 큰 이유는 작업 확인 및 수정을 위한 것입니다. 분기 간의 차이로 인해 확인 중에 오류가 발생할 수 있습니다.

디스크의 내용이 동일하다고 확신하는 경우(예: 0으로 설정됨) --assume-clean확장 작업과 함께 사용할 수 있습니다. mdadm 맨페이지에서:

--grow --size=를 사용하여 배열의 크기를 더 큰 크기로 조정하면 일반적으로 전체 배열이 생성될 때 재동기화되는 것과 동일한 방식으로 새 공간이 재동기화됩니다. Linux 버전 3.0부터 --assume-clean을 이 명령과 함께 사용하면 자동 재동기화를 방지할 수 있습니다.

관련 정보