xfs(5) File Formats Manual xfs(5) NUME xfs - structura, opiuni de montare i atribute de fiiere acceptate pentru sistemul de fiiere XFS DESCRIERE Un sistem de fiiere XFS poate fi stocat pe o partiie de disc obinuita sau pe un volum logic. Un sistem de fiiere XFS are pana la trei pari: o seciune de date, o seciune de jurnal i o seciune in timp real. Folosind opiunile implicite mkfs.xfs(8) , seciunea in timp real este absenta, iar zona jurnalului este coninuta in seciunea de date. Seciunea jurnal poate fi separata de seciunea de date sau coninuta in aceasta. Seciunile sistemului de fiiere sunt imparite intr-un anumit numar de blocuri, a caror dimensiune este specificata la mkfs.xfs(8) cu opiunea -b. Seciunea de date conine toate metadatele sistemului de fiiere (noduri-i, directoare, blocuri indirecte), precum i datele fiierelor utilizatorului pentru fiierele obinuite (non-real-time) i zona de jurnal, daca jurnalul este intern pentru seciunea de date. Seciunea de date este imparita intr-un numar de grupuri de alocare. Numarul i dimensiunea grupurilor de alocare sunt alese de mkfs.xfs(8) astfel incat, in mod normal, sa existe un numar mic de grupuri de dimensiuni egale. Numarul grupurilor de alocare controleaza cantitatea de paralelism disponibila in alocarea fiierelor i blocurilor. Acesta ar trebui marit faa de valoarea implicita daca exista suficienta memorie i o activitate intensa de alocare. Numarul de grupuri de alocare nu trebuie sa fie stabilit la o valoare foarte mare, deoarece acest lucru poate determina utilizarea unei cantitai mari de timp CPU de catre sistemul de fiiere, in special cand sistemul de fiiere este aproape plin. Se adauga mai multe grupuri de alocare (de dimensiunea iniiala) cand se executa xfs_growfs(8) . Seciunea de jurnal (sau zona, daca este interna seciunii de date) este utilizata pentru a stoca modificarile aduse metadatelor sistemului de fiiere in timp ce sistemul de fiiere ruleaza, pana cand aceste modificari sunt aduse seciunii de date. Este scrisa secvenial in timpul funcionarii normale i citita numai in timpul montarii. La montarea unui sistem de fiiere dupa o blocare, jurnalul este citit pentru a finaliza operaiile care erau in curs de desfaurare in momentul blocarii. Seciunea in timp real este utilizata pentru stocarea datelor din fiiere in timp real. Aceste fiiere aveau un bit de atribut activat prin xfsctl(3) dupa crearea fiierului, inainte ca orice date sa fie scrise in fiier. Seciunea in timp real este imparita intr-un numar de extents de dimensiune fixa (specificata la mkfs.xfs(8) ). Fiecare fiier din seciunea in timp real are o dimensiune extent care este un multiplu al dimensiunii extent a seciunii in timp real. Fiecare grup de alocare conine mai multe structuri de date. Primul sector conine super-blocul. Pentru grupurile de alocare dupa primul, super-blocul este doar o copie i nu este actualizat dupa mkfs.xfs(8). Urmatoarele trei sectoare conin informaii pentru alocarea blocurilor i nodurilor-i in cadrul grupului de alocare. De asemenea, fiecare grup de alocare conine structuri de date pentru localizarea blocurilor i nodurilor-i libere; acestea sunt localizate prin structurile antetului. Fiecare sistem de fiiere XFS este etichetat cu un identificator universal unic (UUID). UUID-ul este stocat in fiecare antet al grupului de alocare i este utilizat pentru a distinge un sistem de fiiere XFS de altul, prin urmare, ar trebui sa evitai utilizarea dd(1) sau a altor programe de copiere bloc cu bloc pentru a copia sisteme de fiiere XFS. Daca doua sisteme de fiiere XFS de pe aceeai maina au acelai UUID, xfsdump(8) poate deveni confuz atunci cand efectueaza dump-uri incrementale i reluate. xfsdump(8) i xfsrestore(8) sunt recomandate pentru realizarea copiilor sistemelor de fiiere XFS. Pentru a monta o instantanee a unui sistem de fiiere deja montat, poate fi necesar sa furnizai opiunea nouuid catre mount (8). OPERAII Anumite funcionalitai specifice sistemului de fiiere XFS sunt accesibile aplicaiilor prin intermediul interfeelor xfsctl(3) i by-handle (a se vedea open_by_handle(3)) . OPIUNI DE MONTARE Urmatoarele opiuni de montare specifice XFS pot fi utilizate la montarea unui sistem de fiiere XFS. Pot fi utilizate i alte opiuni generice; consultai pagina de manual mount(8) pentru mai multe detalii. allocsize=dimensiune Stabilete dimensiunea de prealocare a sfaritului fiierului de In/Ie stocat in memoria tampon atunci cand se efectueaza scrierea alocarii intarziate. Valorile valide pentru aceasta opiune sunt dimensiunea paginii (de obicei 4 Kio) pana la 1 Gio, inclusiv, in incremente de putere a lui 2. Comportamentul implicit este pentru dimensiunea dinamica de prealocare la sfaritul fiierului, care utilizeaza un set de euristici pentru a optimiza dimensiunea de prealocare pe baza modelelor actuale de alocare din fiier i a modelelor de acces la fiier. Specificarea unei valori fixe pentru allocsize dezactiveaza comportamentul dinamic. attr2|noattr2 Nota: Aceste opiuni au fost depreciate incepand cu nucleul v5.10; opiunea noattr2 va fi eliminata nu mai devreme de septembrie 2025, iar opiunea attr2 va fi imuabila in mod implicit. Opiunile activeaza/dezactiveaza o imbunataire ,,oportunista" a modului in care atributele extinse ,,inline" sunt stocate pe disc. Cand noul format este utilizat pentru prima data atunci cand este selectat attr2 (fie la activarea, fie la eliminarea atributelor extinse), campul de bii al caracteristicii super-blocului de pe disc va fi actualizat pentru a reflecta acest format utilizat. Comportamentul implicit este determinat de bitul de caracteristica de pe disc care indica faptul ca comportamentul attr2 este activ. Daca este definita oricare dintre opiunile de montare, aceasta devine noua valoare implicita utilizata de sistemul de fiiere. Sistemele de fiiere cu CRC activat utilizeaza intotdeauna formatul attr2 i, prin urmare, vor respinge opiunea de montare noattr2 daca aceasta este activata. dax=valoare Stabilete comportamentul accesului direct la CPU (DAX) pentru sistemul de fiiere curent. Aceasta opiune de montare accepta urmatoarele valori: "dax=inode" DAX va fi activat numai pe fiierele obinuite carora li s-a aplicat FS_XFLAG_DAX. "dax=never" DAX nu va fi activat pentru niciun fiier. Fanionul FS_XFLAG_DAX va fi ignorat. "dax=always" DAX va fi activat pentru toate fiierele obinuite, indiferent de starea fanionului FS_XFLAG_DAX. Daca nu se utilizeaza nicio opiune la montarea unui sistem de fiiere stocat pe un dispozitiv compatibil DAX, se va utiliza implicit dax=inode. Pentru detalii privind comportamentul DAX in nucleu, consultai documentaia nucleului la filesystems/dax.txt. discard|nodiscard Activeaza/dezactiveaza emiterea de comenzi pentru a permite dispozitivului bloc sa recupereze spaiul eliberat de sistemul de fiiere. Aceasta opiune este utila pentru dispozitivele SSD, LUN-urile cu alocare redusa i imaginile mainilor virtuale, dar poate avea un impact asupra performanei. Nota: In prezent, se recomanda utilizarea aplicaiei fstrim pentru a elimina blocurile neutilizate, in locul opiunii de montare, discard, deoarece impactul acestei opiuni asupra performanei este destul de sever. Din acest motiv, nodiscard este setarea implicita. grpid|bsdgroups|nogrpid|sysvgroups Aceste opiuni definesc ID-ul de grup pe care il primete un fiier nou creat. Cand grpid este definit, acesta preia ID-ul de grup al directorului in care este creat; in caz contrar, preia fsgid-ul procesului curent, cu excepia cazului in care directorul are activat bitul setgid, caz in care preia gid-ul din directorul parinte i, de asemenea, primete bitul setgid activat daca este el insui un director. filestreams Face ca alocatorul de date sa utilizeze modul de alocare filestreams in intregul sistem de fiiere, nu doar in directoarele configurate sa il utilizeze. ikeep|noikeep Nota: Aceste opiuni au fost depreciate incepand cu nucleul v5.10; opiunea noikeep va fi eliminata nu mai devreme de septembrie 2025, iar opiunea ikeep va fi imuabila in mod implicit. Cand este specificata opiunea ikeep, XFS nu terge clusterele de noduri-i goale i le pastreaza pe disc. Cand este specificata opiunea noikeep, clusterele de noduri-i goale sunt returnate in spaiul liber. noikeep este opiunea implicita. inode32|inode64 Cand se specifica inode32, aceasta indica faptul ca XFS limiteaza crearea nodurilor-i la locaii care nu vor genera numere de noduri-i cu mai mult de 32 de bii semnificativi. Cand se specifica inode64, aceasta indica faptul ca XFS are permisiunea de a crea noduri-i in orice locaie din sistemul de fiiere, inclusiv cele care vor avea numere de noduri-i care ocupa mai mult de 32 de bii de semnificaie. inode32 este furnizata pentru compatibilitate cu sistemele i aplicaiile mai vechi, deoarece numerele de noduri-i de 64 de bii pot cauza probleme pentru unele aplicaii care nu pot gestiona numere de noduri-i mari. Daca se utilizeaza aplicaii care nu pot gestiona numere de noduri-i mai mari de 32 de bii, trebuie specificata opiunea inode32. Pentru nucleul v3.7 i versiunile ulterioare, inode64 este opiunea implicita. largeio|nolargeio Daca se specifica ,,nolargeio", In/Ie optima raportata in st_blksize de stat(2) va fi cat mai mica posibil pentru a permite aplicaiilor utilizatorului sa evite In/Ie ineficienta de citire/modificare/scriere. Aceasta este de obicei dimensiunea paginii mainii, deoarece aceasta este gradul de finee al dimensiunii cache-ului paginii. Daca este specificat ,,largeio", un sistem de fiiere creat cu ,,swidth" specificat va returna valoarea ,,swidth" (in octei) in st_blksize. Daca sistemul de fiiere nu are ,,swidth" specificat, dar specifica ,,allocsize", atunci va fi returnata ,,allocsize" (in octei). In caz contrar, comportamentul este acelai ca i cand ar fi specificat ,,nolargeio". nolargeio este opiunea implicita. logbufs=valoare Stabilete numarul de tampoane de jurnal in memorie. Numerele valide sunt cuprinse intre 2 i 8 inclusiv. Valoarea implicita este 8 tampoane de memorie. Daca costul de memorie al celor 8 tampoane de jurnal este prea mare pe sistemele mici, acesta poate fi redus cu un anumit cost pentru performana sarcinilor de lucru intensive in metadate. Opiunea logbsize de mai jos controleaza dimensiunea fiecarui tampon i, prin urmare, este relevanta i in acest caz. logbsize=valoare Stabilete dimensiunea fiecarui tampon de jurnal in memorie. Dimensiunea poate fi specificata in octei sau in kibioctei (Kio) cu sufixul ,,k". Daca este definita manual, logbsize trebuie sa fie una dintre dimensiunile valide specificate i un multiplu al unitaii de banda de jurnal - configurata la momentul executarii 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 implicita pentru jurnalele versiunii 1 este 32768, in timp ce valoarea implicita pentru jurnalele versiunii 2 este max(32768, log_sunit), chiar daca log_sunit nu corespunde uneia dintre valorile valide de mai sus. logdev=dispozitiv i rtdev=dispozitiv Utilizeaza un jurnal extern (jurnal de metadate) i/sau un dispozitiv in timp real. Un sistem de fiiere XFS are pana la trei pari: o seciune de date, o seciune de jurnal i o seciune in timp real. Seciunea in timp real este opionala, iar seciunea de jurnal poate fi separata de seciunea de date sau poate fi inclusa in aceasta. noalign Alocarile de date nu vor fi aliniate la limitele unitailor de banda. Acest lucru este relevant numai pentru sistemele de fiiere create cu parametri de aliniere a datelor diferii de zero (sunit, swidth) de catre mkfs. norecovery Sistemul de fiiere va fi montat fara a rula recuperarea jurnalului. Daca sistemul de fiiere nu a fost demontat corect, este probabil sa fie inconsistent atunci cand este montat in modul ,,norecovery". Din aceasta cauza, este posibil ca unele fiiere sau directoare sa nu fie accesibile. Sistemele de fiiere montate in modul ,,norecovery" trebuie montate in modul ,,read-only" (numai-pentru-citire), altfel montarea va eua. nouuid Nu verifica daca exista sisteme de fiiere montate dublu utilizand uuid-ul sistemului de fiiere. Acest lucru este util pentru montarea volumelor snapshot LVM i este adesea utilizata in combinaie cu ,,norecovery" pentru montarea snapshot-urilor numai-pentru-citire. noquota Oprete forat toate operaiile de contabilizare i aplicare a cotelor in cadrul sistemului de fiiere. uquota/usrquota/quota/uqnoenforce/qnoenforce Contabilizarea cotei de disc a utilizatorului este activata, iar limitele sunt aplicate (opional). Pentru mai multe detalii, consultai xfs_quota(8). gquota/grpquota/gqnoenforce Contabilizarea cotelor de disc pentru grupuri este activata i limitele sunt aplicate (opional). Pentru mai multe detalii, consultai xfs_quota(8). pquota/prjquota/pqnoenforce Contabilizarea cotei de disc a proiectului este activata i limitele sunt aplicate (opional). Consultai xfs_quota(8) pentru mai multe detalii. sunit=valoare and swidth=valoare Utilizata pentru a specifica unitatea i laimea benzii pentru un dispozitiv RAID sau un volum de banda. ,,Valoarea" trebuie specificata in unitai de bloc de 512 octei. Aceste opiuni sunt relevante numai pentru sistemele de fiiere care au fost create cu parametri de aliniere a datelor diferii de zero. Parametrii sunit i swidth specificai trebuie sa fie compatibili cu caracteristicile de aliniere ale sistemului de fiiere existent. In general, aceasta inseamna ca singurele modificari valide ale sunit sunt creterea acestuia cu un multiplu de putere 2. Valorile valide ale swidth sunt orice multiplu intreg al unei valori sunit valide. De obicei, aceste opiuni de montare sunt necesare numai in cazul in care geometria unui dispozitiv RAID subiacent a fost modificata, de exemplu prin adaugarea unui nou disc la un lun RAID5 i remodelarea acestuia. swalloc Alocarile de date vor fi rotunjite la limitele laimii benzii atunci cand sfaritul curent al fiierului este extins i dimensiunea fiierului este mai mare decat laimea benzii. wsync Cand este specificata, toate operaiile din spaiul de nume al sistemului de fiiere sunt executate sincron. Acest lucru asigura ca, atunci cand operaia din spaiul de nume (creare, eliminare etc.) se finalizeaza, modificarea spaiului de nume se afla pe un spaiu de stocare stabil. Acest lucru este util in configuraiile HA in care failover-ul nu trebuie sa duca la afiarea unui spaiu de nume inconsistent pentru clieni in timpul sau dupa un eveniment de failover. OPIUNI DE MONTARE ELIMINATE Urmatoarele opiuni de montare au fost eliminate din nucleu i vor genera erori de montare daca sunt specificate. Opiunile de montare sunt depreciate pentru o perioada semnificativa de timp inainte de eliminare. Nume Eliminata ---- ------- delaylog/nodelaylog v4.0 ihashsize v4.0 irixsgid v4.0 osyncisdsync/osyncisosync v4.0 barrier/nobarrier v4.19 ATRIBUTELE FIIERELOR Sistemul de fiiere XFS accepta configurarea urmatoarelor atribute de fiier pe sistemele Linux utilizand instrumentul chattr(1) : a - doar adaugare A - fara actualizare a timpului de acces (,,atime") d - fara copie de rezerva prin programul dump i - imuabil S - actualizari sincrone Pentru descrieri ale acestor fanioane de atribute, consultai pagina de manual chattr(1). CONSULTAI I chattr(1), xfsctl(3), mount(8), mkfs.xfs(8), xfs_info(8), xfs_admin(8), xfsdump(8), xfsrestore(8). TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . xfs(5)