Apakah ada cara untuk membuat salinan direktori copy-on-write?

14

Saya sedang memikirkan situasi di mana saya akan memiliki sesuatu yang membuat salinan direktori, tweak beberapa file, dan kemudian melakukan beberapa pemrosesan pada hasilnya. Ini akan dilakukan cukup sering, mungkin beberapa lusin kali sehari. (Kasus penggunaan yang tepat adalah menguji pengiriman tambalan; duplikat kode, tambal itu, build / test / laporan / dll.)

Apa yang saya cari bisa dilakukan dengan membuat struktur direktori baru dan mengisinya dengan tautan keras dari aslinya. Namun ini hanya berfungsi jika semua alat yang Anda gunakan menghapus dan membuat ulang file alih-alih mengeditnya.

Apakah ada cara agar sistem file melakukan copy-on-write untuk file?


Catatan: Saya sadar bahwa banyak FS menggunakan COW pada level blok (semua pembaruan dilakukan melalui penulisan ke blok baru) tetapi ini bukan yang saya inginkan.

BCS
sumber
Tampaknya tidak terawat, tapi mungkin boklm.eu/copyfs
Zoredache
Jadi Anda ingin melakukan copy-on-write melalui sistem file, tetapi Anda tidak ingin sistem file yang menggunakan copy-on-write? Saya bingung.
Kamil Kisiel
1
@ Kamil Kisiel: Saya ingin file-level COW bukan blok-level SAP. COW tingkat file menghasilkan cpdan lnmelakukan hal yang persis sama. Block-level COW adalah trik untuk meminimalkan interval bahwa data meta FS salah: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS
Sistem seperti apa yang diharapkan untuk digunakan?
John Gardeniers
Ini cukup spekulatif bahwa kecuali Anda tahu cara untuk melakukannya untuk beberapa pengaturan (dalam hal ini hanya mempostingnya) Saya tidak ingin orang-orang membakar waktu mencari tahu bagaimana melakukannya (kecuali mereka melakukannya untuk bersenang-senang :)
BCS

Jawaban:

7

Jika Anda memiliki platform pilihan untuk server file Anda, saya akan menggunakan OpenSolaris build baru-baru ini dan menggunakan fitur deduplikasi ZFS. Dengan cara ini, salinan file tidak membutuhkan ruang tambahan, dan bahkan segmen umum di antara file tidak akan direplikasi.

Anda dapat membaca semua tentang deduplikasi ZFS di posting ini di Blog Jeff Bonwick .

Kamil Kisiel
sumber
1
ZFS luar biasa; itu akan mengubah cara Anda berpikir tentang penyimpanan
tegbains
Rapi, kecuali ada sisi negatifnya untuk seluruh drive.
BCS
Saya menambahkan tautan ke posting blog yang memiliki lebih banyak detail teknis. Anda dapat melihat apakah itu yang Anda butuhkan di sana.
Kamil Kisiel
Url baru untuk posting Jeff Bonwick: blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu
0

Sebagian besar solusi virtualisasi linux menawarkan COW tingkat file di antara OS tervirtualisasi (disalin dari WP):

  • IYA:
    • Docker, Linux-VServer, lmctfy, LXC, Singularity, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Containers (ZFS), penjara FreeBSD (ZFS), OpenVZ, OpenVZ
  • TIDAK:
    • chroot, sysjail, WPARs, Akun Virtual iCore, Turbo
ankostis
sumber
Meskipun tautan ini dapat menjawab pertanyaan, lebih baik untuk memasukkan bagian-bagian penting dari jawaban di sini dan memberikan tautan untuk referensi. Jawaban khusus tautan dapat menjadi tidak valid jika halaman tertaut berubah
Romeo Ninov
-2

Mungkin SVN atau alat versi lain (git, cvs)?

Dmitry Trukhanov
sumber
Itu bahkan lebih buruk karena itu membuat dua salinan dari setiap file dan menghisapnya melalui soket.
BCS