디렉토리의 COW (Copy-On-Write) 사본을 작성하는 방법이 있습니까?


14

디렉토리의 사본을 만들고 몇 개의 파일을 조정 한 다음 결과를 처리하는 상황이 있다고 생각합니다. 이것은 하루에 수십 번 정도 상당히 자주 수행됩니다. (정확한 사용 사례는 패치 제출을 테스트하는 것입니다. 코드를 지우고 패치하고 빌드 / 테스트 / 보고서 등을 수행하십시오.)

내가 찾고있는 것은 새로운 디렉토리 구조를 만들고 원래의 하드 링크로 채우면 가능합니다. 그러나 사용하는 모든 도구가 파일을 편집하지 않고 파일을 삭제하고 다시 만드는 경우에만 작동합니다.

파일 시스템이 파일에 대해 기록 중 복사를 수행하도록하는 방법이 있습니까?


참고 : 많은 FS가 블록 수준에서 COW를 사용한다는 것을 알고 있습니다 (모든 업데이트는 새 블록에 쓰기를 통해 수행됨). 그러나 이것이 내가 원하는 것은 아닙니다.


유지되지 않는 것 같지만 아마도 boklm.eu/copyfs
Zoredache

따라서 파일 시스템을 통해 쓰기시 복사를 원하지만 쓰기시 복사를 사용하는 파일 시스템을 원하지 않습니까? 혼란 스러워요.
Kamil Kisiel

1
@ Kamil Kisiel : 파일 수준의 COW가 블록 수준의 COW가 아닌 것을 원합니다. 파일 수준 COW 결과 cpln거의 정확하게 같은 일을하고. 블록 레벨 COW는 FS 메타 데이터가 올바르지 않은 간격을 최소화하는 트릭입니다. en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS

이것은 어떤 종류의 시스템에서 사용될 것으로 예상됩니까?
John Gardeniers

그것은 당신이 어떤 설정에 그것을 할 수있는 방법을 알고하지 않는 한 (이 경우 그냥 게시)하는 것이 투기 충분히 나는 사람들이 :) 재미를 위해 그 일을하지 않는 (그 방법을 알아내는 시간을 굽기 싶지 않을 것입니다
BCS

답변:


7

파일 서버를위한 플랫폼을 선택했다면 최근 OpenSolaris 빌드를 사용하여 ZFS의 중복 제거 기능을 사용하겠습니다. 이런 방식으로 파일 사본은 추가 공간을 차지하지 않으며 파일 간의 공통 세그먼트도 복제되지 않습니다.

Jeff Bonwick 's Blog의이 게시물 에서 ZFS 중복 제거에 대한 모든 내용을 읽을 수 있습니다 .


1
ZFS는 놀랍습니다. 그것은 당신이 저장에 대해 생각하는 방식을 바꿀 것입니다
tegbains

전체 드라이브에 대한 단점이 없다면 깔끔합니다.
BCS

더 자세한 기술 정보가있는 블로그 게시물에 대한 링크를 추가했습니다. 그것이 필요한지 알 수 있습니다.
Kamil Kisiel

Jeff Bonwick의 게시물에 대한 새 URL : blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu

0

대부분의 Linux 가상화 솔루션 은 가상화 된 OS (WP에서 복사)간에 파일 레벨 COW를 제공합니다.

  • 예:
    • Docker, Linux-VServer, lmctfy, LXC, 특이점, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Containers (ZFS), FreeBSD jail (ZFS), OpenVZ
  • 아니:
    • chroot, sysjail, WPAR, iCore 가상 계정, 터보

이 링크가 질문에 대한 답변을 제공 할 수 있지만 여기에 답변의 필수 부분을 포함시키고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되는 경우 링크 전용 답변은 무효가 될 수있다
로미오 Ninov

-2

SVN 또는 다른 버전 관리 도구 (git, cvs) 일 수 있습니까?


각 파일의 사본 두 개를 생성하고 소켓을 통해 파일을 빨아들이므로 더 나쁩니다.
BCS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.