내 드라이브에 btrfs 파티션이 있는데 이를 더 큰 새 드라이브로 옮기고 싶습니다. 모든 하위 볼륨과 (스냅샷) 스냅샷을 유지하면서 볼륨을 있는 그대로 이동하고 싶습니다.
사본의 무결성과 충실도를 확인하는 가장 좋은 방법은 무엇입니까?
내가 본 것들:
BTRFS 보내기
스냅샷 구조를 다시 작성하는 방법(상위 볼륨을 수동으로 지정해야 합니까?), 여러 하위 볼륨을 한 번에 보내는 방법, 무결성을 가장 잘 확인하는 방법(.snapshot 디렉토리를 포함하는 디렉토리의 차이일 수도 있습니다)을 잘 모르겠습니다. ) 또는 I인 경우 "clone" 매개변수를 사용해야 하며 그 기능은 무엇입니까?
바트싱크
버려진 것 같습니다. 백업용으로 설계되었습니다. btrfs 전송보다 더 많은 기능을 제공하는지 확실하지 않습니다.
BTRBK
백업용으로 설계되었지만 내 사용 사례에 적합한지 확실하지 않습니다.
DD
레벨이 너무 낮을 수 있으며 블록 크기, 파티션 크기 등에 문제가 있을 수 있습니다.
현재 내 생각에는 "btrfs send"와 diff가 가장 좋은 옵션이지만 각 하위 볼륨에서 많은 수의 스냅샷 전송을 처리하는 방법을 모르겠습니다.
답변1
원래 btrfs 파티션과 새롭고 더 큰 드라이브 또는 파티션이 동일한 시스템에 있다고 가정하면 가장 쉽고 최선의 접근 방식은 아마도 btrfs replace
.
man btrfs-replace
자세히보다. 다음은 가독성을 위해 약간 재구성한 발췌 내용입니다.
btrfs replace start [options] <srcdev>|<devid> <targetdev> <path>
btrfs 파일 시스템을 대체하는 장치입니다.
라이브 파일 시스템에서 현재 소스 장치에 저장된 데이터를 타겟 장치에 복사합니다.
소스 장치를 더 이상 사용할 수 없거나
-r
이 옵션이 설정된 경우 RAID 중복 메커니즘만 사용하여 데이터를 생성합니다. 작업이 완료되면 소스 장치가 파일 시스템에서 제거됩니다.숫자 인 경우
<srcdev>
마운트된 파일 시스템의 장치 ID로 간주되고<path>
, 그렇지 않으면 소스 장치에 대한 경로입니다. 소스 장치가 시스템에서 연결이 끊어진 경우 devid 매개변수 형식을 사용해야 합니다.
<targetdev>
크기가 같거나 더 커야 합니다<srcdev>
.노트더 큰 대상 장치를 최대한 활용하려면 파일 시스템의 크기를 조정해야 합니다.
btrfs filesystem resize <devid>:max /path
그런데, 이 btrfs 볼륨에 새 드라이브를 모두 사용하려는 경우에도 파티션이 지정되지 않은 기본 드라이브를 사용하는 대신 하나의 큰 파티션이 있는 파티션 테이블을 만드는 것이 좋습니다. 이는 다른 프로그램이 사용되지 않은 여유 공간으로 간주하지 않도록 디스크 공간을 표시하고 예약하는 편리한 방법이며 파티셔닝 및 포맷 서비스를 제공하는 데 도움이 됩니다.