블록 장치를 나타내는 희소 파일이 있는 경우 네트워크를 통해 해당 파일을 어떻게 효율적으로 복구할 수 있습니까? 이상적으로는 블록 장치를 사용 rsync -S host:file /dev/sdb
하지만 쓰지는 않을 것입니다. rsync
사용 중이지만 ssh host dd if=file | dd of=/dev/sdb
0바이트가 네트워크를 통해 전송되어 장치에 기록되므로 이는 효율적이지 않습니다. 그것을 사용할 수 있나요 ? tar -S
아니면 cp --sparse=always
어떤 방식으로든 사용할 수 있나요? 파일을 로컬에 저장하지 않고(임시라도) 이 작업을 수행할 수 있습니까? SSHF가 희소 파일을 인식할 수 있나요?
답변1
아직 테스트하지는 않았지만 write-devices
문제를 해결할 수 있는 rsync 패치가 있습니다. 패치는 다음에서 찾을 수 있습니다.rsync 패치저장소.
답변2
당신은 설치할 수 있습니다iSCSI 기업 목표소프트웨어를 사용하고 다음과 같이 스파스 파일에서 iSCSI LUN을 설정합니다.
/etc/iet/ietd.conf에서:
Target iqn.my.iscsi.test:disk1
Lun 0 Path=/path/to/my/sparse_file,Type=fileio
그런 다음 복원해야 하는 호스트에서 대상을 부팅합니다. 대상이 로컬 장치(예: /dev/sdd)로 나타나므로 dd
해당 장치에서 로컬 장치에 연결할 수 있습니다.
답변3
즉시 데이터 압축/압축 해제를 시도해 보셨나요? 로트 0은 잘 압축되어야 합니다.
사실 다시 생각해보면 아주 간단하다. 원격 호스트에서 평소 mkfifo
와 같이 scp
./를 사용하여 파이프를 만든 dd
다음 cp --sparse=always
이 파이프에서 실제 대상 파일로 연결됩니다.
내 설치에서 테스트되었으며 출력에 스파스 파일이 생성됩니다. 좋은 질문을 해주셔서 감사합니다!