btrfs send
btrfs receive
및 와 유사 하지만 파일 단위로 동작을 만들고 싶습니다 . 내가 아는 한, 이것을 사용하여 cp -ax --reflink=always
파일의 "스냅샷"을 만들 수 있습니다. 우리는 두 개의 서로 다른 하드 드라이브에 있는 두 개의 "스냅샷"이 정확히 동일하다고 가정합니다. 이와 같이 cp
다시 링크된 두 파일 간의 차이점(및 차이점만)을 어떻게 비교할 수 있습니까?btrfs send -p
이상적으로는 btrfs뿐만 아니라 참조 링크가 가능한 모든 파일 시스템에서 작동하는 솔루션을 갖고 싶습니다. 이상적으로는 sudo 없이 실행하고 싶습니다.
파일 범위 보기를 사용할 수 있다는 것을 알고 있지만 filefrag
결과 filefrag
가 정확하다고 보장할 수는 없습니다. 파일 손상 위험을 감수하는 것보다 몇 메가바이트를 추가로 복사하는 것이 좋습니다.
답변1
해결 방법을 찾았습니다(아직 테스트되지 않음).
- 원본 디스크에 새 하위 볼륨 X와 하위 볼륨 Y를 생성합니다.
cp -ax --reflink=always
이전 버전을 하위 볼륨 X에 복사하고 새 버전을 하위 볼륨 Y에 복사하는 데 사용됩니다 .- (이 작업을 처음 수행하는 경우)을 사용하여 하위 볼륨 X를 두 번째 디스크에 복사
btrfs send
하거나 하위 볼륨을 다시 생성합니다. - 복사 하위 볼륨 Y를 두 번째 디스크에 사용합니다
btrfs send -p
. - 이에 따라 두 번째 디스크의 하위 볼륨 Y에 있는 파일을 다시 연결하고(이전 파일 교체) 프로세스에 사용된 모든 하위 볼륨을 삭제합니다.
경고: 이것이 작동하는지 잘 모르겠습니다. 실제로 예상한 대로 작동하는지 확인하려면 광범위한 테스트를 수행해야 합니다. 이론적으로 하위 볼륨 생성이 100% 재현 가능하다면(=동일한 작업을 두 번 수행하면 동일한 btrfs 트리 내부 상태가 발생함) 작동할 것입니다.
그래도 적절한 해결책을 갖게 되어 기쁘네요.
편집하다:물론 filefrag
두 디스크 모두에서 동일한 결과가 생성되는지 확인할 수 있습니다.