Saya mencoba membuat salinan dari beberapa file / direktori, tetapi dari beberapa cara yang saya ketahui, semuanya tampak kurang optimal.
Sebagai contoh, btrfs dapat, dengan penggunaan cp --reflink=auto
cepat menghasilkan salinan file.
Apa yang saya coba:
- Symlinks: Tidak bagus. Mengganti nama file, tautan rusak.
- Hardlink: Lebih baik, tetapi masih tidak bagus. Perubahan pada satu file akan mengubah yang lain, dan saya tidak selalu ingin file lainnya diubah.
- Buat snapshot dari dataset, lalu clone snapshot: Ini bisa berfungsi, tetapi tidak baik. Seringkali saya tidak mencari salinan seluruh dataset, atau untuk salinan berfungsi seperti dataset lain. Lalu ada hubungan orang tua / anak antara klon / snapshot / asli, yang seperti yang saya pahami sulit, jika tidak mungkin untuk diputus.
- Menggunakan
zfs send/receive
, dan mengaktifkan dedup, mereplikasi dataset ke dataset baru: Ini menghindari hubungan orang tua / anak menggunakan klon, tetapi masih perlu membuat dataset lain, dan masih menderita dari kelambatan yang terlibat dalam file yang harus dibaca 100% dan blok direferensikan lagi alih-alih ditulis. - Salin file dan biarkan dedup melakukan tugasnya: Ini berfungsi, tetapi lambat karena file tersebut harus 100% dibaca dan kemudian blok direferensikan alih-alih menulis.
Lambatnya zfs mengirim / menerima dan secara fisik menyalin atau rsyncing semakin diperburuk karena sebagian besar hal disimpan terkompresi, dan harus didekompresi selama membaca, kemudian dikompresi sebelum pemotongan tendangan untuk referensi blok duplikat.
Dalam semua penelitian saya, saya belum dapat menemukan apa pun yang menyerupai kesederhanaan --reflink di btrfs.
Jadi, apakah ada cara untuk membuat salinan sapi di ZFS? Atau apakah "secara fisik" menyalin dan membiarkan dedup melakukan tugasnya satu-satunya pilihan nyata?