소프트웨어 RAID1의 도움으로 dd를 사용하여 여러 SATA 드라이브 복제

소프트웨어 RAID1의 도움으로 dd를 사용하여 여러 SATA 드라이브 복제

그래서 저는 매일 이미지에서 많은 Windows 기반 NTFS 드라이브를 복제하고 저와 다른 사람들이 이 프로세스 속도를 극적으로 높이는 데 잠재적으로 도움이 될 수 있는 프로젝트를 절반쯤 진행하고 있습니다.

현재 mdadm 및 16개의 SATA 포트가 있는 Ubuntu 17.10이 설정되어 있습니다. 아이디어는 드라이브를 각 SATA 포트에 연결하고 동시에 각 포트에 동시 복제를 수행하는 것입니다.

한 번에 하나의 드라이브에 dd를 사용하면 약 ~135MB/s(최대 ~180MB/s)의 결과를 얻을 수 있지만 동시에 다른 드라이브 복제를 시작하자마자 속도가 상당히 느려집니다.

여러 출력을 지정할 수 있다는 추가 보너스가 있는 dcfldd에서도 동일한 일이 발생합니다 of=.

이제... 처음에는 복제하려는 모든 드라이브를 한 번에 포함하는 RAID1 어레이를 활용하는 아이디어가 있었습니다. 그러나 RAID 아키텍처와 복제 후 드라이브의 유용성에 약간의 불일치가 있는 것 같습니다.

지금까지 시도한 내용은 다음과 같습니다. mdadm을 사용하여 여러 드라이브 배열을 생성한 다음 계속 실행할 수 있습니다. sudo dd if=/home/clone/some_image.img of=/dev/md0 bs=4096 이 프로세스는 아주 잘 실행되고 뛰어난 속도 결과를 보이는 것 같습니다(모든 드라이브에 대해 한 번에 ~110Mb/s). 프로세스가 완료된 후에는 드라이브에 방금 쓴 데이터가 포함되지 않은 것 같습니다. 다음 단계는 드라이브를 사용 가능한 드라이브로 되돌리기 위해 드라이브의 슈퍼블록을 0으로 만드는 것입니다. 이 방법도 작동하지 않는 것 같습니다.

이전 슈퍼블록 버전(1.2에서 0.9까지)을 사용하여 새 배열을 생성하려고 시도했지만 이전과 동일한 결과가 나타납니다.

마치 드라이브에 저장된 데이터에 관계없이 mdadm을 통해서만 드라이브에 액세스할 수 있는 것처럼 보입니다. 따라서 초기 결과가 매우 유망했음에도 불구하고 이 아이디어는 완전히 실패하게 됩니다.

그래서 저는 여러분에게 다음과 같은 질문을 던집니다. RAID1 어레이에 이미지를 기록한 다음 다시 단일 디스크로 전환할 수 있는 방법이 있습니까? 드라이브를 마운트하기 위해 RAID나 타사 도구를 사용하지 않고도 RAID1에 복제하는 속도 이점을 얻을 수 있는 다른 기술이 있습니까?

읽어주셔서 정말 감사드립니다.

답변1

아니요, 작동하지 않습니다. Linux 소프트웨어 RAID(또는 실제 하드웨어 RAID)가 있는 경우 RAID에 대한 외부 관리 구조가 필요하며 이로 인해 디스크를 사용 사례에 사용할 수 없게 됩니다.

답변2

복제할 때단일 이미지여러 디스크에 연결하려면 모든 인스턴스를 동시에 시작해야 합니다 dd. 이렇게 하면 모든 읽기(첫 번째 읽기 제외)가 캐시에서 나오며 소스 디스크가 스래싱되지 않습니다.

복제하는 경우다른 이미지소스 디스크는 더 빨라지고 액세스 대기 시간이 낮아야 합니다. 단순한 RAID 1이나 0으로는 문제가 없을 것입니다. SSD는 이 작업을 수행하거나 디스크가 많은 더 큰 RAID를 수행할 가능성이 높습니다.

관련 정보