xfs(5)

NUME
xfs - structură, opțiuni de montare și atribute de fișiere acceptate pentru sistemul de fișiere XFS

DESCRIERE
Un sistem de fișiere XFS poate fi stocat pe o partiție de disc obișnuită sau pe un volum logic. Un sistem de fișiere XFS are până la trei părți: o secțiune de date, o secțiune de jurnal și o secțiune în timp real. Folosind opțiunile implicite mkfs.xfs(8) , secțiunea în timp real este absentă, iar zona jurnalului este conținută în secțiunea de date. Secțiunea jurnal poate fi separată de secțiunea de date sau conținută în aceasta. Secțiunile sistemului de fișiere sunt împărțite într-un anumit număr de blocuri, a căror dimensiune este specificată la mkfs.xfs(8) cu opțiunea -b.

Secțiunea de date conține toate metadatele sistemului de fișiere (noduri-i, directoare, blocuri indirecte), precum și datele fișierelor utilizatorului pentru fișierele obișnuite (non-real-time) și zona de jurnal, dacă jurnalul este intern pentru secțiunea de date. Secțiunea de date este împărțită într-un număr de grupuri de alocare. Numărul și dimensiunea grupurilor de alocare sunt alese de mkfs.xfs(8) astfel încât, în mod normal, să existe un număr mic de grupuri de dimensiuni egale. Numărul grupurilor de alocare controlează cantitatea de paralelism disponibilă în alocarea fișierelor și blocurilor. Acesta ar trebui mărit față de valoarea implicită dacă există suficientă memorie și o activitate intensă de alocare. Numărul de grupuri de alocare nu trebuie să fie stabilit la o valoare foarte mare, deoarece acest lucru poate determina utilizarea unei cantități mari de timp CPU de către sistemul de fișiere, în special când sistemul de fișiere este aproape plin. Se adaugă mai multe grupuri de alocare (de dimensiunea inițială) când se execută xfs_growfs(8) .

Secțiunea de jurnal (sau zona, dacă este internă secțiunii de date) este utilizată pentru a stoca modificările aduse metadatelor sistemului de fișiere în timp ce sistemul de fișiere rulează, până când aceste modificări sunt aduse secțiunii de date. Este scrisă secvențial în timpul funcționării normale și citită numai în timpul montării. La montarea unui sistem de fișiere după o blocare, jurnalul este citit pentru a finaliza operațiile care erau în curs de desfășurare în momentul blocării.

Secțiunea în timp real este utilizată pentru stocarea datelor din fișiere în timp real. Aceste fișiere aveau un bit de atribut activat prin xfsctl(3) după crearea fișierului, înainte ca orice date să fie scrise în fișier. Secțiunea în timp real este împărțită într-un număr de extents de dimensiune fixă (specificată la mkfs.xfs(8) ). Fiecare fișier din secțiunea în timp real are o dimensiune extent care este un multiplu al dimensiunii extent a secțiunii în timp real.

Fiecare grup de alocare conține mai multe structuri de date. Primul sector conține super-blocul. Pentru grupurile de alocare după primul, super-blocul este doar o copie și nu este actualizat după mkfs.xfs(8). Următoarele trei sectoare conțin informații pentru alocarea blocurilor și nodurilor-i în cadrul grupului de alocare. De asemenea, fiecare grup de alocare conține structuri de date pentru localizarea blocurilor și nodurilor-i libere; acestea sunt localizate prin structurile antetului.

Fiecare sistem de fișiere XFS este etichetat cu un identificator universal unic (UUID). UUID-ul este stocat în fiecare antet al grupului de alocare și este utilizat pentru a distinge un sistem de fișiere XFS de altul, prin urmare, ar trebui să evitați utilizarea dd(1) sau a altor programe de copiere bloc cu bloc pentru a copia sisteme de fișiere XFS. Dacă două sisteme de fișiere XFS de pe aceeași mașină au același UUID, xfsdump(8) poate deveni confuz atunci când efectuează dump-uri incrementale și reluate. xfsdump(8) și xfsrestore(8) sunt recomandate pentru realizarea copiilor sistemelor de fișiere XFS. Pentru a monta o instantanee a unui sistem de fișiere deja montat, poate fi necesar să furnizați opțiunea nouuid către mount (8).

OPERAȚII
Anumite funcționalități specifice sistemului de fișiere XFS sunt accesibile aplicațiilor prin intermediul interfețelor xfsctl(3) și by-handle (a se vedea open_by_handle(3)) .

OPȚIUNI DE MONTARE
Următoarele opțiuni de montare specifice XFS pot fi utilizate la montarea unui sistem de fișiere XFS. Pot fi utilizate și alte opțiuni generice; consultați pagina de manual mount(8) pentru mai multe detalii.

allocsize=dimensiune
    Stabilește dimensiunea de prealocare a sfârșitului fișierului de In/Ieș stocat în memoria tampon atunci când se efectuează scrierea alocării întârziate. Valorile valide pentru această opțiune sunt dimensiunea paginii (de obicei 4 Kio) până la 1 Gio, inclusiv, în incremente de putere a lui 2.

    Comportamentul implicit este pentru dimensiunea dinamică de prealocare la sfârșitul fișierului, care utilizează un set de euristici pentru a optimiza dimensiunea de prealocare pe baza modelelor actuale de alocare din fișier și a modelelor de acces la fișier. Specificarea unei valori fixe pentru allocsize dezactivează comportamentul dinamic.

attr2|noattr2
    Notă: Aceste opțiuni au fost depreciate începând cu nucleul v5.10; opțiunea noattr2 va fi eliminată nu mai devreme de septembrie 2025, iar opțiunea attr2 va fi imuabilă în mod implicit.

    Opțiunile activează/dezactivează o îmbunătățire „oportunistă” a modului în care atributele extinse „inline” sunt stocate pe disc. Când noul format este utilizat pentru prima dată atunci când este selectat attr2 (fie la activarea, fie la eliminarea atributelor extinse), câmpul de biți al caracteristicii super-blocului de pe disc va fi actualizat pentru a reflecta acest format utilizat.

    Comportamentul implicit este determinat de bitul de caracteristică de pe disc care indică faptul că comportamentul attr2 este activ. Dacă este definită oricare dintre opțiunile de montare, aceasta devine noua valoare implicită utilizată de sistemul de fișiere.

    Sistemele de fișiere cu CRC activat utilizează întotdeauna formatul attr2 și, prin urmare, vor respinge opțiunea de montare noattr2 dacă aceasta este activată.

dax=valoare
    Stabilește comportamentul accesului direct la CPU (DAX) pentru sistemul de fișiere curent. Această opțiune de montare acceptă următoarele valori:

    "dax=inode" DAX va fi activat numai pe fișierele obișnuite cărora li s-a aplicat FS_XFLAG_DAX.

    "dax=never" DAX nu va fi activat pentru niciun fișier. Fanionul FS_XFLAG_DAX va fi ignorat.

    "dax=always" DAX va fi activat pentru toate fișierele obișnuite, indiferent de starea fanionului FS_XFLAG_DAX.

    Dacă nu se utilizează nicio opțiune la montarea unui sistem de fișiere stocat pe un dispozitiv compatibil DAX, se va utiliza implicit dax=inode.

    Pentru detalii privind comportamentul DAX în nucleu, consultați documentația nucleului la filesystems/dax.txt.

discard|nodiscard
    Activează/dezactivează emiterea de comenzi pentru a permite dispozitivului bloc să recupereze spațiul eliberat de sistemul de fișiere. Această opțiune este utilă pentru dispozitivele SSD, LUN-urile cu alocare redusă și imaginile mașinilor virtuale, dar poate avea un impact asupra performanței.

    Notă: În prezent, se recomandă utilizarea aplicației fstrim pentru a elimina blocurile neutilizate, în locul opțiunii de montare, discard, deoarece impactul acestei opțiuni asupra performanței este destul de sever. Din acest motiv, nodiscard este setarea implicită.

grpid|bsdgroups|nogrpid|sysvgroups
    Aceste opțiuni definesc ID-ul de grup pe care îl primește un fișier nou creat. Când grpid este definit, acesta preia ID-ul de grup al directorului în care este creat; în caz contrar, preia fsgid-ul procesului curent, cu excepția cazului în care directorul are activat bitul setgid, caz în care preia gid-ul din directorul părinte și, de asemenea, primește bitul setgid activat dacă este el însuși un director.

filestreams
    Face ca alocatorul de date să utilizeze modul de alocare filestreams în întregul sistem de fișiere, nu doar în directoarele configurate să îl utilizeze.

ikeep|noikeep
    Notă: Aceste opțiuni au fost depreciate începând cu nucleul v5.10; opțiunea noikeep va fi eliminată nu mai devreme de septembrie 2025, iar opțiunea ikeep va fi imuabilă în mod implicit.

    Când este specificată opțiunea ikeep, XFS nu șterge clusterele de noduri-i goale și le păstrează pe disc. Când este specificată opțiunea noikeep, clusterele de noduri-i goale sunt returnate în spațiul liber. noikeep este opțiunea implicită.

inode32|inode64
    Când se specifică inode32, aceasta indică faptul că XFS limitează crearea nodurilor-i la locații care nu vor genera numere de noduri-i cu mai mult de 32 de biți semnificativi.

    Când se specifică inode64, aceasta indică faptul că XFS are permisiunea de a crea noduri-i în orice locație din sistemul de fișiere, inclusiv cele care vor avea numere de noduri-i care ocupă mai mult de 32 de biți de semnificație.

    inode32 este furnizată pentru compatibilitate cu sistemele și aplicațiile mai vechi, deoarece numerele de noduri-i de 64 de biți pot cauza probleme pentru unele aplicații care nu pot gestiona numere de noduri-i mari. Dacă se utilizează aplicații care nu pot gestiona numere de noduri-i mai mari de 32 de biți, trebuie specificată opțiunea inode32.

    Pentru nucleul v3.7 și versiunile ulterioare, inode64 este opțiunea implicită.

largeio|nolargeio
    Dacă se specifică „nolargeio”, In/Ieș optimă raportată în st_blksize de stat(2) va fi cât mai mică posibil pentru a permite aplicațiilor utilizatorului să evite In/Ieș ineficientă de citire/modificare/scriere. Aceasta este de obicei dimensiunea paginii mașinii, deoarece aceasta este gradul de finețe al dimensiunii cache-ului paginii.

    Dacă este specificat „largeio”, un sistem de fișiere creat cu „swidth” specificat va returna valoarea „swidth” (în octeți) în st_blksize. Dacă sistemul de fișiere nu are „swidth” specificat, dar specifică „allocsize”, atunci va fi returnată „allocsize” (în octeți). În caz contrar, comportamentul este același ca și când ar fi specificat „nolargeio”. nolargeio este opțiunea implicită.

logbufs=valoare
    Stabilește numărul de tampoane de jurnal în memorie. Numerele valide sunt cuprinse între 2 și 8 inclusiv.

    Valoarea implicită este 8 tampoane de memorie.

    Dacă costul de memorie al celor 8 tampoane de jurnal este prea mare pe sistemele mici, acesta poate fi redus cu un anumit cost pentru performanța sarcinilor de lucru intensive în metadate. Opțiunea logbsize de mai jos controlează dimensiunea fiecărui tampon și, prin urmare, este relevantă și în acest caz.

logbsize=valoare
    Stabilește dimensiunea fiecărui tampon de jurnal în memorie. Dimensiunea poate fi specificată în octeți sau în kibiocteți (Kio) cu sufixul „k”. Dacă este definită manual, logbsize trebuie să fie una dintre dimensiunile valide specificate și un multiplu al unității de bandă de jurnal - configurată la momentul executării mkfs.

    Dimensiunile valide pentru jurnalele versiunii 1 și versiunii 2 sunt 16384 (valoare=16k) și 32768 (valoare=32k). Dimensiunile valide pentru jurnalele versiunii 2 includ, de asemenea, 65536 (valoare=64k), 131072 (valoare=128k) și 262144 (valoare=256k).

    Valoarea implicită pentru jurnalele versiunii 1 este 32768, în timp ce valoarea implicită pentru jurnalele versiunii 2 este max(32768, log_sunit), chiar dacă log_sunit nu corespunde uneia dintre valorile valide de mai sus.

logdev=dispozitiv și rtdev=dispozitiv
    Utilizează un jurnal extern (jurnal de metadate) și/sau un dispozitiv în timp real. Un sistem de fișiere XFS are până la trei părți: o secțiune de date, o secțiune de jurnal și o secțiune în timp real. Secțiunea în timp real este opțională, iar secțiunea de jurnal poate fi separată de secțiunea de date sau poate fi inclusă în aceasta.

noalign
    Alocările de date nu vor fi aliniate la limitele unităților de bandă. Acest lucru este relevant numai pentru sistemele de fișiere create cu parametri de aliniere a datelor diferiți de zero (sunit, swidth) de către mkfs.

norecovery
    Sistemul de fișiere va fi montat fără a rula recuperarea jurnalului. Dacă sistemul de fișiere nu a fost demontat corect, este probabil să fie inconsistent atunci când este montat în modul „norecovery”. Din această cauză, este posibil ca unele fișiere sau directoare să nu fie accesibile. Sistemele de fișiere montate în modul „norecovery” trebuie montate în modul „read-only” (numai-pentru-citire), altfel montarea va eșua.

nouuid
    Nu verifică dacă există sisteme de fișiere montate dublu utilizând uuid-ul sistemului de fișiere. Acest lucru este util pentru montarea volumelor snapshot LVM și este adesea utilizată în combinație cu „norecovery” pentru montarea snapshot-urilor numai-pentru-citire.

noquota
    Oprește forțat toate operațiile de contabilizare și aplicare a cotelor în cadrul sistemului de fișiere.

uquota/usrquota/quota/uqnoenforce/qnoenforce
    Contabilizarea cotei de disc a utilizatorului este activată, iar limitele sunt aplicate (opțional). Pentru mai multe detalii, consultați xfs_quota(8).

gquota/grpquota/gqnoenforce
    Contabilizarea cotelor de disc pentru grupuri este activată și limitele sunt aplicate (opțional). Pentru mai multe detalii, consultați xfs_quota(8).

pquota/prjquota/pqnoenforce
    Contabilizarea cotei de disc a proiectului este activată și limitele sunt aplicate (opțional). Consultați xfs_quota(8) pentru mai multe detalii.

sunit=valoare and swidth=valoare
    Utilizată pentru a specifica unitatea și lățimea benzii pentru un dispozitiv RAID sau un volum de bandă. „Valoarea” trebuie specificată în unități de bloc de 512 octeți. Aceste opțiuni sunt relevante numai pentru sistemele de fișiere care au fost create cu parametri de aliniere a datelor diferiți de zero.

    Parametrii sunit și swidth specificați trebuie să fie compatibili cu caracteristicile de aliniere ale sistemului de fișiere existent. În general, aceasta înseamnă că singurele modificări valide ale sunit sunt creșterea acestuia cu un multiplu de putere 2. Valorile valide ale swidth sunt orice multiplu întreg al unei valori sunit valide.

    De obicei, aceste opțiuni de montare sunt necesare numai în cazul în care geometria unui dispozitiv RAID subiacent a fost modificată, de exemplu prin adăugarea unui nou disc la un lun RAID5 și remodelarea acestuia.

swalloc
    Alocările de date vor fi rotunjite la limitele lățimii benzii atunci când sfârșitul curent al fișierului este extins și dimensiunea fișierului este mai mare decât lățimea benzii.

wsync
    Când este specificată, toate operațiile din spațiul de nume al sistemului de fișiere sunt executate sincron. Acest lucru asigură că, atunci când operația din spațiul de nume (creare, eliminare etc.) se finalizează, modificarea spațiului de nume se află pe un spațiu de stocare stabil. Acest lucru este util în configurațiile HA în care failover-ul nu trebuie să ducă la afișarea unui spațiu de nume inconsistent pentru clienți în timpul sau după un eveniment de failover.

OPȚIUNI DE MONTARE ELIMINATE
Următoarele opțiuni de montare au fost eliminate din nucleu și vor genera erori de montare dacă sunt specificate. Opțiunile de montare sunt depreciate pentru o perioadă semnificativă de timp înainte de eliminare.
Nume | Eliminată
---- | -------
delaylog/nodelaylog | v4.0
ihashsize | v4.0
irixsgid | v4.0
osyncisdsync/osyncisosync | v4.0
barrier/nobarrier | v4.19

ATRIBUTELE FIȘIERELOR
Sistemul de fișiere XFS acceptă configurarea următoarelor atribute de fișier pe sistemele Linux utilizând instrumentul chattr(1) :

a - doar adăugare

A - fără actualizare a timpului de acces („atime”)

d - fără copie de rezervă prin programul dump

i - imuabil

S - actualizări sincrone

Pentru descrieri ale acestor fanioane de atribute, consultați pagina de manual chattr(1).

CONSULTAȚI ȘI
chattr(1), xfsctl(3), mount(8), mkfs.xfs(8), xfs_info(8), xfs_admin(8), xfsdump(8), xfsrestore(8).

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.