C'è un modo per creare una copia copia su scrittura di una directory?


14

Sto pensando a una situazione in cui avrei qualcosa che crea una copia di una directory, modifica alcuni file e quindi esegue un po 'di elaborazione sul risultato. Questo dovrebbe essere fatto abbastanza spesso, forse qualche dozzina di volte al giorno. (Il caso d'uso esatto è testare l'invio di patch; duplica il codice, patch, build / test / report / ecc.)

Quello che sto cercando potrebbe essere fatto creando una nuova struttura di directory e popolandola con hard link dall'originale. Tuttavia, questo funziona solo se tutti gli strumenti utilizzati eliminano e ricreano i file anziché modificarli in posizione.

C'è un modo per fare in modo che il file system faccia copia su scrittura per un file?


Nota: sono consapevole del fatto che molti FS usano la COW a livello di blocco (tutti gli aggiornamenti vengono effettuati tramite scritture su nuovi blocchi) ma questo non è quello che voglio.


Non sembra mantenuto, ma forse boklm.eu/copyfs
Zoredache il

Quindi vuoi fare il copy-on-write tramite il filesystem, ma non vuoi un filesystem che usa il copy-on-write? Non ho capito bene.
Kamil Kisiel,

1
@Kamil Kisiel: voglio COW a livello di file non COW a livello di blocco. La COW a livello di file risulta cpe lnfa quasi esattamente la stessa cosa. COW a livello di blocco è un trucco per ridurre al minimo l'intervallo in cui i metadati FS non sono corretti: en.wikipedia.org/wiki/ZFS#Copy-on-write_transactional_model
BCS

Su quale tipo di sistema dovrebbe essere utilizzato?
John Gardeniers,

È abbastanza speculativo che a meno che tu non conosca un modo per farlo per un po 'di installazione (in quel caso basta inviarlo) non vorrei che le persone bruciassero il tempo a capire come farlo (a meno che non lo stiano facendo per divertimento :)
BCS

Risposte:


7

Se hai la tua scelta di piattaforma per il tuo file server, andrei con una recente build OpenSolaris e utilizzerei la funzionalità di deduplicazione di ZFS. In questo modo le copie dei file non occuperebbero spazio aggiuntivo e nemmeno i segmenti comuni tra i file non sarebbero replicati.

Puoi leggere tutto sulla deduplicazione ZFS in questo post sul blog di Jeff Bonwick .


1
ZFS è sorprendente; cambierà il modo in cui pensi allo storage
tegbains

Pulito, a meno che non ci sia un lato negativo ad averlo acceso per l'intero disco.
BCS

Ho aggiunto un collegamento a un post sul blog che contiene ulteriori dettagli tecnici. Puoi vedere se è quello che ti serve lì.
Kamil Kisiel

Nuovo URL per il post di Jeff Bonwick: blogs.oracle.com/bonwick/zfs-deduplication-v2
Mathieu

0

La maggior parte delle soluzioni di virtualizzazione di Linux offre COW a livello di file tra i sistemi operativi virtualizzati (copiati dal WP):

  • SÌ:
    • Docker, Linux-VServer, lmctfy, LXC, Singularity, Virtuozzo, Sandboxie, systemd-nspawn, Solaris Containers (ZFS), FreeBSD jail (ZFS), OpenVZ
  • NO:
    • chroot, sysjail, WPARs, account virtuali iCore, Turbo

Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia
Romeo Ninov

-2

Può essere SVN o altri strumenti di versioning (git, cvs)?


Questo è ancora peggio perché crea due copie di ogni file e li succhia su un socket.
BCS
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.