그래서 저는 매일 이미지에서 많은 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를 수행할 가능성이 높습니다.