User Tools

Site Tools


doc:appunti:linux:sa:unionfs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
doc:appunti:linux:sa:unionfs [2010/01/24 17:00] niccolodoc:appunti:linux:sa:unionfs [2010/02/07 21:52] (current) niccolo
Line 1: Line 1:
 ====== Unionfs ====== ====== Unionfs ======
  
-Esistono molte implementazioni di Unionfs:+Esistono molte implementazioni di Unionfs, in kernel space e in user space.
  
-**unionfs**+==== unionfs ====
  
 L'implementazione di **[[http://www.filesystems.org/|www.filesystems.org]]**, si tratta di un modulo kernel che tuttavia non è incluso nel kernel ufficiale. È disponibile per kernel recenti (anche l'ultimo 2.6.32) ed è alla sua seconda versione. **Debian** lo ha incluso fino alla versione **4 Etch** con il pacchetto **%%unionfs-modules-*%%**, il relativo **unionfs-tools** e **unionfs-source**. Il pacchetto è stato abbandonato in favore di aufs con il bug [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484842|#484842]]. L'implementazione di **[[http://www.filesystems.org/|www.filesystems.org]]**, si tratta di un modulo kernel che tuttavia non è incluso nel kernel ufficiale. È disponibile per kernel recenti (anche l'ultimo 2.6.32) ed è alla sua seconda versione. **Debian** lo ha incluso fino alla versione **4 Etch** con il pacchetto **%%unionfs-modules-*%%**, il relativo **unionfs-tools** e **unionfs-source**. Il pacchetto è stato abbandonato in favore di aufs con il bug [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=484842|#484842]].
  
-**aufs**+==== aufs ====
  
 L'implementazione [[http://aufs.sourceforge.net/|aufs.sourceforge.net]], anch'essa alla versione 2, è nata come fork di unionfs versione 1. **Debian 5 Lenny** include i pacchetti **%%aufs-modules-*%%**, **aufs-tools** e **aufs-source**. Anche in questo caso Linus ha rifiutato l'inclusione nel kernel ufficiale. L'implementazione [[http://aufs.sourceforge.net/|aufs.sourceforge.net]], anch'essa alla versione 2, è nata come fork di unionfs versione 1. **Debian 5 Lenny** include i pacchetti **%%aufs-modules-*%%**, **aufs-tools** e **aufs-source**. Anche in questo caso Linus ha rifiutato l'inclusione nel kernel ufficiale.
  
-**unionfs-fuse**+==== unionfs-fuse ====
  
 [[http://podgorny.cz/moin/UnionFsFuse|unionfs-fuse]] implementazione di unionfs in user-space tramite **fuse**. [[http://podgorny.cz/moin/UnionFsFuse|unionfs-fuse]] implementazione di unionfs in user-space tramite **fuse**.
  
-**funionfs**+==== funionfs ====
  
 [[http://funionfs.apiou.org/|funionfs.apiou.org]] [[http://funionfs.apiou.org/|funionfs.apiou.org]]
 +
 +===== Esempio con unionfs =====
 +
 +Supponiamo che esistano le directory **''/opt/data_ro''** e **''/opt/data_rw''** che vogliamo montare in **''/media/union''**, la componente ''data_ro'' sarà montata in sola lettura, tutte le modifiche andranno in ''data_rw''.
 +
 +Ecco il comando da eseguire:
 +
 +<code>
 +mount -t unionfs -o dirs=/opt/data_rw=rw:/opt/data_ro=ro unionfs /media/union
 +</code>
 +
 +oppure la corrispondente riga da aggiungere in ''/etc/fstab'':
 +
 +<file>
 +none  /media/union unionfs rw,dirs=/opt/data_rw=rw:/opt/data_ro=ro 0 0
 +</file>
 +
 +===== I file nascosti .wh. =====
 +
 +Nella componente read/write montata più in alto nella pila unionfs si possono trovare diversi file nascosti il cui nome inizia per **''%%.wh.%%''**, si tratta di flag che indicano se un file deve essere //whited out// (nascosto), oppure indica se una directory deve essere //opaca// (''%%.wh.__dir_opaque%%'') cioè nascondere altri oggetti sottostanti.
 +
 +//Unionfs On Disk Format// (ODF) è una versione migliorata; le meta-informazioni sui file eliminati ecc. vengono memorizzate in una partizione separata, senza inquinare i filesystem sottostanti. Altri dettagli in [[http://filesystems.org/unionfs-odf.txt|ODF: On Disk Format for Unionfs 2.x]].
 +
 +===== Scrivere direttamente nelle componenti di uno unionfs =====
 +
 +Non è consigliabile modificare il contenuto delle directory componenti mentre l'unionfs è montato, sia che si tratti di componenti **ro** che componenti **rw**. Vale la semantica dello unionfs, compresi i file nascosti **''.wh.''**, ma potrebbero capitare casi indesiderati (unionfs ha in cache informazioni non più consistenti).
 +
 +Per gestire questi problemi il filesystem aufs ha l'opzione di montaggio **''udba''** (User's Direct Branch Access) con vari gradi di affidabilità e performance inversamente proporzionali. Vedere **''man mount.aufs(8)''**.
doc/appunti/linux/sa/unionfs.1264352459.txt.gz · Last modified: 2010/01/24 17:00 by niccolo