미러 인 Raid 1은 미러의 모든 디스크가 서로의 정확한 사본이되도록합니다. 임의의 하드 드라이브와 다른 임의의 하드 드라이브를 가져 가면 다른 데이터가있을 수 있으므로이 가정을 위반합니다. 이것이 초기화가 필요한 이유입니다. 단순히 첫 번째 드라이브의 내용을 다른 드라이브로 복사합니다. 어떤 조건에서는 드라이브를 초기화하지 않고 벗어날 수 있습니다. 일반적으로 공장에서 새로 구입 한 장치에는 이미 0이 있으므로 무시해도됩니다. mdadm
옵션은 --assume-clean
이 작업을 수행하지만 경고 :
--assume-clean
mdadm에 어레이가 이미 존재하며 깨끗하다고 알려져 있습니다. 실제로 어레이에 쓰지 않는 한 데이터에 영향을 미치지 않기 때문에 중대한 장애로부터 복구하려고 할 때 유용 할 수 있습니다. 초기 재 동기화를 피하려면 RAID1 또는 RAID10을 생성 할 때도 사용할 수 있지만 일반적으로 안전하지만이 방법은 권장되지 않습니다. 실제로하고있는 일을 알고있는 경우에만 사용하십시오.
그렇게하지 않으면 드라이브간에 불일치가 발생하여 읽습니다. 드라이브가 무엇을 읽을 지 알 수 없습니다. 파일 시스템을 사용하는 것이 안전해야합니다 (하지만 아래 참고 사항). 대부분 해당 장치에서 내용을 읽기 전에 쓰면 분명하기 때문입니다.
최소한 Linux mdadm
는 백그라운드에서 배열을 초기화합니다. FS를 처음부터 행복하게 만들 수 있습니다. 초기화가 완료 될 때까지 성능이 저하되지만 그게 전부입니다.
그러나:
a) mkfs
일부 유틸리티를 수행 할 때 해당 드라이브에 이미 무언가가 있는지 확인하십시오. 이것은 잘 알려진 드라이브 영역에 닿아 있지만 내용을 쓰기 전에 읽으므로 위험에 처하게됩니다.
b) 어레이를 주기적으로 재 동기화하면 RAID 장치는 FS를 알 수 없습니다. 단순히 모든 장치에서 모든 블록을 읽고 비교합니다. 또한 기록 중 복사 FS (예 : ZFS 또는 BTRFS)를 사용하지 않고 FS를 채우지 않는 경우 수년 동안 블록이 FS 관점에서 초기화되지 않은 상태로 유지 될 수 있습니다.
RAID1 장치와 재 동기화해야하는 이유는 무엇입니까?
같은 이유로 RAID5 장치 또는 다른 수준 (RAID0 제외)과 다시 동기화합니다. 모든 데이터를 읽고 RAID 체크섬을 비교 / 확인합니다 (RAID 5 또는 6). 비트가 어떤 식 으로든 뒤집힌 경우 (HD 메모리가 자발적으로 뒤집어지기 때문에 귀하와 5 명의 이웃의 핸드폰이 우연히이 특정 플래터 영역에 간섭했기 때문에) 불일치를 감지하지만 일치 할 수는 없습니다. 도와주세요. 하드 드라이브 중 하나 인 OTOH가 단순히 "고장을 읽을 수 없습니다"라고보고하는 경우 (실패한 드라이브에서 발생했을 가능성이 높음) 오류를 조기에 감지했으며 성능 저하 모드에서 실행중인 시간을 줄였습니다. 드라이브 고장, 눈에 띄지 않을 때). 한 드라이브가 고장 나고 한 달 후에 다른 드라이브가 고장 나면 Raid가 도움이되지 않습니다.
RAID10
이제 RAID10의 경우 위의 모든 내용이 유지됩니다. 모든 RAID10은 '두 개의 RAID1 장치를 RAID0 쌍에 넣습니다'라고 말하는 현명한 방법입니다.
경고:
이것은 모두 정의되지 않은 동작입니다. Linux에서 내가 mdadm
다른 소프트웨어 RAID 구현을 사용하여 확인한 이유 는 다르게 동작 할 수 있습니다. mdadm
내가 사용하는 것과 다른 Linux 커널 및 / 또는 도구 버전 도 다르게 작동 할 수 있습니다.