100 개의 스냅 샷이있는 데이터 세트가 rm -rf
있고 모든 스냅 샷에서 “cache”라는 모든 폴더를 원한다고 가정합니다 .
스냅 샷 레이어에 숨기지 않고 실제로 공간을 확보하고 싶습니다. 따라서 복제본을 만들고 제거하고 새 스냅 샷을 찍는 것이 원하는 것을하지 않는 것 같습니다.
반자동 방법이 있습니까? zfs list -t snapshot, zfs clone, zfs promote, zfs snapshot을 감싸는 부분이 있습니까?
( ZFS가 더 많기 때문에 /superuser/313197 에서 교차 게시 )
답변
스냅 샷은 읽기 전용입니다. 이 경우 필요 해당 폴더가 다음 사라는 전체 스냅 샷을 삭제해야합니다.
문제가있는 폴더를 제외하고 백업 (tar와 같은 것)을 만든 다음 스냅 샷을 삭제할 수 있습니다. 분명히 백업은 이제 tar 또는 다른 형식으로되어 있습니다. 하지만 최소한 여전히 백업 사본이 있습니다.
답변
다음을 시도해 볼 수 있습니다.
- 가장 오래된 스냅 샷을 새 파일 시스템으로 복제하십시오 (호출
fsnew
). fsnew
파일 시스템이 기반으로하는 스냅 샷을 제거 할 수 있도록 복제본 ( )을 승격하십시오 .- 문제가되는 파일을 제거하십시오.
- 의 스냅 샷을 만듭니다
fsnew
.
이제 foreach는 스냅 샷, 후 rsync
와 --inplace
스냅 샷에서 플래그 원하지 않는 파일을 스킵 fsnew합니다. --inplace
플래그는 쓰기의 수를 줄이고 작은 스냅 샷 수 있습니다.
- 의 스냅 샷을 만듭니다
fsnew
. - 원본 스냅 샷을 삭제하십시오.
이 작업이 완료되면 문제가 fsnew
되는 파일이 제거 된 원래 파일 시스템의 스냅 샷에 해당하는 스냅 샷이 있어야합니다 .
드라이브에 공간이 있으면 스크립트가 제대로 작동 할 때까지 “destroy”명령을 건너 뛰어도됩니다.
답변
- 원본 스냅 샷을 삭제하십시오.
승격 조치 후 오리지널 스냅 샷을 삭제할 수 없습니다. 부모 데이터 세트를 파기하는 경우에만 가능합니다.
예 (복제 촉진 후).
zfs는 미디어를 파괴합니다 1 / 건배 / 백업-자동 -20190530.2105-2y-clone@auto-20190530.2105-2y
‘media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y’를 파괴 할 수 없음 : 스냅 샷에 종속 클론이 있음
‘-R’을 사용하여 다음 데이터 세트를 제거하십시오.
media1/media/backup@auto-20190531.1622-2y
미디어 1 / 미디어 / 백업
zfs destroy media1/media/backup@auto-20190531.1622-2y
zfs는 미디어를 파괴합니다 1 / 건배 / 백업-자동 -20190530.2105-2y-clone@auto-20190530.2105-2y
‘media1/cheers/backup-auto-20190530.2105-2y-clone@auto-20190530.2105-2y’를 파괴 할 수 없음 : 스냅 샷에 종속 클론이 있음
‘-R’을 사용하여 다음 데이터 세트를 제거하십시오.
미디어 1 / 미디어 / 백업
그 “재미있는”작업 후에, 나는 다음을 만들어야합니다
zfs 스냅 샷 media1 / media / backup @ 1
zfs send media1 / media / backup @ 1 | pv | zfs는 media1 / media / backup을받습니다
zfs destroy media1 / media / backup @ 1
zfs destroy -R media1 / media / backup
zfs는 media1 / media / backup의 이름을 바꿉니다.
또는 하나를 승격 시키십시오. zfs는 media1 / media / backup을 승격시키고 src 장소에 큰 스냅 샷이 있기 때문에 clone anuway를 삭제 한 후))
rsync / backup 만 도움이 될 수 있습니다.
답변
특정 ZFS 파일 시스템에 대한 ZFS 스냅 샷 .zfs/snapshots
은 파일 시스템 루트의 디렉토리에서 찾을 수 있습니다 . 이 폴더와 rm
필요한 파일을 가로 지르는 스크립트를 작성 하여 스냅 샷 자체에서 삭제해야합니다.