Powiedzmy, że mam zestaw danych ze 100 migawkami i chcę rm -rf
wszystkich folderów o nazwie „cache” we wszystkich migawkach.
Chcę faktycznie zwolnić miejsce, a nie tylko ukryć je w warstwach migawek, więc tworzenie klonu i usuwanie z niego, a następnie zrobienie nowej migawki nie wydaje się robić tego, co chcę.
Jakiś półautomatyczny sposób to robi? Niektóre owijanie wokół listy ZFS -t migawka, klon ZFS, promocja ZFS, migawka ZFS?
(krzyżowanie z /superuser/313197, ponieważ widzę, że ma więcej rzeczy ZFS)
Odpowiedzi:
Migawki są tylko do odczytu. Jeśli potrzebujesz tych folderów, musisz usunąć całą migawkę.
Możesz wykonać kopię zapasową (z czymś takim jak tar), z wyłączeniem folderów naruszających, a następnie usunąć migawkę. Oczywiście kopia zapasowa ma teraz format tar lub inny format; ale przynajmniej nadal masz kopię zapasową.
źródło
Możesz spróbować:
fsnew
).fsnew
), abyś mógł zniszczyć migawkę, na której opiera się system plików.fsnew
.Teraz przewiduj migawkę po,
rsync
z--inplace
flagą z migawki do nowego pomijania plików, których nie chcesz.--inplace
Flag zmniejsza liczbę zapisów i pozwala na mniejsze migawek.fsnew
.Po wykonaniu tej czynności powinieneś mieć migawkę
fsnew
odpowiadającą migawkom z oryginalnego systemu plików z usuniętymi szkodliwymi plikami.Jeśli masz miejsce na dysku, możesz pominąć polecenie „zniszczyć”, dopóki skrypt nie będzie działał poprawnie.
źródło
--delete
opcjęrsync
, w przeciwnym razie stracisz usuwanie występujące między migawkami. W przeciwnym razie jest to świetny pomysł.Nie można zniszczyć migawki orig po akcji promowania. Tylko jeśli tak, zniszcz macierzysty zestaw danych.
przykład (po promowaniu klonowania).
zfs destroy media1/cheers/[email protected]
nie można zniszczyć „media1/cheers/[email protected]”: migawka ma zależne klony
użyj „-R”, aby zniszczyć następujące zestawy danych:
media1/media/[email protected]
media1 / media / backup
zfs destroy media1/media/[email protected]
zfs destroy media1/cheers/[email protected]
nie można zniszczyć „media1/cheers/[email protected]”: migawka ma zależne klony
użyj „-R”, aby zniszczyć następujące zestawy danych:
media1 / media / backup
Po tej „zabawnej” operacji muszę wykonać kolejne
ZFS snapshot media1 / media / backup @ 1
zfs send media1 / media / backup @ 1 | pv | zfs odbiera media1 / media / backupnew
ZFS zniszczyć media1 / media / backup @ 1
ZFS zniszczyć -R media1 / media / backup
zfs zmienia nazwę media1 / media / backupnew media1 / media / backup
LUB odwróć promuj jeden. zfs promuj media1 / media / backup, a po nim usuń klon klonuj, bo będziesz mieć dużą migawkę w miejscu src))
Tutaj może pomóc tylko rsync / backup.
źródło
Migawki ZFS dla konkretnego systemu plików ZFS można znaleźć w
.zfs/snapshots
katalogu w katalogu głównym systemu plików. Powinieneś być w stanie napisać skrypt, który przemierza ten folder irm
jest potrzebnymi plikami, które powinny usunąć go z samych migawek.źródło