Principiile managementului sistemului Sistemul de operare și dispozitivele - compresie de date

Notă: Comprimarea datelor se aplică numai pentru JFS.

Sistemul de fișiere cu jurnal (JFS) suportă sisteme de fișiere fragmentate și comprimate. În aceste tipuri de sisteme de fișiere de economii de memorie pe disc realizate prin faptul că dimensiunea minimă a unui bloc logic (track) pe fișierul disc este mai mică decât dimensiunea blocului fizic (4 KB). Într-un sistem de fișiere fragmentat, în aceste fragmente sunt stocate numai ultimele blocuri logice de fișiere de maximum 32 KB. Într-un sistem de fișiere comprimat, toate blocurile de fișiere de orice dimensiune pot fi stocate în astfel de fragmente. În medie, aproximativ 50% din stocarea pe disc este salvată prin comprimarea datelor.







Folosirea fragmentelor și comprimarea datelor, cu toate acestea, crește riscul de fragmentare a spațiului pe disc. Fragmentele alocate unui bloc logic trebuie să ocupe o zonă de memorie continuă. Într-un sistem de fișiere cu spațiu liber fragmentat, este uneori dificil să se selecteze un număr suficient de segmente contigue libere necesare pentru a se potrivi blocului logic, chiar și un număr mare de fragmente libere. În JFS, programul defragfs este folosit pentru a rezolva problema fragmentării. Unirea blocurilor libere în lanțurile consecutive. Cu acest utilitar, puteți mări cantitatea de memorie liberă continuă în sistemele de fișiere fragmentate și comprimate. Salvarea spațiului de disc din cauza utilizării fragmentelor și a compresiei datelor este suficient de mare încât să puteți concilia cu fragmentarea sistemului de fișiere, care poate fi întotdeauna eliminată.

Algoritmii pentru comprimarea fișierelor în versiunea curentă a JFS sunt compatibile cu versiunile anterioare ale acestui sistem de operare. Interfața de programare (API), care include toate apelurile de sistem legate de compresia datelor, a rămas în noua versiune a JFS, fără modificări.

Pentru mai multe informații despre suportul pentru fragmente, utilizarea discului, fragmentarea spațiului liber și impactul fragmentării asupra performanței, consultați Fragmente de suport și Variabile I-Noduri.

Notă: Comprimarea datelor se aplică numai pentru JFS.

Atenție: Sistemul de fișiere rădăcină (/) nu poate fi comprimat. În plus, nu se recomandă comprimarea sistemului de fișiere / usr. deoarece programul installp ar trebui să poată determina cu exactitate cantitatea de spațiu pe disc necesară pentru a instala actualizări și noi componente software. Pentru mai multe informații despre calculul volumului de spațiu pe disc, consultați secțiunea Caracteristici ale sistemelor de fișiere comprimate.

Comprimarea datelor este un atribut al sistemului de fișiere care este specificat când este creat utilizând comanda crfs sau mkfs. Comprimarea datelor se aplică numai fișierelor obișnuite și legăturilor lungi de caractere. Fragmentele sunt încă acceptate atunci când se lucrează cu directoare și metadate, comprimarea cărora nu este efectuată. Fiecare bloc logic al fișierului este comprimat independent de celelalte înainte de a scrie pe disc. Această abordare oferă rate maxime de eșantionare și actualizare, deși eficiența comprimării este oarecum redusă (comparativ cu comprimarea blocurilor mari de date).

După comprimare, blocul logic necesită de obicei mai puțin de 4096 octeți de spațiu pe disc. Blocul comprimat este scris pe disc, iar pentru acesta este alocat un bloc de memorie continuă format dintr-un număr suficient de minim de fragmente. Dacă blocul logic nu poate fi comprimat, acesta este scris pe disc fără comprimare și pentru acesta este alocat un bloc continuu de memorie cu dimensiunea de 4096 octeți.

Notă: Informațiile din această secțiune se referă numai la JFS.

Deoarece după finalizarea cu succes a unei operații de scriere (sau de economisire - prin utilizarea de alocare a fișierelor) de program, scrie fișiere, nu se așteaptă ca eroarea asociată cu lipsa de spațiu liber pe disc (ENOSPC), trebuie să furnizeze cantitatea de spațiu liber suficient pentru înregistrarea de blocuri logice pe disc. Această garanție este asigurată prin alocarea a 4096 octeți fiecărui bloc logic la prima schimbare, ceea ce vă permite să notați nici măcar un bloc comprimat. Dacă selectați o dimensiune de memorie liberă de 4096 octeți de teren nu este posibil, sistemul returnează o eroare ENOSPC sau EDQUOT, chiar dacă valoarea reală de spațiu liber pe disc este suficient pentru a se potrivi blocul logic comprimat. Prin urmare, în cazul în care există foarte puțină memorie liberă în sistemul de fișiere și, de asemenea, atunci când utilizatorul a consumat aproape toată memoria alocată, pot apărea mesaje eronate care nu au suficient spațiu de stocare pe disc.







În plus față de rapoartele premature că nu există suficient spațiu pe disc, sistemele de fișiere comprimate au următoarele caracteristici:
  • Deoarece 4096 octeți sunt alocați inițial pentru un bloc logic, accesarea unor apeluri de sistem poate duce la un mesaj de eroare ENOSPC sau EDQUOT. De exemplu, fișierul vechi ar putea fi plasat utilizând apelul de sistem mmap. iar operația de salvare a locației anterioare poate duce la un mesaj de eroare ENOSPC. Dacă limita de date nu se încadrează pe limita blocului logic, apelarea apelului de sistem ftruncat poate avea ca rezultat și un mesaj de eroare ENOSPC sau EDQUOT.
  • Când se utilizează compresia datelor, unitatea de disc rămâne alocată blocului modificabil până când este scrisă pe disc. Dacă blocul variabilă ocupat anterior mai puțină memorie decât un bloc fizic complet, este bloc fizic complet primul este alocat în plus, blocul modificat este apoi comprimat și înregistrat pe disc, și numai după aceea blocul eliberat ocupat anterior. Într-un sistem de fișiere tipic fragmentat, fiecare fișier poate conține doar un bloc logic care ocupă mai puțin de un bloc fizic. Într-un sistem de fișiere comprimat, toate blocurile logice pot fi astfel.
  • Niciuna dintre resursele alocate anterior blocului logic nu este eliberată până când aplicația nu accesează apelul de sistem fsync sau sincronizare.
  • Apelul sistem stat vă permite să determinați numărul de fragmente alocate unui fișier. Acest număr este calculat în conformitate cu următoarea schemă: numărul fragmentelor ocupate de blocuri se adaugă la numărul de fragmente din memoria discului alocate blocurilor modificate și încă neclasificate. Fiecare astfel de bloc este alocat unui bloc fizic complet de 4096 octeți în dimensiune. Resursele alocate anterior nu sunt luate în considerare de apelul sistemului stat. După fixarea nodului i, statul returnează numărul corect de fragmente selectate în cazul în care nici unul dintre blocurile modificate nu a fost comprimat. Notă: Verificarea restricțiilor privind memoria discului este efectuată fără a lua în considerare faptul că unele fragmente sunt utilizate doar temporar și vor fi eliberate. Dacă utilizați comprimarea deoarece blocurile logice sunt scrise pe disc, numărul fragmentelor selectate este redus, ceea ce duce la o modificare a spațiului de disc utilizat și a rezultatelor apelului statal.

Notă: Informațiile din această secțiune se referă numai la JFS.

Comprimarea datelor este acum susținută de comenzile crfs. mkfs și lsfs. În ele, precum și în programul SMIT, există opțiuni suplimentare care permit setarea modului de comprimare a datelor pentru sistemul de fișiere.

Notă: Informațiile din această secțiune se referă numai la JFS.

Parametrul -q al comenzii lsfs vă permite să determinați valoarea curentă a atributului de comprimare a datelor.

Notă: Informațiile din această secțiune se referă numai la JFS.

Versiunile anterioare ale acestui sistem de operare sunt compatibile cu versiunea curentă a JFS. Compatibilitatea imaginilor de disc cu versiunile anterioare ale sistemului de operare vă permite să montați sisteme de fișiere și să le accesați fără a efectua transformări și fără a degrada performanțele sistemelor de fișiere.

Notă: Informațiile din această secțiune se referă numai la JFS.

Deoarece backup și recuperare poate fi efectuată între sistemele de fișiere comprimate și necomprimate, dar, de asemenea, între sistemele de fișiere comprimat cu un fragment dimensiuni diferite, atunci din cauza utilizării mai eficientă a spațiului pe disc sisteme de fișiere operațiune de recuperare comprimat poate să nu reușească din cauza lipsei de spațiu liber . Acest lucru este deosebit de important în timp ce păstrarea și restaurarea sistemului de fișiere, deoarece poate apărea această situație, chiar dacă dimensiunea completă a sistemului de fișiere țintă mai mare decât sistemul de fișiere sursă.

Notă: Informațiile din această secțiune se referă numai la JFS.

AIX utilizează algoritmul de comprimare dezvoltat de IBM bazat pe algoritmul standard LZ. LZ Algoritmul comprimă datele prin înlocuirea a doua și toate aparițiile ulterioare ale unui anumit rând la un pointer care specifică prima apariție a șirului și lungimea acestuia. La începutul procedurii de compresie de bază repetarea șiruri de date au o singură linie, astfel încât cel puțin primul octet de date va fi „comprimat“ și vor fi înregistrate în șirul de ieșire în forma sa originală (cu adăugat la un pic de semnalizare și caracterul ia 9 biți - 0 și octetul original). După comprimare, o anumită cantitate de date domustim N bytes, programul de compresie începe căutarea pentru cel mai lung șir care se găsește în acești octeți N, și care începe următorul octet neprocesat. Dacă lungimea șirului găsit este 0 sau 1, atunci următorul octet nu este codificat și este scris în forma originală (cu bitul de semnal). In caz contrar, șirul de potrivire este înlocuită cu o pereche (pointer, lungime), iar procesul de comprimare continuă la byte N + L + 1 unde L - lungimea șirului de potrivire. Într-o modificare a companiei IBM LZ algoritm pentru valorile N sunt menținute 512, 1024 și 2048. În IBM LZ codare perechi algoritm înregistrat (pointer, lungime) și caractere obișnuite. Un pointer este un câmp cu lungime fixă ​​de mărime log2 N. iar lungimea este codificată de un câmp cu lungime variabilă.

Notă: Informațiile din această secțiune se referă numai la JFS.

Întrucât comprimarea datelor face parte din suportul fragmentului, toate considerentele de performanță legate de fragmente sunt aplicabile compresiei datelor. În plus, comprimarea datelor are următorul efect asupra performanței sistemului de fișiere:
  • Comprimarea și implementarea datelor pot necesita mult timp, astfel încât utilizarea sistemelor de fișiere comprimate este limitată doar la anumite medii de lucru.
  • Cele mai comune fișiere UNIX sunt scrise o singură dată, dar unele fișiere sunt actualizate. Atunci când se schimbă fișierul actualizat pentru fiecare bloc logic alocat suplimentar 4096 bytes de stocare pe disc fizic, indiferent de cât de mult de memorie va ocupa acest bloc după comprimare. Redistribuirea memoriei are loc după înregistrarea finală a blocului logic comprimat de pe disc. Toate aceste acțiuni nu trebuie efectuate pentru sistemele de fișiere necomprimate.
  • Folosirea compresiei datelor mărește nivelul de utilizare a procesorului. Compresia software a datelor necesită aproximativ 50 de cicluri de procesor pe octet, iar desfășurarea este de aproximativ 10 cicluri per octet.






Articole similare

Trimiteți-le prietenilor: