Czy istnieje sposób utworzenia kopii katalogu podczas kopiowania przy zapisie?

14

Mam na myśli sytuację, w której miałbym coś, co tworzy kopię katalogu, ulepsza kilka plików, a następnie wykonuje pewne przetwarzanie wyniku. Robiono to dość często, może kilkadziesiąt razy dziennie. (Dokładny przypadek użycia to testowanie poprawek; skopiuj kod, załataj go, kompilacja / test / raport / itp.)

To, czego szukam, można zrobić, tworząc nową strukturę katalogów i wypełniając ją twardymi linkami z oryginału. Działa to jednak tylko wtedy, gdy wszystkie używane narzędzia usuwają i odtwarzają pliki zamiast je edytować.

Czy istnieje sposób, aby system plików wykonywał kopiowanie przy zapisie dla pliku?


Uwaga: Zdaję sobie sprawę, że wielu FS używa COW na poziomie bloku (wszystkie aktualizacje są wykonywane przez zapisy do nowych bloków), ale nie tego chcę.

BCS
źródło
Nie wydaje się utrzymany, ale być może boklm.eu/copyfs
Zoredache
Więc chcesz robić kopiowanie przy zapisie za pośrednictwem systemu plików, ale nie chcesz systemu plików, który używa kopiowania przy zapisie? Jestem zmieszany.
Kamil Kisiel,
1
@Kamil Kisiel: Chcę COW na poziomie pliku, a nie COW na poziomie bloku. COW na poziomie pliku powoduje cpi lnrobi prawie dokładnie to samo. Blokowa COW jest sztuczką, aby zminimalizować interwał, w którym metadane FS są niepoprawne: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS
Na jakim systemie ma być używany?
John Gardeniers,
Jest na tyle spekulacyjny, że jeśli nie wiesz, jak to zrobić dla niektórych ustawień (w takim przypadku po prostu opublikuj), nie chcę, aby ludzie płonęli, zastanawiając się, jak to zrobić (chyba że robią to dla zabawy :)
BCS

Odpowiedzi:

7

Jeśli masz wybór platformy dla swojego serwera plików, wybrałbym najnowszą wersję OpenSolaris i użyłem funkcji deduplikacji ZFS. W ten sposób kopie plików nie zajmowałyby dodatkowego miejsca, a nawet wspólne segmenty między plikami nie byłyby replikowane.

Wszystko o deduplikacji ZFS można przeczytać w tym poście na blogu Jeffa Bonwicka .

Kamil Kisiel
źródło
1
ZFS jest niesamowity; zmieni sposób myślenia o przechowywaniu
tegbains
Schludnie, chyba że ma to wadę dla całego dysku.
BCS
Dodałem link do postu na blogu, który zawiera więcej szczegółów technicznych. Możesz sprawdzić, czy potrzebujesz tego.
Kamil Kisiel
Nowy adres URL posta Jeffa Bonwicka: blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu
0

Większość linuksowych rozwiązań do wirtualizacji oferuje COW na poziomie plików wśród zwirtualizowanych systemów operacyjnych (skopiowanych z WP):

  • TAK:
    • Docker, Linux-VServer, lmctfy, LXC, Singularity, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Containers (ZFS), FreeBSD jail (ZFS), OpenVZ
  • NIE:
    • chroot, sysjail, WPAR, konta wirtualne iCore, Turbo
ankostis
źródło
Chociaż ten link może odpowiedzieć na pytanie, lepiej dołączyć tutaj istotne części odpowiedzi i podać link w celach informacyjnych. Odpowiedzi zawierające tylko link mogą stać się nieprawidłowe, jeśli połączona strona ulegnie zmianie
Romeo Ninov
-2

Może być SVN lub innym narzędziem do kontroli wersji (git, cvs)?

Dmitrij Trukhanov
źródło
Jest to nawet gorsze, ponieważ tworzy dwie kopie każdego pliku i zasysa je przez gniazdo.
BCS,