커밋 기능(덮어쓰기, 합집합이라고도 함)이 있는 diff 파일 시스템 사용

커밋 기능(덮어쓰기, 합집합이라고도 함)이 있는 diff 파일 시스템 사용

저는 두 대의 컴퓨터에서 작업하고 기본 컴퓨터의 모든 파일을 USB 플래시 드라이브로 동기화합니다. 두 번째 컴퓨터에서는 파일 작업을 위해 USB 플래시 드라이브를 기본 컴퓨터와 동일한 경로에 마운트했습니다.

이제 성능과 플래시 수명을 위해 USB 플래시 드라이브를 읽기 전용으로 사용하고 변경 사항을 임시 디렉터리에 쓸 수 있게 해주는 모든 종류의 diff, 일명 덮어쓰기, 일명 Union, 파일 시스템(예: Unionfs 또는 aufs)을 사용해야 합니다. 마침내 변경 사항을 USB 플래시 드라이브에 즉시 다시 쓸 수 있게 되었습니다.

도움이 필요하세요? 희망이 있습니까?

고쳐 쓰다:

귀하의 모든 답변과 의견에 감사드립니다. 저는 Linux에 관심이 있으며 질문은 다음과 같습니다.위의 파일 시스템 중 필요할 때 더 낮은 파일 시스템에 쓰기를 커밋할 수 있는 것이 있습니까? 그렇다면 어떻게?

답변1

"snapshot-merge"라는 새로운 DM 타겟이 있습니다.

USB 플래시 드라이브를 LVM 물리 볼륨으로 포맷한 다음 필요한 파일 시스템을 논리 볼륨에 배치하면 다음을 수행할 수 있습니다.

  1. USB 플래시 드라이브가 포함된 볼륨 그룹과 로컬 디스크의 다른 LVM 물리 볼륨을 활성화합니다.
  2. 로컬 디스크에 논리 볼륨의 스냅샷을 생성합니다.
  3. 스냅샷을 마운트하고 원하는 작업을 수행한 다음 마운트를 해제합니다.
  4. 스냅샷을 다시 원본에 병합합니다.

임시 디렉토리가 아닌 임시 블록 장치가 필요하지만 이는 사용자가 요구하는 효과에 가깝습니다.


필요에 따라 {braces}로 묶인 부품을 교체하십시오.

# USB 드라이브의 초기 설정.
PVCCreate /dev/{USB}
vgcreate {이동식} /dev/{USB}
lvcreate -n {기본} -l 100%PVS {이동식} /dev/{USB}
mkfs -t {fs} {...} /dev/mapper/{이동식}-{base}
#장치의 초기 설정을 준비합니다.
pvcreate /dev/{스크래치}
# 장비를 설치합니다.
vgextend {이동식} /dev/{SCRATCH}
lvcreate -s -n {snap} -l 100%ORIGIN /dev/mapper/{removable}-{base} /dev/{SCRATCH}
mount -t {fs} -o {...} /dev/mapper/{removable}-{snap} {마운트 지점}
# 장치를 제거합니다.
{마운트포인트} 제거
lvconvert --merge /dev/mapper/{이동 가능}-{스냅}
vgreduce {이동 가능} /dev/{SCRATCH}
vgchange -an {이동식}

테스트되지는 않았지만 모든 LVM 명령에는 매뉴얼 페이지가 있으므로 거기에서 알아낼 수 있을 것입니다. vgscanUSB 드라이브를 연결할 때 볼륨 그룹이 자동으로 감지되지 않으면 어딘가에 전화를 걸어야 할 수도 있습니다.

답변2

이건 활용 사례인 것 같네요dm-사용자 공간+소:기본적으로 COW(기록 중 복사) 파일과 USB 스틱에 해당하는 블록 장치로 구성된 DM 대상(블록 장치)을 설정하고 이를 사용하여 파일 시스템을 호스팅하게 됩니다. 모든 업데이트는 COW 파일에 기록됩니다. COW 파일에 없는 읽기는 USB 스틱에서 가져옵니다. 파일 시스템이 마운트 해제된 후 COW 파일의 수정 사항이 USB 스틱에 병합됩니다.

불행히도 그것은 Linux에만 국한되며2007년에 개발이 중단된 것 같습니다.

두 대 이상의 PC 간에 파일을 동기화하고 싶다면 다음을 제안해 드릴 수 있습니다.홈 디렉토리(또는 관련 폴더)를 버전 관리하에 두시겠습니까? 일반적인 작업 주기는 다음과 같습니다.

  1. USB 플래시 드라이브를 삽입합니다.
  2. USB 스틱에서 최신 변경 사항을 추출하여 홈 디렉터리 저장소를 업데이트합니다.
  3. 당신의 일을 하십시오;
  4. 버전 제어 시스템에 변경 사항을 커밋하고 USB 스틱의 저장소를 업데이트합니다.

이것은 USB 스틱에 쓰기만 하는 것입니다. (다른 사람들의 말에 동의하지만, USB 스틱이 낡아지면 더 큰 USB 스틱을 하나 더 구입하게 될 것입니다.)

답변3

파일 동기화 도구를 사용하는 것이 좋습니다. 문제에 대한 파일 시스템 수준 솔루션이 불가능할 수 있습니다. 확인하다일관된그리고카테터. 내가 이해한 바에 따르면, 귀하의 주 컴퓨터에는 이미 파일 사본이 있습니다. 제가 사용하는 워크플로는 다음과 같습니다.

  1. PC_1에서 작업하고 파일을 변경합니다. 완료되면 USB 스틱에 동기화하세요.

  2. USB 스틱을 PC_2에 연결하고 콘텐츠를 PC_2에 동기화하세요.

  3. PC_2에서 작업하고 파일을 변경합니다. 완료되면 USB 스틱에 동기화하세요.

변경된 파일만 덮어쓰기 때문에 동기화가 매우 빠릅니다. 설치 및 제거 트리거를 작성하여 동기화를 자동화할 수도 있습니다.

파일 시스템 솔루션의 경우 btrfs와 같은 Copy On Write 속성이 있는 일부 FS를 찾을 수 있습니다. 스냅샷을 찍어 동기화하는 것이 더 빠르고 효율적일 수 있습니다. 하지만 아직 구현을 찾지 못했습니다. 또한 파일 시스템 수준에서 작업하면 충돌을 쉽게 해결할 수 없습니다.

답변4

나는 이것이 Unix 스타일 운영 체제용이라고 가정하고 있지만 Windows 기반 솔루션에 관심이 있다면 다양한 네트워크에서 다양한 파일과 폴더를 동기화하기 위한 무료 도구인 Microsoft Mesh를 사용했습니다. 컴퓨터. 또 다른 멋진 기능은 웹 인터페이스를 통해 이 "클라우드"(내 용어가 아닌 해당 용어)에 액세스할 수 있는 기능입니다. 동기화되지 않은 원격 컴퓨터에 있지만 일부 파일에 액세스/다운로드하려는 경우 유용합니다.

관련 정보