Bir dizinin yazma üzerine kopyasını oluşturmanın bir yolu var mı?


14

Ben bir dizinin bir kopyasını oluşturur, birkaç dosya tweaks ve daha sonra sonuç üzerinde bazı işlemler yapar bir şey olurdu bir durum düşünüyorum. Bu oldukça sık, belki günde birkaç düzine kez yapılır. (Kesin kullanım durumu yama gönderimlerini test etmek; kodu kopyalamak, yama yapmak, derlemek / test etmek / raporlamak vb.)

Ne arıyorum yeni bir dizin yapısı oluşturmak ve origonal sabit bağlantılar ile doldurarak yapılabilir. Ancak bu yalnızca kullandığınız tüm araçlar dosyaları yerinde düzenlemek yerine silmek ve yeniden oluşturmak için kullanılır.

Dosya sisteminin bir dosyaya yazma-kopyalama yapmasının bir yolu var mı?


Not: Birçok FS'nin blok düzeyinde COW kullandığını biliyorum (tüm güncellemeler yeni bloklara yazma yoluyla yapılır) ama istediğim bu değil.


Bakımlı görünmüyor, ama belki de boklm.eu/copyfs
Zoredache

Yani dosya sistemi üzerinden yazma üzerine kopyalama yapmak istiyorsunuz, ancak üzerine yazma kopyası kullanan bir dosya sistemi istemiyor musunuz? Kafam karıştı.
Kamil Kisiel

1
@Kamil Kisiel: Dosya düzeyinde COW'u blok düzeyinde COW istemiyorum. Dosya düzeyinde COW, neredeyse aynı şeyi yapar cpve lnbunu yapar. Blok düzeyinde COW, FS meta verilerinin yanlış olduğu aralığı en aza indirmek için bir hiledir: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS

Bunun ne tür bir sistemde kullanılması bekleniyor?
John Gardeniers

Bazı kurulum için bunu yapmanın bir yolunu bilmiyorsanız (bu durumda sadece post) insanların nasıl yapıldığını anlamaya zaman yakmalarını istemeyeceğim kadar spekülatiftir (eğlenmek için yapmadıkları sürece :)
BCS

Yanıtlar:


7

Dosya sunucunuz için platform seçiminiz varsa, yeni bir OpenSolaris derlemesi ile gider ve ZFS tekilleştirme özelliğini kullanırdım. Bu şekilde dosyaların kopyaları ek alan kaplamaz ve dosyalar arasındaki ortak segmentler bile çoğaltılmaz.

ZFS veri tekilleştirme ile ilgili her şeyi Jeff Bonwick'in Blog'unda bulabilirsiniz .


1
ZFS inanılmaz; depolama hakkında düşünme şeklinizi değiştirecek
tegbains

Düzgün, tüm sürücü için açık bir tarafı yoksa.
BCS

Daha fazla teknik ayrıntı içeren bir blog yayınına bir bağlantı ekledim. Orada ihtiyacınız olan şey olup olmadığını görebilirsiniz.
Kamil Kisiel

Jeff Bonwick'in yazısı için yeni url: blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu

0

Çoğu linux sanallaştırma çözümü , sanallaştırılmış işletim sistemleri arasında (WP'den kopyalanan) dosya düzeyinde COW sunar:

  • EVET:
    • Docker, Linux-VServer, lmctfy, LXC, Tekillik, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Kapları (ZFS), FreeBSD hapis (ZFS), OpenVZ
  • HAYIR:
    • chroot, sysjail, WPARs, iCore Sanal Hesapları, Turbo

Bu bağlantı soruyu cevaplayabilirken, cevabın önemli kısımlarını buraya eklemek ve bağlantıyı referans olarak sağlamak daha iyidir. Bağlantı verilen sayfalar değişirse yalnızca bağlantı yanıtları geçersiz olabilir
Romeo Ninov

-2

SVN veya başka bir sürüm aracı olabilir (git, cvs)?


Bu daha da kötüsü, çünkü her dosyanın iki kopyasını oluşturur ve bir yuvaya emer.
BCS
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.