Katakanlah saya memiliki dataset dengan 100 foto dan ingin rm -rf
semua folder bernama "cache" di semua foto.
Saya ingin benar-benar membebaskan ruang, tidak hanya menyembunyikannya dalam lapisan snapshot, jadi membuat kloning dan menghapusnya lalu mengambil snapshot baru sepertinya tidak melakukan apa yang saya inginkan.
Adakah cara semi-otomatis yang melakukannya? Beberapa membungkus daftar zfs -t snapshot, zfs clone, zfs promosikan, zfs snapshot?
(posting silang dari /superuser/313197 karena saya melihat ini memiliki lebih banyak barang ZFS)
Jawaban:
Snapshots hanya bisa dibaca. Jika Anda ingin folder-folder itu hilang, Anda harus menghapus seluruh snapshot.
Anda dapat membuat cadangan (dengan sesuatu seperti tar), tidak termasuk folder yang menyinggung, lalu hapus snapshot. Jelas cadangan sekarang dalam format tar, atau apa pun,; tetapi setidaknya Anda masih memiliki salinan cadangan.
sumber
Anda dapat mencoba yang berikut ini:
fsnew
).fsnew
) untuk memungkinkan Anda menghancurkan snapshot yang menjadi dasar sistem file.fsnew
.Sekarang, sebelum snapshot,
rsync
dengan--inplace
bendera dari snapshot ke fsnew melompati file yang tidak Anda inginkan. The--inplace
bendera mengurangi jumlah menulis dan memungkinkan untuk snapshot yang lebih kecil.fsnew
.Ketika ini selesai, Anda harus memiliki snapshot
fsnew
yang sesuai dengan snapshot dari sistem file asli dengan menghapus file yang menyinggung.Jika Anda memiliki ruang pada drive, Anda mungkin ingin melewati perintah "hancurkan" sampai skrip Anda berfungsi dengan benar.
sumber
--delete
opsirsync
, jika tidak, Anda akan kehilangan penghapusan di antara foto. Kalau tidak, ini adalah ide bagus.Anda tidak dapat menghancurkan orig snapshot setelah mempromosikan tindakan. Hanya jika demikian hancurkan dataset induk.
contoh (setelah mempromosikan klon).
zfs hancurkan media1/cheers/[email protected]
tidak dapat menghancurkan 'media1/cheers/[email protected]': snapshot memiliki klon bergantung
gunakan '-R' untuk menghancurkan dataset berikut:
media1/media/[email protected]
media1 / media / cadangan
zfs menghancurkan media1/media/[email protected]
zfs hancurkan media1/cheers/[email protected]
tidak dapat menghancurkan 'media1/cheers/[email protected]': snapshot memiliki klon bergantung
gunakan '-R' untuk menghancurkan dataset berikut:
media1 / media / cadangan
Setelah operasi "lucu" itu, saya harus membuat yang berikutnya
zfs snapshot media1 / media / backup @ 1
zfs mengirim media1 / media / backup @ 1 | pv | zfs menerima media1 / media / backupnew
zfs hancurkan media1 / media / backup @ 1
zfs menghancurkan -R media1 / media / backup
zfs mengganti nama media1 / media / backupnew media1 / media / backup
ATAU terbalik mempromosikannya. zfs mempromosikan media1 / media / backup dan setelah itu menghapus clone anuway, karena Anda akan memiliki snapshot besar di tempat src))
Hanya rsync / backup yang dapat membantu di sini.
sumber
Snapshots ZFS untuk sistem file ZFS tertentu dapat ditemukan di bawah
.zfs/snapshots
direktori di root sistem file. Anda harus dapat menulis skrip yang melintasi folder ini danrm
file-file yang Anda butuhkan, yang seharusnya menghapusnya dari snapshot itu sendiri.sumber