Unionfs - ce este și ce mănâncă - blog

Recent, trebuia să mă ocup de sistemul de fișiere virtuale interesant UnionFS. În acest articol aș dori să analizez în detaliu ce reprezintă EUFS și în ce situații acest FS poate fi util.

Un pic de teorie

Deci, ce scrie Wikipedia despre UnionFS?

UnionFS este un sistem de fișiere auxiliar pentru Linux și FreeBSD. Cascadă-montaj unificat de alte sisteme de fișiere. Acest lucru permite ca fișierele și directoarele sistemelor de fișiere izolate, cunoscute ca ramuri, să se suprapună în mod transparent, formând un singur sistem de fișiere conectat. Directoarele care au aceeași cale în sucursalele îmbinate vor afișa împreună conținutul în directorul fuzionat al noului sistem de fișiere virtuale.

Atunci când se montează ramuri, este indicată prioritatea unei ramuri peste cealaltă. Prin urmare, atunci când ambele ramuri conțin un fișier cu același nume, o ramură va avea o prioritate mai mare.

Acum, să examinăm exemplele reale de utilizare a UnionFS.

Avem un director accesibil cu NFS cu distribuții (arhive sursă) de porturi pe server (rareori actualizate). Pe una dintre mașinile de rețea există și un director / usr / ports / distfiles. în care există versiuni mai noi ale dist. Problema este că în magazinul de pe serverul NFS există o mulțime de fișiere necesare pentru a construi totul și totul, acestea rareori își schimbă versiunile. Și pe o mașină în rețea, numai ce a descărcat de pe Web în sine.
Cum de a face mașina de rețea să utilizeze nu numai propriile distfile, dar și distfilele serverului?

Pe mașina de rețea, faceți:

Serverul mount_nfs -o ro: / usr / ports / distfiles / mnt / server / distfiles
$ mount_unionfs -o de mai jos / mnt / server / distfiles / usr / ports / distfiles


Astfel, pe o mașină de rețea avem un copac complet cu toate distfilele. Fișierele noi vor fi salvate local (convenabil, dacă directorul NFS este pentru noi doar pentru citire). Orice fișiere modificate din directorul NFS vor fi copiate în spațiul de stocare local (/ usr / ports / distfiles al mașinii de rețea) cu aplicarea ulterioară a modificărilor. Aceste excepții sunt descrise în paragraful mount_unionfs (8).

Montați CD-ROM-ul și scrieți-l la acesta

$ mount -t cd9660 -o ro / dev / acd0 / cdrom
$ mount -t unionfs -o noatime / var / cdrom / cdrom

Acum, directorul / var / cdrom este montat pe partea de sus / cdrom și cu acesta puteți lucra ca și cu partiția obișnuită a hard disk-ului.

Link-uri utile