[server] ZFS : 스냅 샷에서 파일을 제거 하시겠습니까?

100 개의 스냅 샷이있는 데이터 세트가 rm -rf있고 모든 스냅 샷에서 “cache”라는 모든 폴더를 원한다고 가정합니다 .

스냅 샷 레이어에 숨기지 않고 실제로 공간을 확보하고 싶습니다. 따라서 복제본을 만들고 제거하고 새 스냅 샷을 찍는 것이 원하는 것을하지 않는 것 같습니다.

반자동 방법이 있습니까? zfs list -t snapshot, zfs clone, zfs promote, zfs snapshot을 감싸는 부분이 있습니까?

( ZFS가 더 많기 때문에 /superuser/313197 에서 교차 게시 )



답변

스냅 샷은 읽기 전용입니다. 이 경우 필요 해당 폴더가 다음 사라는 전체 스냅 샷을 삭제해야합니다.

문제가있는 폴더를 제외하고 백업 (tar와 같은 것)을 만든 다음 스냅 샷을 삭제할 수 있습니다. 분명히 백업은 이제 tar 또는 다른 형식으로되어 있습니다. 하지만 최소한 여전히 백업 사본이 있습니다.


답변

다음을 시도해 볼 수 있습니다.

  1. 가장 오래된 스냅 샷을 새 파일 시스템으로 복제하십시오 (호출 fsnew).
  2. fsnew파일 시스템이 기반으로하는 스냅 샷을 제거 할 수 있도록 복제본 ( )을 승격하십시오 .
  3. 문제가되는 파일을 제거하십시오.
  4. 의 스냅 샷을 만듭니다 fsnew.

이제 foreach는 스냅 샷, 후 rsync--inplace스냅 샷에서 플래그 원하지 않는 파일을 스킵 fsnew합니다. --inplace플래그는 쓰기의 수를 줄이고 작은 스냅 샷 수 있습니다.

  1. 의 스냅 샷을 만듭니다 fsnew.
  2. 원본 스냅 샷을 삭제하십시오.

이 작업이 완료되면 문제가 fsnew되는 파일이 제거 된 원래 파일 시스템의 스냅 샷에 해당하는 스냅 샷이 있어야합니다 .

드라이브에 공간이 있으면 스크립트가 제대로 작동 할 때까지 “destroy”명령을 건너 뛰어도됩니다.


답변

  1. 원본 스냅 샷을 삭제하십시오.

승격 조치 후 오리지널 스냅 샷을 삭제할 수 없습니다. 부모 데이터 세트를 파기하는 경우에만 가능합니다.

예 (복제 촉진 후).

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필요한 파일을 가로 지르는 스크립트를 작성 하여 스냅 샷 자체에서 삭제해야합니다.


답변