디스크를 복제 할 때 Linux를 미리 읽을 수있는 방법이 있습니까? "dd"라는 프로그램을 사용하여 디스크를 복제합니다. 이 작업을 마지막으로 한 것은 OS가 글을 읽는 중이었지만 동시에 쓰는 것 같지 않았습니다. 이상적으로, 대상 디스크는 원본 디스크가 계속 유지할 수있는 경우 물론 기다리지 않고 끊임없이 기록합니다.빠른 디스크 복제
업데이트 : 일반적으로 복제 할 때 큰 블록 크기를 선택합니다 (예 : 16M 또는 32MB).
디스크를 복제 할 때 Linux를 미리 읽을 수있는 방법이 있습니까? "dd"라는 프로그램을 사용하여 디스크를 복제합니다. 이 작업을 마지막으로 한 것은 OS가 글을 읽는 중이었지만 동시에 쓰는 것 같지 않았습니다. 이상적으로, 대상 디스크는 원본 디스크가 계속 유지할 수있는 경우 물론 기다리지 않고 끊임없이 기록합니다.빠른 디스크 복제
업데이트 : 일반적으로 복제 할 때 큰 블록 크기를 선택합니다 (예 : 16M 또는 32MB).
제독 저격병 바로 약이다. 기본값은 256, 최적 1024 등입니다. 각 설정이 다르므로 최상의 값을 찾기 위해 벤치 마크를 실행해야합니다.
# blockdev --getra /dev/sda
256
# blockdev --setra 1024 /dev/sda
# blockdev --getra /dev/sda
1024
# blockdev --help
Usage:
blockdev -V
blockdev --report [devices]
blockdev [-v|-q] commands devices
Available commands:
--getsz (get size in 512-byte sectors)
--setro (set read-only)
--setrw (set read-write)
--getro (get read-only)
--getss (get sectorsize)
--getbsz (get blocksize)
--setbsz BLOCKSIZE (set blocksize)
--getsize (get 32-bit sector count)
--getsize64 (get size in bytes)
--setra READAHEAD (set readahead)
--getra (get readahead)
--flushbufs (flush buffers)
--rereadpt (reread partition table)
--rmpart PARTNO (disable partition)
--rmparts (disable all partitions)
#
아마 당신은 내가 당신을 맞는 당신이 다른 DD 옵션을 설정할 수 있습니다 가정합니다 두 프로세스
dd if=indevfile | dd of=outdevfile
를 사용할 수 있습니다. 이것은 약간의 오버 헤드가 있지만 하나의 디스크에서 을 읽는 것과 다른 하나를 쓰는 것 사이에 비동기를 허용해야합니다.
동시에 그렇게하지 않습니까? 나는 디스크 캐쉬가 그런 일이 일어나기를 기대한다. 그렇지 않은 경우 비 블로킹 또는 비동기 읽기/쓰기가 도움이 될 수도 있습니다.
bs 인수를 사용하여 블록 크기를 늘려보십시오. 기본적으로 dd는 디스크의 기본 블록 크기와 동일한 블록 크기를 사용하므로 전체 디스크를 복사하는 데 더 많은 읽기 및 쓰기가 필요합니다. Linux의 dd는 사람이 읽을 수있는 접미사를 지원합니다.
dd if=/dev/sda of=/dev/sdb bs=1M
업데이트 정보 : HD의 캐시 용량은 어느 정도입니까? (특별히 쓰는 것). 너무 많아서 불필요한 차단을 막으려면이 값을 줄여야 할 수 있습니다.
이dd if=/dev/sda of=/dev/sdb bs=1M
또한, 드라이브의 "미리 읽기"를 조정하는 것은 일반적으로 성능을 향상 :
어느 디스크의 캐시 크기를 기억할 수 없습니다. – Mike
나를 위해 가장 빠른 :
dd if=/dev/sda bs=1M iflag=direct | dd of=/dev/sdb bs=1M oflag=direct
가 ~ 100MiB/s는, 다른 옵션 반면 (단일 프로세스, 직접적인, 기본 512B의 블록 크기, ...)에도 도달하지 30MiB에 도달/
가 다른 콘솔에서 실행 진행 상황을 시청하려면 ... S :watch -n 60 killall -USR1 dd
실제로'dd if =/dev/sda bs = 1M'의 dd if =/dev/sda는 나를 위해 금식됩니다. – pevik
을 두 개의 디스크가 다른 채널 (예를 사용하는 경우. SATA)를 사용하면 fastDD와 같은 고성능 도구를 사용할 수 있습니다. 저자는 주장 :이 작품에서
"
, 우리는 개입 및 복사 과정에서 INTERFER 모든 하드웨어 및 소프트웨어 메커니즘을 회수하고, 안정적이고 효율적으로 데이터를 복사하는 문제를 검토 우리의 고려가 코딩되어있다. fastdd에서 데이터를 매우 복사 할 수있는 C++ 프로그램 을 효율적으로 테스트 할 수 있습니다. "
또한이 도구는 이전의 dd
과 매우 유사한 구문을 유지합니다.
http://www.dei.unipd.it/~zagonico/fastdd/
나는 소리의 디스크가 제작 되었기 때문에 읽기/쓰기 스왑이 발생했다 생각합니다. – Mike