Capitolul 10 Administrarea spatiului de...

28
Capitolul 10 Administrarea spat , iului de stocare În cadrul unui sistem de calcul, unitatea de procesare este elementul central, cel care realizeaz ˘ a operat , iile necesare, respectiv cerute, de c ˘ atre utilizator. Pentru a putea realiza aceste operat , ii, unitatea de procesare are nevoie de un mecanism prin care s˘ a fie aduse datele la aceasta cât mai rapid s , i de un mecanism prin care s˘ a furniz˘ am rezultatele înapoi utilizatorului. Cel mai apropiat mecanism de intrare/ies , ire a datelor necesare/rezultate este memoria (RAM s , i cache-urile aferente). Principalul dezavantaj al memoriei o reprezint ˘ a volatilitatea: la pierderea aliment ˘ arii cu energie electric ˘ a, datele stocate în memorie se pierd. Pentru a preîntâmpina aceast˘ a problem ˘ a, a fost introdus un nou nivel de intrare/ies , ire a datelor în care capacitatea de înmagazinare a datelor este net superioar ˘ a, iar la întreruperea aliment ˘ arii cu energie electric ˘ a, datele se astreaz ˘ a. Acest nou nivel de intrare/ies , ire poart˘ a denumirea, în general, de dispozitiv de stocare. Dispozitivele de stocare au ca principal dezavantaj viteza de operare, de aceea nu le folosim direct în relat , ia cu unitatea de procesare (datele trec prin memorie înainte de a ajunge la procesor). Un alt dezavantaj al dispozitivelor de stocare îl reprezint ˘ a modul modul de organizare a datelor pe acesta: capacitatea este net superioar ˘ a comparativ cu a unei memorii (gigabytes vs. terabytes/petabytes) iar o adresare liniar ˘ a, ca în cazul memoriei, nu ar fi posibil˘ a. În cadrul acestui capitol vom studia tehnici de organizare a datelor pe dispozitivele de stocare (vezi Figura 10.1. As , adar, stocarea este s , i ea un element central în operat , iile cu sistemul de calcul. Orice informat , ie procesat ˘ a ar trebui stocat˘ a persistent pe un dispozitiv. Dispozitivele de stocare, dup ˘ a cum a fost prezentat s , i în Capitolul 8. Componente hardware, sunt alc ˘ atuite din dou ˘ a componente: controller s , i discuri. Controller-ul este asemenea unei unit ˘ at , i de procesare din cadrul unui sistem de calcul, dar specializat în controlul s , i managementul unit ˘ at , ilor de stocare (discurilor). Controller-ele au rolul de a centraliza logica de acces la unit ˘ at , ile de stocare s , i de a nu duplica logica în cadrul fiec˘ arui disc. De asemenea, deoarece discurile sunt cu câteva ordine de arime mai lente comparativ cu unitatea de procesare, controller-ul act , ioneaz ˘ a ca un element intermediar de control: procesorul d ˘ a comanda controller-ului, acesta execut˘ a toate operat , iile cerute s , i când sunt finalizate, anunt , ˘ a unitatea principal ˘ a de execut , ie (procesorul). Astfel procesorul nu as , teapt ˘ a dup˘ a unit˘ at , ile de stocare, ci execut˘ a alte operat , ii relevante în tot acest timp. În Figura 10.2 este reprezentat un exemplu de transfer de date de la o locat , ie de pe Internet în timp de utilizatorul foloses , te aplicat , ia Calculator. Discurile sunt cele ce stocheaz ˘ a efectiv informat , ia. Lu˘ am ca exemplu aplicat , iile Google Drive s , i Dropbox: acestea ofer ˘ a servicii de stocare a informat , iilor 204

Transcript of Capitolul 10 Administrarea spatiului de...

Page 1: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

Capitolul 10

Administrarea spat,iului de stocare

În cadrul unui sistem de calcul, unitatea de procesare este elementul central, cel carerealizeaza operat, iile necesare, respectiv cerute, de catre utilizator. Pentru a putearealiza aceste operat, ii, unitatea de procesare are nevoie de un mecanism prin care safie aduse datele la aceasta cât mai rapid s, i de un mecanism prin care sa furnizamrezultatele înapoi utilizatorului. Cel mai apropiat mecanism de intrare/ies, ire a datelornecesare/rezultate este memoria (RAM s, i cache-urile aferente). Principalul dezavantajal memoriei o reprezinta volatilitatea: la pierderea alimentarii cu energie electrica,datele stocate în memorie se pierd. Pentru a preîntâmpina aceasta problema, a fostintrodus un nou nivel de intrare/ies, ire a datelor în care capacitatea de înmagazinare adatelor este net superioara, iar la întreruperea alimentarii cu energie electrica, datele sepastreaza. Acest nou nivel de intrare/ies, ire poarta denumirea, în general, de dispozitivde stocare. Dispozitivele de stocare au ca principal dezavantaj viteza de operare, deaceea nu le folosim direct în relat, ia cu unitatea de procesare (datele trec prin memorieînainte de a ajunge la procesor). Un alt dezavantaj al dispozitivelor de stocare îlreprezinta modul modul de organizare a datelor pe acesta: capacitatea este netsuperioara comparativ cu a unei memorii (gigabytes vs. terabytes/petabytes) iar oadresare liniara, ca în cazul memoriei, nu ar fi posibila. În cadrul acestui capitol vomstudia tehnici de organizare a datelor pe dispozitivele de stocare (vezi Figura 10.1.

As, adar, stocarea este s, i ea un element central în operat, iile cu sistemul de calcul. Oriceinformat, ie procesata ar trebui stocata persistent pe un dispozitiv. Dispozitivele destocare, dupa cum a fost prezentat s, i în Capitolul 8. Componente hardware, suntalcatuite din doua componente: controller s, i discuri. Controller-ul este asemenea uneiunitat, i de procesare din cadrul unui sistem de calcul, dar specializat în controlul s, imanagementul unitat, ilor de stocare (discurilor). Controller-ele au rolul de a centralizalogica de acces la unitat, ile de stocare s, i de a nu duplica logica în cadrul fiecarui disc.De asemenea, deoarece discurile sunt cu câteva ordine de marime mai lentecomparativ cu unitatea de procesare, controller-ul act, ioneaza ca un elementintermediar de control: procesorul da comanda controller-ului, acesta executa toateoperat, iile cerute s, i când sunt finalizate, anunt,a unitatea principala de execut, ie(procesorul). Astfel procesorul nu as, teapta dupa unitat, ile de stocare, ci executa alteoperat, ii relevante în tot acest timp. În Figura 10.2 este reprezentat un exemplu detransfer de date de la o locat, ie de pe Internet în timp de utilizatorul foloses, te aplicat, iaCalculator. Discurile sunt cele ce stocheaza efectiv informat, ia. Luam ca exempluaplicat, iile Google Drive s, i Dropbox: acestea ofera servicii de stocare a informat, iilor

204

Page 2: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 205

Figura 10.1: Ierarhia de memorie în cadrul unui sistem de calcul

pentru utilizatori. Pentru a implementa facilitat, ile de stocare s, i partajare a datelor,aceste aplicat, ii folosesc sisteme de stocare. În sect, iunea urmatoare vom descrie s, i vomrealiza o clasificare a discurilor.

Figura 10.2: Executarea concomitenta a transferului de date s, i a unei aplicat, ii

10.1 Tipuri de discuri

Subsistemul de stocare din cadrul unui sistem de calcul este format dintr-un controllercare furnizeaza partea de logica a transferului de date s, i de unul sau mai multe discuri

Page 3: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

206 INTRODUCERE ÎN SISTEME DE OPERARE

care stocheaza efectiv informat, ia. Dispozitivele de stocare au urmatoarele atributeprincipale:

• spat, iul disponibil - câta informat, ie se poate stoca pe disc (masurat de obicei îngigabytes - GB sau terabytes - TB)

• viteza de acces - cât de repede se pot transfera datele de pe disc în memoria RAM(masurat de obice în megabytes pe secunda - MB/s)

• mod de pozit, ionare - intern (în interiorul unitat, ii) sau extern (în exteriorul unitat, ii)

• mod de conectare - exista doua tipuri de conectare pentru discurile interne (SATAvs. SAS) s, i un tip de conectare în general pentru cele externe (USB)

• fiabilitate - câte ore de funct, ionare sau câte citiri/scrieri suporta de-a lungul viet, iide funct, ionare. Aceste numere variaza mult în funct, ie de tipul unitat, ii de stocare(HDD vs. SSD) s, i de gama pentru care a fost proiectat (folosirea în desktop-uri vs.servere)

În zilele noastre exista doua tipuri de discuri pe sistemele de calcul:

• Hard Disk Drive (HDD)

• Solid State Drive (SSD )

10.1.1 Hard Disk Drive

HDD-ul prin construct, ie dispune de part, i mobile în interiorul acestuia: un brat, decitire/scriere si unul sau mai multe platane pe care se stocheaza datele (veziFigura 10.3). Astfel HDD-ul este predispus defectarii atunci când acesta funct, ioneaza s, ieste supus unor anumite s, ocuri mecanice. De asemenea s, ocurile mecanice suntproblematice s, i atunci când HDD-ul nu funct, ioneaza (platanele nu se rotesc, iar capulde citire/scriere nu se mis, ca). Modelul constructiv al HDD-ului de asemenea nu permiteviteze de funct, ionare ridicate comparativ cu memoria RAM. Parametri prin care semasoara performant,a unui HDD sunt: numarul de rotat, ii pe minut al platanelor s, i vitezainterfet,ei de conectare la controller în gigabit, i pe secunda. În zilele noastre, exista douatipuri de interfet,e de conectare:

• SATA - Serial ATA (Serial Advanced Technology Attachment)

• SAS - Serial Attached SCSI (sau Serial Attached Small Computer SystemInterface)

În funct, ie de aceste interfet,e se clasifica s, i discurile. Ambele interfet,e seinterconecteaza cu controller-ul în general la o viteza de 6Gbps. Discurile cu interfet,ede tip SATA au viteza de rotat, ie mai redusa decât SAS (5400rpm/7200rpm vs10000rpm/15000rpm), iar durata de viat,a, din construct, ie, este mult mai mica decât aSAS-urilor. De aceea discurile SATA sunt cu mult mai ieftine decât discurile SAS deaceeas, i capacitate (în cele mai multe cazuri pentru aceeas, i capacitate pret,ul sedubleaza). Un alt deziderat al discurilor SATA este acela ca se concentreaza pecapacitatea de stocare, iar discurile SAS se concentreaza pe viteza de funct, ionare. Din

1https://commons.wikimedia.org/wiki/File:Hard_Drive_(11644419853).jpg CC BY 2.0

Page 4: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 207

Figura 10.3: HDD1

cauza pret,ului foarte ridicat al discurilor SAS, acestea se folosesc în servere s, i sistemede tip enterprise, iar discurile SATA se folosesc în calculatoarele personale.

În Figura 10.4 sunt reprezentate cele 2 tipuri de interfet,e: în stânga sunt interfet,e de tipSATA, iar în dreapta de tip SAS.

Figura 10.4: SATA vs SAS2

Figura 10.5: 2.5" vs 3.5"3

O alta clasificare a discurilor este legata de marimea fizica a acestora:

• 2.5 inch (discurile de deasupra din Fig. X)

• 3.5 inch (discurile de dedesubt din Fig. X)

2https://commons.wikimedia.org/wiki/File:SASvsSATA_Connector.JPG CC BY SA 3.03https://commons.wikimedia.org/wiki/File:Comparison_of_3.5_and_2.5_inch_hard_drives.jpg CC BY

SA 3.0

Page 5: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

208 INTRODUCERE ÎN SISTEME DE OPERARE

Discurile de 2.5 inch se folosesc de obicei în sisteme enterprise, unde se dores, teeconomisirea spat, iului sau acomodarea a cât mai multe HDD-uri într-o unitate (1U).

10.1.2 SSD

SSD-ul a venit ca un raspuns la neajunsurile HDD-ului, încercând sa îmbunatat,eascasensibilitatea la s, ocuri precum s, i viteza de funct, ionare a acestuia. SSD-ul nu are part, imobile în interiorul acestuia s, i funct, ioneaza pe principiul stick-urilor USB: pentru astoca informat, ia se folosesc chip-uri construite din semiconductoare s, i nudiscuri/platane magnetice care prezinta o mis, care pentru a putea citi/scrie datele.

Discurile de tip SSD pot fi conectate atât printr-o interfat,a SATA ce ofera viteze de pâna la6Gbps cât s, i printr-o interfat,a SAS ce ofera viteze de pâna la 12Gbps în acest moment.Forma constructiva a unui SSD este atât de 2.5 inch cât s, i de 3.5 inch, similar HDD-urilor.

Costul SSD-urilor comparativ cu cel al HDD-urilor, în special la capacitat, i de peste 1TBeste semnificativ mai mare (de aproximativ 5 ori). De aceea în sistemele din ziua deastazi exista un disc principal SSD unde se stocheaza sistemul de operare s, i aplicat, iilecare au nevoie de acces rapid la acesta s, i un HDD de mare capacitate pentru stocareadatelor de termen lung s, i care nu necesita viteza ridicata.

Un aspect de luat în considerare atunci când se achizit, ioneza un disc de tip SSD estedurata de viat,a. Spre deosebire de un HDD, SSD-ul are un numar limitat de scrierispecificat de producator, dupa care se spune ca s-a finalizat durata de viat,a a acestuia.Din acest motiv, sistemele de operare s, i sistemul de fis, iere trebuie sa întreprinde operat, iispecifice, optimizate pentru SSD-uri, pentru a le prelungi durata de viat,a (de exempludefragmentarea genereaza foarte multe scrieri, scurtând durata de viat,a a discului, iaraceasta nu este utila pentru un SSD - viteza de citire a oricaror date aleator de pe disceste aceeas, i în cazul SSD-urilor). Pentru a afla durata de viat,a a unui disc SSD existatool-uri speciale cum ar fi SSD Life (https://ssd-life.com).

Pentru a prelungi durata de viat,a a unui disc, ca utilizator, trebuie sa avet, i în vedereurmatoarele facilitat, i:

• Defragmentarea (procesul prin care se rearanjeaza datele pe disc pentru un accesmai eficient) - este recomandata dezactivarea defragmentarii pentru discurile SSD(dupa cum am specificat mai sus)

• Swapping - atunci când un sistem ramâne fara memorie RAM, acesta va folosi pepost de memorie discul. Este recomandat sa dezactivat, i swapping-ul pe discurileSSD daca dorit, i prelungirea duratei de viat,a (mai ales daca swapping-ul apare des)

• Hibernate - atunci când trecem calculatorul în starea Hibernate acesta scrieîntregul cont, inut al memoriei pe disc (ceea ce va genera foarte multe scrieri).Este recomandat sa nu trecet, i sistemul în Hibernate daca dorit, i prelungireaduratei de viat,a (sau sa configurat, i un disc alternativ pentru Hibernate).

Alte recomandari pentru cres, terea duratei de viat,a a discului SSD specifice sistemuluide operare folosit, le putet, i gasi la o simpla cautare pe Google

Page 6: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 209

10.2 Partit, ionarea dispozitivelor de stocare

În sect, iunile anterioare au fost prezentate caracteristicile discurilor, atât SSD cât s, i HDD.O caracteristica principala a acestora este capacitatea mare de stocare (mult mai careca a memoriei RAM). As, adar o adresare liniara nu este suficienta pentru a gestionaspat, iul de stocare oferit de un disc. Mai mult, un alt motiv este constituit de faptul caadministrarea spat, iului de stocare este facuta de catre utilizator în schimb administrareazonei de memorie RAM este facuta de catre sistemul de operare. Astfel administrareaspat, iului de stocare trebuie sa fie simpla s, i facila.

Spat, iul de stocare oferit de un dispozitiv trebuie administrat în mod corect pentru aasigura o stocare eficienta (performant,a ridicata) s, i coerenta (sa nu corupem date).Exista 2 nivele de administrare: partit, ionare s, i sistemele de fis, iere. Aceste nivele suntinterdependente s, i se aplica iterativ.

Partit, ionarea împarte spat, iul disponibil în diverse zone contigue, fiecare zona având unspecific definit de la creare (partit, ie de boot, partit, ie pentru utilizatori, partit, ie pentrusistemul de de operare). Exista doua tipuri de partit, ionari în sistemele din ziua de astazi,as, a cum am prezentat în Capitolul 9:

• Master Boot Record (referit ca MBR) - acesta a fost introdus în 1983 s, i poartaaceasta denumire deoarece stocheaza la începutul discului un sector specificprocesului de bootare.

• GUID Partition Table (referit ca GPT) - este o metoda mai noua de partit, ionare ceva înlocui treptat MBR-ul din cauza limitarilor acestuia.

MBR-ul, dupa cum se ment, ioneaza anterior, are alocat exact la începutul unui disc unsector special de boot care ret, ine schema de partit, ionare precum s, i o versiune minimalaa boot loader-ului care va încarca sistemul de operare (vezi 8. Pornirea sistemului).Schema de partit, ionare MBR este formata din maxim 4 partit, ii, denumite primare. Pentrua acoperi aceste neajunsuri, au fost introduse partit, iile logice: una din partit, iile primarevor fi alocate pe întreg discul ramas liber s, i va fi marcata ca partit, ie extinsa. În cadrulpartit, iei extinse se pot crea oricâte partit, ii logice se dores, te. Acest lucru îngreuneazaschema de partit, ionare, iar unele sisteme de operare nu pot porni folosind aceste partit, ii.Nu se recomanda folosirea acestor partit, ii, ca partit, ii de bootare. Întreaga schema departit, ionare a MBR este descrisa s, i în Figura 10.6.

MBR-ul a început sa fie înlocuit de catre GPT din cauza limitarilor acestuia, cum ar fi:

• Dimensiunea maxima a unei partit, ii este de 2TB

• Necesitatea unei partit, ii extinse pentru a crea mai mult de patru partit, ii

Pentru a rezolva neajunsurile MBR-ului, a fost creata schema de partit, ionare GPT.Numele GUID Partition Table (GPT) vine de la faptul ca fiecare partit, ie a discului areasociat un numar unic de identificare (guid), generat aleator s, i care garanteaza cafiecare partit, ie de pe glob va avea propriul identificator unic.

GPT-ul este asociat în general cu standardul UEFI care dores, te înlocuirea BIOS-ul însistemele de calcul. BIOS-ul s, i UEFI-ul sunt programe low-level care se executa lapornirea sistemelor de calcul pentru a realiza testarea s, i init, ializarea componentelor.UEFI-ul este un nou standard, menit sa înlocuiasca BIOS-ul pentru a acoperi

Page 7: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

210 INTRODUCERE ÎN SISTEME DE OPERARE

Figura 10.6: Schema de partit, ionare a MBR

neajunsurile acestuia (mai multe detalii sunt prezentate în Capitolul 9. Pornireasistemului).

În Figura 10.7 este reprezentata schema de partit, ionare a GPT-ului. Se observaasemanarea cu partit, ionarea de tip MBR: la începutul discului exista MBR-ul. DupaMBR se afla header-ul GPT ce descrie partit, iile (maxim 128). MBR-ul s, i header-ul suntduplicate s, i la finalul discului: în caz de corupere a primelor sectoare sa nu pierdemdetaliile despre schema de partit, ionare. În cazul GPT nu mai avem limitarea la 2TB aunei partit, ii s, i nici limitarea la 4 partit, ii primare (din cauza numarului ridicat disponibil departit, ii nu mai exista not, iunea de partit, ii logice).

Pentru a utiliza spat, iul de stocare eficient, exista recomandari din partea vendorilorsistemelor de operare. Bunele practici în partit, ionarea unui disc includ:

• Crearea unei partit, ii de boot (specific Linux /boot - cont, ine nucleul sistemului deoperare s, i boot-lodear-ul)

• Crearea unei partit, ii de swap (specific Linux - spat, iu utilizat de sistemul deoperare atunci când ramâne fara memorie; în cazul Windows swap-ul este alocatdin partit, ia sistemului de operare)

• Crearea unei partit, ii pentru sistemul de operare (pentru Linux este /, denumita s, iroot, iar pentru Windows de obicei este discul C:).

• Crearea unei partit, ii pentru utilizatorii sistemului - atunci când reinstalam sistemulde operare, sa putem pastra us, or datele utilizatorilor (pentru Linux este /home, iarpentru Windows de obicei literele de la D: în sus)

• Crearea unei partit, ii pentru sistemele cu suport EFI/UEFI (specific Linux în /boot/efis, i cont, ine fis, ierele necesare sa fie executate la încarcarea sistemului de operarede catre subsistemul UEFI)

Page 8: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 211

Figura 10.7: Schema de partit, ionare a GPT

Page 9: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

212 INTRODUCERE ÎN SISTEME DE OPERARE

Utilitare ce pot fi folosite pentru administrarea partit, iilor sunt:

• Pentru Linux: fdisk (doar MBR); parted/gparted (suport extins pentru MBR/GPTs, i operat, ii avansate). O data creata o partit, ie, aceasta poate fi vazuta în calea/dev s, i poarta numele discului partit, ionat (ex. sda) urmat de o cifra care reprezintanumarul partit, iei (ex. sda5)

• Pentru Windows: Disk Management. O data creata o partit, ie, aceasta poate fivazuta în utilitarul ment, ionat.

10.2.1 Sisteme de fis, iere

Pentru a putea organiza datele pe o partit, ie într-un mod facil s, i us, or de înt,eles pentruutilizatorul final al sistemului de calcul, pe aceasta în general se instaleaza un sistemde fis, iere. Procesul de instalare/alocare a unui sistem de fis, iere pe o partit, ie senumes, te formatare. O partit, ie fara un sistem de fis, iere nu poate fi utilizata/explorata decatre utilizatorul final. De exemplu, pe Windows, un disc USB neformatat nu va putea fiaccesat cu dublu-click s, i va aparea un mesaj catre utilizator daca accepta formatarealui (vezi Figura 10.8)

Figura 10.8: Fereastra privind formatarea unui disc pe Windows

Sistemul de fis, iere ofera urmatoarele obiecte vizibile utilizatorului final:

• Fis, ierul - entitatea care cont, ine date utile în diverse formate

• Directorul - entitatea care organizeaza fis, ierele într-un forma arborescenta us, or defolosit de catre utilizator.

Mai multe detalii legate de fis, iere s, i directoare (modul în care se creaza, se s, terg,permisiuni de acces) putet, i citi în Capitolul 2. Utilizarea sistemului de fis, iere.

În general sistemele de fis, iere sunt specifice sistemelor de operare. Astfel avemurmatoarea clasificare:

• Linux: cel mai folosit este sistemul de fis, iere ext4, iar mai nou acesta ajunge sa fieînlocuit cu xfs

• Windows: principalul sistem de fis, iere este NTFS

Pe Linux pentru a formata (instala) un sistem de fis, iere pe o partit, ie se foloses, tecomanda mkfs. urmata de sufixul sistemului de operare dorit s, i partit, ia dorita (ex.mkfs.ext4 /dev/sda2). ATENT, IE: procesul de formatare a unui sistem de fis, iere distrugedatele prezente pe acea partit, ie. O gres, eala frecventa este aplicarea procesului deformatare pe între discul (ex. mkfs.ext4 /dev/sda). Acest lucru va s, terge toate

Page 10: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 213

partit, iile de pe acel disc. Un exemplu complet de folosire a utilitarelor de formatare s, ipartit, ionare îl putet, i gasi la finalul capitolului, la studii de caz.

Figura 10.9: Formatarea unei partit, ii pe Windows

Pe Windows pentru a formata (instala) un sistem de fis, iere pe o partit, ie, se face clickdreapta pe litera aferenta partit, iei s, i exista opt, iunea Format: de aici se poate selectatipul sistemului de fis, iere s, i diverse caracteristici de formatare (vezi Figura 10.9).

Pentru a putea folosi un sistem de fis, iere, acesta trebuie facut disponibil utilizatorului.Procesul prin care acest este disponibil pentru citire/scriere se numes, te montare.

Pe sistemele bazate pe Linux, montarea se realizeaza cu comanda mount urmata departit, ia care se dores, te a fi montata s, i locat, ia unde sa fie montata în sistemul de fis, iere:

1 [root@monitor ~]# mount /dev/sdb1 /mnt/2 [root@monitor ~]# mount | grep sdb13 /dev/sdb1 on /mnt type ext4 (rw)

Un lucru specific sistemelor de operare bazate pe Linux este alocarea unui ID unui laformatarea unei partit, ii. Astfel la montare se poate specifica ID-ul partit, iei s, i nu caleacatre device. Acest lucru este utilizat pentru a rezolva conflictele generate de schimbareaordinii discurilor fizice. De exemplu, în cazul prezentat mai sus, daca mai inseram un disc

Page 11: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

214 INTRODUCERE ÎN SISTEME DE OPERARE

fizic în sistem, acesta poate fi detectat înainte celui prezent s, i i se va aloca litera b, deciva fi sdb, iar cel curent va deveni sdc. Astfel comanda de mai sus devine invalida s, iinconsistenta deoarece va monta un cu totul alt disc. Pentru a afla ID-ul alocat uneipartit, ii noi formatate se foloses, te comanda blkid:

1 [root@monitor ~]# blkid /dev/sdb12 /dev/sdb1: UUID="ae064abe-b2fb-402b-8ba1-4ab1293bb584" TYPE="ext4"

Acum putem monta partit, ia folosind acest ID notat cu UUID (Unique Univerally Identifier):

1 mount -U ae064abe-b2fb-402b-8ba1-4ab1293bb584 /mnt/

Pe sisteme Windows montarea se realizeaza în general automat de catre sistemul deoperare. Daca se doresc operat, ii avansate, acestea pot fi facute tot din DiskManagement (Start -> Run -> diskmgmt.msc; vezi Fig. X):

Figura 10.10: Administrarea spat, iului de stocare pe Windows

Anterior, s-a ment, ionat faptul ca sistemele de fis, iere sunt specifice sistemului de operare.La nevoie, aceste sisteme de fis, iere se pot monta pe alt sistem de operare decât celepentru care au fost proiectate. Acest lucru nu este întotdeauna recomandat întrucâtexista penalitat, i de performant,a s, i risc de corupere a datelor.

Sistemele de fis, iere au mecanisme interne de recuperare a datelor corupte. Principalulmecanism prin care se realizeaza acest lucru este jurnalizarea (file system journal).Fiecare sistem de fis, iere scrie fiecare operat, ie adusa sistemului de fis, iere într-un jurnal.Atunci când sunt probleme la montarea unui sistem de fis, iere, acesta foloses, te jurnalulpentru a încerca sa repare inconsistent,ele. De multe ori nu se poate monta sistemul defis, iere fara o verificare completa a integritat, ii sistemului de fis, iere. Acest lucru serealizeaza de obicei automat la pornirea sistemului de operare, atât pe Linux cât s, iWindows. Este important de ment, ionat faptul ca nu toate sistemele de fis, iere oferasuport de jurnalizare. În ziua de astazi sisteme de fis, iere care nu ofera acest suporteste datorat faptului ca sunt simple prin construct, ia lor s, i se adreseaza dispozitivelorspecializate (e.g. camere video) s, i cu put, ine resurse care nu au implementat unmecanism de verificare a integritat, ii (e.g. sistemul de fis, iere FAT).

Pe Linux, daca este necesara verificarea integritat, ii sistemului de fis, iere manual, sepoate folosi utilitarul fsck:

1 [root@monitor ~]# fsck /dev/sdb1

Page 12: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 215

2 fsck from util-linux-ng 2.17.23 e2fsck 1.43-WIP (20-Jun-2013)4 /dev/sdb1 is mounted.5 e2fsck: Cannot continue, aborting.

Se observa ca nu se poate verifica sistemul de fis, iere când acesta este deja montat.Vom demonta sistemul de fis, iere iar apoi vom verifica integritatea:

1 [root@monitor ~]# umount /mnt/2 [root@monitor ~]# fsck /dev/sdb13 fsck from util-linux-ng 2.17.24 e2fsck 1.43-WIP (20-Jun-2013)5 /dev/sdb1: clean, 11/13272 files, 6616/52916 blocks

Ca s, i schemele de partit, ionare, sistemele de fis, iere au s, i ele anumite limitari legate de:

• Numarul maxim de fis, iere (ex. Pentru ext4 - 4 miliarde)

• Dimensiunea partit, iei (ex. pentru ext4 - 1024PB)

• Dimensiunea maxima a fis, ierului (ex. Pentru ext4 - 16TB)

• Atribute extinse de funct, ionalitate s, i securitate

Limitarile ment, ionate mai sus variaza de la un sistem de operare la altul, iar acestea potfi aflate citind documentat, ia respectivului sistem de fis, iere.

Pâna în acest punct am discutat despre disc s, i partit, ie. Discul este partea fizica asistemului de calcul disponibila spre a fi folosita de catre sistemul de operare. Pentru ofolosire eficienta, acesta este partit, ionat (partit, ie). Deseori, prin diverse tehnici (RAIDhardware sau software - vezi sect, iunea urmatoare), mai multe discuri sunt puse lacomun s, i vazute ca unul singur. Rezultatul poarta numele de volum. Un alt termenfolosit în administrarea spat, iului de stocare este drive. Acesta are doua semnificat, ii:refera tot un disc fizic sau refera o partit, ie pe sisteme Windows.

10.3 Anexa: Investigarea spatiului de stocare

Pe un sistem Linux, pentru a vizualiza toate discurile din sistem, precum s, i unde suntmontate, putem folosi comanda lsblk:

1 [root@monitor ~]# lsblk2 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT3 sda 8:0 0 68.2G 0 disk4 |-sda1 8:1 0 500M 0 part /boot5 |-sda2 8:2 0 4G 0 part [SWAP]6 |-sda3 8:3 0 63.8G 0 part /7 sr0 11:0 1 1024M 0 rom8 sr1 11:1 1 80.6M 0 rom9 sdb 8:16 1 1.9G 0 disk

10 |-sdb1 8:17 1 51.7M 0 part11 ‘-sdb2 8:18 1 1.8G 0 part

Aceeas, i informat, ie se poate observa folosind s, i comanda df (parametrul -h este folositpentru a afis, a dimensiunea partit, iilor în format us, or de citit):

Page 13: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

216 INTRODUCERE ÎN SISTEME DE OPERARE

1 [root@monitor ~]# df -h2 Filesystem Size Used Avail Use% Mounted on3 /dev/sda3 63G 40G 21G 67% /4 tmpfs 2.9G 0 2.9G 0% /dev/shm5 /dev/sda1 477M 93M 359M 21% /boot

Pentru a putea investiga spat, iul ocupat de un anumit fis, ier sau director, putet, i folosicomanda du (parametrul -h este folosit pentru a afis, a dimensiunea în format us, or decitit, iar -s realizeaza suma tuturor fis, ierelor din acel director):

1 [root@monitor ~]# du -hs /srv/2 7.0G /srv/

Daca nu folosim parametrul -s al comenzii du, atunci ni se va afis, a fiecare fis, ier recursival acelui director:

1 [root@monitor ~]# du -h /srv/ | less2 16K /srv/cursTemplates/etc3 48K /srv/cursTemplates/.git/hooks4 20K /srv/cursTemplates/.git/logs/refs/heads5 32K /srv/cursTemplates/.git/logs/refs/remotes/origin6 36K /srv/cursTemplates/.git/logs/refs/remotes7 60K /srv/cursTemplates/.git/logs/refs8 76K /srv/cursTemplates/.git/logs9 20K /srv/cursTemplates/.git/refs/heads

10 4.0K /srv/cursTemplates/.git/refs/tags11 32K /srv/cursTemplates/.git/refs/remotes/origin12 36K /srv/cursTemplates/.git/refs/remotes13 ...

Pentru a investiga informat, ii despre partit, iile unui disc se folosesc utilitarele fdisk (pentrupartit, ii MBR) sau mai nou parted/gparted (suporta s, i GPT). Comanda fdisk -lva lista toate discurile s, i partit, iile unui sistem. Daca se adauga un parametru suplimentar(s, i anume calea catre discul pe care se dores, te a fi inspectat), atunci doar acesta va fiafis, at

1 [root@monitor ~]# fdisk -l /dev/sdb2

3

4 Disk /dev/sdb: 1977 MB, 1977614336 bytes5 61 heads, 62 sectors/track, 1021 cylinders6 Units = cylinders of 3782 * 512 = 1936384 bytes7 Sector size (logical/physical): 512 bytes / 512 bytes8 I/O size (minimum/optimal): 512 bytes / 512 bytes9 Disk identifier: 0x00000000

10

11

12 Device Boot Start End Blocks Id System13 /dev/sdb1 1 28 52917 83 Linux14 /dev/sdb2 29 1021 1877763 83 Linux

Daca renunt,am la parametru -l, vom intra în aplicat, ia fdisk, de unde vom putea printatabela de partit, ii folosind comanda p. Pentru alte comenzi folosit, i litera m, indicata s, i înmesajul de afis, are:

1 [root@monitor ~]# fdisk /dev/sdb2

3

Page 14: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 217

4 Command (m for help): p5

6

7 Disk /dev/sdb: 1977 MB, 1977614336 bytes8 61 heads, 62 sectors/track, 1021 cylinders9 Units = cylinders of 3782 * 512 = 1936384 bytes

10 Sector size (logical/physical): 512 bytes / 512 bytes11 I/O size (minimum/optimal): 512 bytes / 512 bytes12 Disk identifier: 0x0000000013

14

15 Device Boot Start End Blocks Id System16 /dev/sdb1 1 28 52917 83 Linux17 /dev/sdb2 29 1021 1877763 83 Linux18

19

20 Command (m for help): m21 Command action22 a toggle a bootable flag23 b edit bsd disklabel24 c toggle the dos compatibility flag25 d delete a partition26 l list known partition types27 m print this menu28 n add a new partition29 o create a new empty DOS partition table30 p print the partition table31 q quit without saving changes32 s create a new empty Sun disklabel33 t change a partition’s system id34 u change display/entry units35 v verify the partition table36 w write table to disk and exit37 x extra functionality (experts only)

Utilitarul parted se foloses, te în mod asemanator cu fdisk. Pentru a administra undisc se ruleaza comanda parted urmata de calea catre dispozitiv:

1 [root@monitor ~]# parted /dev/sda2 GNU Parted 2.13 Using /dev/sda4 Welcome to GNU Parted! Type ’help’ to view a list of commands.5 (parted)

Pentru a afis, a tabela de partit, ii, folosim litera p:

1 (parted) p2 Model: HUAWEI MMC Storage (scsi)3 Disk /dev/sdb: 1978MB4 Sector size (logical/physical): 512B/512B5 Partition Table: msdos6

7

8 Number Start End Size Type File system Flags9 1 31.7kB 54.2MB 54.2MB primary ext4

10 2 54.2MB 1977MB 1923MB primary

Pentru mai multe opt, iuni putet, i folosi comanda help:

1 (parted) help

Page 15: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

218 INTRODUCERE ÎN SISTEME DE OPERARE

2 align-check TYPE N check partition N for TYPE(min|opt) alignment

3 check NUMBER do a simple check on the filesystem

4 cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to anotherpartition

5

6

7 ...

10.4 Anexa: Partit, ionare, formatare s, i montare pe Linux

Vom realiza pas cu pas partit, ionarea s, i formatarea unui disc pe Linux:

• Folosind utilitarul fdisk investigam discul /dev/sdb din sistem:

1 [root@monitor ~]# fdisk /dev/sdb2

3

4 WARNING: DOS-compatible mode is deprecated. It’s stronglyrecommended to

5 switch off the mode (command ’c’) and change display unitsto

6 sectors (command ’u’).7

8

9 Command (m for help): p10

11

12 Disk /dev/sdb: 1977 MB, 1977614336 bytes13 61 heads, 62 sectors/track, 1021 cylinders14 Units = cylinders of 3782 * 512 = 1936384 bytes15 Sector size (logical/physical): 512 bytes / 512 bytes16 I/O size (minimum/optimal): 512 bytes / 512 bytes17 Disk identifier: 0x0000000018

19

20 Device Boot Start End Blocks Id System

• Am observat la pasul anterior ca discul are 1977 MB s, i nu are nici o partit, iedisponibila. Vom crea o partit, ie primara (se observa ca avem opt, iunea de aselecta între primar, respectiv extinsa, specifica partit, ionarii MBR)

1 Command (m for help): n2 Command action3 e extended4 p primary partition (1-4)5 p6 Partition number (1-4): 17 First cylinder (1-1021, default 1): 18 Last cylinder, +cylinders or +size{K,M,G} (1-1021, default 1021):

+50M9

10

11 Command (m for help): p12

13

Page 16: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 219

14 Disk /dev/sdb: 1977 MB, 1977614336 bytes15 61 heads, 62 sectors/track, 1021 cylinders16 Units = cylinders of 3782 * 512 = 1936384 bytes17 Sector size (logical/physical): 512 bytes / 512 bytes18 I/O size (minimum/optimal): 512 bytes / 512 bytes19 Disk identifier: 0x0000000020

21

22 Device Boot Start End Blocks Id System23 /dev/sdb1 1 28 52917 83 Linux

• Mai cream înca o partit, ie cu restul de spat, iu ramas:

1 Command (m for help): n2 Command action3 e extended4 p primary partition (1-4)5 p6 Partition number (1-4): 27 First cylinder (29-1021, default 29):8 Using default value 299 Last cylinder, +cylinders or +size{K,M,G} (29-1021, default 1021):

10 Using default value 102111

12

13 Command (m for help): p14

15

16 Disk /dev/sdb: 1977 MB, 1977614336 bytes17 61 heads, 62 sectors/track, 1021 cylinders18 Units = cylinders of 3782 * 512 = 1936384 bytes19 Sector size (logical/physical): 512 bytes / 512 bytes20 I/O size (minimum/optimal): 512 bytes / 512 bytes21 Disk identifier: 0x0000000022

23

24 Device Boot Start End Blocks Id System25 /dev/sdb1 1 28 52917 83 Linux26 /dev/sdb2 29 1021 1877763 83 Linux

• Vom scrie modificarile pe disc:

1 Command (m for help): w2 The partition table has been altered!3

4

5 Calling ioctl() to re-read partition table.6 Syncing disks.

• Se observa ca s-au creat intrari în /dev pentru fiecare partit, ie:

1 [root@monitor ~]# ls -l /dev/sdb*2 brw-rw---- 1 root disk 8, 16 Aug 29 15:49 /dev/sdb3 brw-rw---- 1 root disk 8, 17 Aug 29 15:49 /dev/sdb14 brw-rw---- 1 root disk 8, 18 Aug 29 15:49 /dev/sdb2

• Pentru a putea sa o folosim, vom formata o partit, ie cu sistemul de fis, iere ext4 s, ialta cu xfs:

1 root@monitor ~]# mkfs.ext4 /dev/sdb12 mke2fs 1.43-WIP (20-Jun-2013)

Page 17: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

220 INTRODUCERE ÎN SISTEME DE OPERARE

3 Filesystem label=4 OS type: Linux5 Block size=1024 (log=0)6 Fragment size=1024 (log=0)7 Stride=0 blocks, Stripe width=0 blocks8 13272 inodes, 52916 blocks9 2645 blocks (5.00%) reserved for the super user

10 First data block=111 Maximum filesystem blocks=5426380812 7 block groups13 8192 blocks per group, 8192 fragments per group14 1896 inodes per group15 Superblock backups stored on blocks:16 8193, 24577, 4096117

18

19 Allocating group tables: done20 Writing inode tables: done21 Creating journal (4096 blocks): done22 Writing superblocks and filesystem accounting information:23 done24 root@monitor ~]# mkfs.xfs /dev/sdb225 meta-data=/dev/sdb2 isize=256 agcount=4, agsize

=32000 blks26 = sectsz=512 attr=2, projid32bit=127 = crc=0 finobt=0, sparse=028 data = bsize=4096 blocks=128000, imaxpct

=2529 = sunit=0 swidth=0 blks30 naming =version 2 bsize=4096 ascii-ci=0 ftype=031 log =internal log bsize=4096 blocks=853, version=232 = sectsz=512 sunit=0 blks, lazy-

count=133 realtime =none extsz=4096 blocks=0, rtextents=0

• Vom monta sistemul de fis, iere:

1 [root@monitor ~]# mount /dev/sdb1 /mnt/2 [root@monitor ~]# df -h | grep mnt3 /dev/sdb1 47M 838K 43M 2% /mnt

• Se observa ca am alocat la partit, ionare 50M, dar sistemul de fis, iere are disponibildoar 47M. Acest lucru se întâmpla din cauza metadatelor necesare sistemului defis, iere pentru a organiza datele efective.

• Un ultim pas pe care trebuie sa îl avet, i în vedere atunci când configurat, ipartit, ionarea pe un sistem este dat de atributele unei partit, ii. Cel mai importantatribut este cel care marcheaza partit, ia de boot. În utilitarul fdisk, comanda aseteaza atributul (flag-ul) de boot pe partit, ia dorita (se observa stelut,a din dreptulpartit, iei /dev/sdb2):

1 Command (m for help): a2 Partition number (1-4): 23

4

5 Command (m for help): p6

7

8 Disk /dev/sdb: 1977 MB, 1977614336 bytes

Page 18: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 221

9 61 heads, 62 sectors/track, 1021 cylinders10 Units = cylinders of 3782 * 512 = 1936384 bytes11 Sector size (logical/physical): 512 bytes / 512 bytes12 I/O size (minimum/optimal): 512 bytes / 512 bytes13 Disk identifier: 0x0000000014

15

16 Device Boot Start End Blocks Id System17 /dev/sdb1 1 28 52917 83 Linux18 /dev/sdb2 * 29 1021 1877763 83 Linux

10.5 Anexa: Backup periodic

În cadrul acestui capitol s-a discutat despre replicarea datelor. Un mod de replicare pelânga mecanismul RAID, este replicarea periodica a fis, ierelor dintr-un sistem de operare.Acest mod de replicare este în general independent de sistemul de fis, iere.

10.5.1 Backup periodic pe Linux

În cadrul sistemelor bazate pe Linux, unul dintre cele mai folosite utilitare în replicareaeficienta a fis, ierelor s, i directoarelor este rsync. Aceasta are doua caracteristiciprincipale:

• Poate face replicare incrementala (nu este necesar sa copiem întreaga cale defiecare data), ceea ce duce la o îmbunatat, ire semnificativa a timpului de back-up

• Dispune de un control granular al atributelor replicate: owner-i, grupuri, atributeextinse, poate sau nu urmari link-urile simbolice

Comanda rsync este formata din parametri care controleaza atributele replicate s, i dindoua argumente care specifica sursa s, i destinat, ia datelor. Sursa s, i destinat, ia datelorpoate fi locala, în sistemul de fis, iere curent sau poate exista peste ret,ea iar rsync leacceseaza folosind protocolul SSH. Vom apela la un exemplu complex pentruback-up-ul întregului sisteme de fis, iere: rsync -aAXv--exclude="/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found" /root@nas:/backup

Comanda rsync primes, te urmatorii parametrii:

• a - modul de arhivare; pastreaza s, i replica toate atributele fis, ierelor s, i directoarelorcu except, ia link-urilor hard, atributelor extinse s, i listelor de access (ACL)

• A - replica listele de acces (ACL)

• X - replica atributele extinse

• H - replica link-urile hard

• --exclude - se vor exclude din back-up caile specificate (toate acele cai nu cont, inîn mod normal date utile utilizatorului, ci sunt cai virtuale populate la bootare decatre sistemul de operare)

Comanda rsync primes, te urmatoarele argumente:

Page 19: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

222 INTRODUCERE ÎN SISTEME DE OPERARE

• / - sursa datelor (calea radacina)

• root@nas:/backup - destinat, ia datelor (o locat, ie în ret,ea pe stat, ia cu numele nas)

Daca rulam de mai multe ori comanda de mai sus, aceasta va realiza automat backupincremental. --delete este un parametru ce nu l-am folosit anterior, dar este de obiceiutil: daca la destinat, ia ment, ionata exista fis, iere care nu sunt la sursa acestea vor fis, terse, astfel obt, inem consistent,a 100între sursa s, i destinat, ie.

Folosirea rsync din CLI s, i managementul versiunilor replicate este de obicei greoaie.Pentru a us, ura acest lucru, putet, i folosi aplicat, ia BackupPC(https://backuppc.github.io/backuppc/) ce are o interfat,a web prin care putet, i controlaopt, iunile s, i versiunile replicate. La baza BackupPC sta tot utilitarul rsync.

10.5.2 Backup periodic pe Windows

În cazul sistemelor Windows, exista o multitudine de aplicat, ii de replicare a datelor, atâtplatite cât s, i gratuite. Un exemplu îl constituie utilitarul Cobian Backup(http://www.cobiansoft.com/cobianbackup.htm). Cu ajutorul acestuia putem configurareplicarea unui directorul sau a unui disc local pe un stick USB sau la distant,a pesteret,ea. În Figura 10.11 se afla fereastra principala a aplicat, iei. În coloana din stângasunt sarcinile de backup pe care le creat, i. În figura avem o sarcina denumita Backup D,care va face replicarea întregii partit, ii D. Printre proprietat, ile sarcinii de replicare avem:

• General - aici se configureaza setari generale (daca vor fi incluse subdirectoarele,ce atribute vor fi replicate)

• Files - ce fis, iere vor fi replicate s, i unde

• Schedule - când se va realiza replicarea

• Archive - daca datele vor fi arhivate înainte de replicare

Figura 10.11: Aplicat, ia pentru replicarea datelor pe Windows: Cobian Backup

Page 20: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 223

10.6 Anexa: Montarea dispozitivelor

Pentru a putea folosi un dispozitiv de stocare într-un sistem de calcul, acesta trebuiemontat. În cazul sistemelor Windows, dispozitivele sunt montate automat. În cazulsistemelor Linux, acestea nu sunt întotdeauna montate (mai ales daca sistemul nudispune de un GUI). Cazul cel mai des întâlnit este dat de montarea unui stick USB. Lainserarea unui stick USB într-o unitate de calcul, vet, i observa în log-urile sistemului(rulat, i comanda dmesg), faptul ca acesta a fost detectat, precum s, i litera alocataacestuia (în cazul de fat,a observat, i ca este /dev/sdb):

1 usb 3-5: new high-speed USB device number 4 using xhci_hcd2 usb 3-5: New USB device found, idVendor=abcd, idProduct=12343 usb 3-5: New USB device strings: Mfr=1, Product=2, SerialNumber=34 usb 3-5: Product: 15 usb 3-5: Manufacturer: 16 usb 3-5: SerialNumber: 60A44C3D7ECDAF710000058E7 usb-storage 3-5:1.0: USB Mass Storage device detected8 scsi host5: usb-storage 3-5:1.09 usbcore: registered new interface driver usb-storage

10 usbcore: registered new interface driver uas11 scsi 5:0:0:0: Direct-Access General UDisk 5.00 PQ: 0 ANSI

: 212 sd 5:0:0:0: Attached scsi generic sg2 type 013 sd 5:0:0:0: [sdb] 15728640 512-byte logical blocks: (8.05 GB/7.50 GiB)14 sd 5:0:0:0: [sdb] Write Protect is off15 sd 5:0:0:0: [sdb] Mode Sense: 0b 00 00 0816 sd 5:0:0:0: [sdb] No Caching mode page found17 sd 5:0:0:0: [sdb] Assuming drive cache: write through18 sdb:19 sd 5:0:0:0: [sdb] Attached SCSI removable disk

Daca dorim sa îl folosim, acesta trebuie montat:

1 root@monitor ~]# mount /dev/sdb /mnt/part/2 root@monitor ~]# mount | grep sdb3 /dev/sdb on /mnt/part type vfat (rw,relatime,fmask=0022,dmask=0022,

codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro)

Se poate observa ca am montat cu succes stick-ul USB reprezentat în sistemul deoperare Linux prin /dev/sdb în calea /mnt/part. Am verificat daca a fost montatfolosind comanda mount. Se observa ca acesta a fost formatat folosind sistemul defis, iere VFAT.

Deseori companiile care produc software ne pun la dispozit, ie produsele sub forma unuifis, ier cu extensia .iso predestinat scrierii pe un CD/DVD. Pentru a accesa cont, inutulacestuia fara a-l scrie pe un suport fizic, putem folosi comanda mount s, i parametrul -omount prin care specificam faptul ca nu vom monta un disc fizic:

1 [root@monitor ~]# mount -o loop test.iso /mnt/2 [root@monitor ~]# ls -l /mnt/3 total 1084 -rw-rw-r-- 1 root root 14 May 2 14:28 CentOS_BuildTag5 drwxr-xr-x 3 root root 2048 May 3 23:34 EFI6 -rw-rw-r-- 1 root root 227 Aug 30 2017 EULA7 -rw-rw-r-- 1 root root 18009 Dec 10 2015 GPL8 drwxr-xr-x 3 root root 2048 May 3 23:45 images9 drwxr-xr-x 2 root root 2048 May 3 23:34 isolinux

Page 21: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

224 INTRODUCERE ÎN SISTEME DE OPERARE

10 drwxr-xr-x 2 root root 2048 May 3 23:34 LiveOS11 drwxrwxr-x 2 root root 71680 May 4 00:03 Packages12 drwxrwxr-x 2 root root 4096 May 4 00:06 repodata13 -rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-714 -rw-rw-r-- 1 root root 1690 Dec 10 2015 RPM-GPG-KEY-CentOS-Testing-715 -r--r--r-- 1 root root 2883 May 4 00:07 TRANS.TBL

O alta aplicat, ie a not, iunii de montare o reprezinta accesibilitatea datelor peste ret,ea dinsistemul nostru de fis, iere. Daca dispunem de un server la distant,a, ce are serviciul deSSH funct, ional, putem monta sistemul acestuia de fis, iere folosind utilitarul sshfs. Primulpas este instalarea acestuia:

1 [root@monitor ~]# apt-get install sshfs

Acum vom monta un sistem de fis, iere la distant,a:

1 [root@monitor ~]# sshfs root@hp-wn01:/root/ /mnt/2 [root@monitor ~]# mount | grep mnt3 root@hp-wn01:/root/ on /mnt type fuse.sshfs (rw,nosuid,nodev)4 [root@monitor ~]# ls -l /mnt/5 total 43043366 -rw------- 1 root root 1285 Nov 13 2015 anaconda-ks.cfg

Dupa cum se poate observa, cont, inutul directorului /root de pe mas, ina cu numele hp-wn01 a fost montat local. Partit, ia se poate demonta folosind comanda umount:

1 [root@monitor ~]# umount /mnt/2 [root@monitor ~]# mount | grep mnt3 [root@monitor ~]#

Un alt caz particular al mecanismului de montare pe Linux îl reprezinta montareapartit, iilor de Windows cu sistem de fis, iere NTFS. Pentru acest lucru trebuie sa instalat, ipachetul ntfs-3g:

1 [root@monitor ~]# apt-get install ntfs-3g

Folosind comanda mount s, i parametrul -t care specifica tipul sistemului de operare,putet, i monta un sistem de fis, iere NTFS:

1 [root@monitor ~]# mount -t ntfs /dev/sdb1 /mnt

10.6.1 Crearea unui disc ce are ca suport un fis, ier

În acest studiu de caz ne propunem sa cream un fis, ier de dimensiune 4GB pe care sa îlpartit, ionam, formatam s, i montam întocmai unui disc fizic.

Pentru a crea un fis, ier folosim comanda dd. Comanda dd este capabila sa citeasca s, isa scrie pe/de pe orice dispozitiv fizic sau fis, ier, având doi parametri centrali: if= pentrufluxul de intrare s, i of= pentru fluxul de ies, ire. Alt, i parametri care pot fi specificat, i pentrua control fluxul de date sunt:

• bs - block size; dimensiunea unui block de date

• count - câte blocuri va scrie

Pentru a genera un fis, ier de 4GB, vom alege dimensiunea blocului, 4MB, iar count va fi1KB. În total se vor transera 4GB (4MB * 1KB). Sursa de intrare a datelor va fi dispozitivulvirtual /dev/zero care genereaza zerouri:

Page 22: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 225

1 [root@monitor ~]# dd if=/dev/zero of=usodisk bs=4M count=1K2 1024+0 records in3 1024+0 records out4 4294967296 bytes (4.3 GB) copied, 53.9797 s, 79.6 MB/s

Vom asocia fis, ierul creat anterior cu un dispozitiv de tip block folosind modului de kernelloop s, i utilitarul losetup:

1 [root@monitor ~]# losetup /dev/loop0 usodisk2 [root@monitor ~]# losetup -a3 /dev/loop0: [0803]:3426957 (/root/usodisk)

Vom partit, iona fis, ierul întocmai unui disc folosind fdisk:

1 [root@monitor ~]# fdisk /dev/loop02 Device contains neither a valid DOS partition table, nor Sun, SGI or OSF

disklabel3 Building a new DOS disklabel with disk identifier 0x55de94a4.4 Changes will remain in memory only, until you decide to write them.5 After that, of course, the previous content won’t be recoverable.6

7

8 Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

9

10

11 WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to12 switch off the mode (command ’c’) and change display units to13 sectors (command ’u’).14

15

16 Command (m for help): p17

18

19 Disk /dev/loop0: 4294 MB, 4294967296 bytes20 255 heads, 63 sectors/track, 522 cylinders21 Units = cylinders of 16065 * 512 = 8225280 bytes22 Sector size (logical/physical): 512 bytes / 512 bytes23 I/O size (minimum/optimal): 512 bytes / 512 bytes24 Disk identifier: 0x55de94a425

26

27 Device Boot Start End Blocks Id System28

29

30 Command (m for help): n31 Command action32 e extended33 p primary partition (1-4)34 p35 Partition number (1-4): 136 First cylinder (1-522, default 1):37 Using default value 138 Last cylinder, +cylinders or +size{K,M,G} (1-522, default 522):39 Using default value 52240

41

42 Command (m for help): p43

Page 23: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

226 INTRODUCERE ÎN SISTEME DE OPERARE

44

45 Disk /dev/loop0: 4294 MB, 4294967296 bytes46 255 heads, 63 sectors/track, 522 cylinders47 Units = cylinders of 16065 * 512 = 8225280 bytes48 Sector size (logical/physical): 512 bytes / 512 bytes49 I/O size (minimum/optimal): 512 bytes / 512 bytes50 Disk identifier: 0x55de94a451

52

53 Device Boot Start End Blocks Id System54 /dev/loop0p1 1 522 4192933+ 83 Linux

Pentru a face disponibile partit, iile, vom folosi utilitarul kpartx:

1 [root@monitor ~]# kpartx -a /dev/loop02 [root@monitor ~]# ls -l /dev/mapper/loop0p13 lrwxrwxrwx 1 root root 7 Aug 30 10:46 /dev/mapper/loop0p1 -> ../dm-0

În acest moment putem formata partit, ia 1 s, i o putem monta:

1 [root@monitor ~]# mkfs.ext4 /dev/mapper/loop0p12 mke2fs 1.43-WIP (20-Jun-2013)3 Discarding device blocks: done4 Filesystem label=5 OS type: Linux6 Block size=4096 (log=2)7 Fragment size=4096 (log=2)8 Stride=0 blocks, Stripe width=0 blocks9 262144 inodes, 1048233 blocks

10 52411 blocks (5.00%) reserved for the super user11 First data block=012 Maximum filesystem blocks=107374182413 32 block groups14 32768 blocks per group, 32768 fragments per group15 8192 inodes per group16 Superblock backups stored on blocks:17 32768, 98304, 163840, 229376, 294912, 819200, 88473618

19

20 Allocating group tables: done21 Writing inode tables: done22 Creating journal (16384 blocks): done23 Writing superblocks and filesystem accounting information: done24

25

26 [root@monitor ~]# mount /dev/mapper/loop0p1 /mnt/27 [root@monitor ~]# mount | grep mnt28 /dev/mapper/loop0p1 on /mnt type ext4 (rw)

În continuare vom demonta partit, ia, vom s, terge intrarea creata de utilitarul kpartx s, ivom s, terge dispozitivul virtual /dev/loop0. Acest lucru trebuie facut atunci când at, iterminat operat, iile asupra discului reprezentat de fis, ierul usodisk:

1 [root@monitor ~]# umount /mnt/2 [root@monitor ~]# kpartx -d /dev/loop03 [root@monitor ~]# losetup -d /dev/loop0

Page 24: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 227

10.7 Anexa: Logical Volume Manager

Procesul de partit, ionare se poate aplica doar asupra unui disc fizic. Daca în sistemsunt montate doua discuri, pentru fiecare din acestea trebuie realizata partit, ionarea. Însisteme de tip Linux, pentru a rezolva acest neajuns, a fost introdus conceptul de LVM -Logical Volume Manager. În cadrul acestuia exista urmatoarele obiecte:

• Physical Volume - sunt discurile fizice alte sistemului asociate LVM-ului

• Volume Group - format din unul sau mai multe discuri asociate anterior

• Logical Volume - alocate din spat, iul disponibil într-unul din Volume Group-urilecreate anterior. Doar acesta este vizibil în sistemul de operare s, i poate fi formatatcu un sistem de fis, iere.

Atunci când instalat, i o distribut, ie de Linux, avet, i opt, iunea de a activa LVM-ul. Utilitateaacestuia apare atunci când mai adaugat, i un disc s, i dorit, i sa marit, i dimensiunea partit, iilorexistente.

În exemplul urmator vom investiga configurat, ia unui sistem de are activat LVM-ul:

• Vom lista discurile fizice:

1 mamba:~# pvs2 PV VG Fmt Attr PSize PFree3 /dev/md2 storage lvm2 a- 1.14t 130.47g

• Se observa un disc denumit /dev/md2 cu capacitatea 1.14TB. Vom lista acumvolumele:

1 mamba:~# vgs2 VG #PV #LV #SN Attr VSize VFree3 storage 1 6 0 wz--n- 1.14t 130.47g

• Se observa un singur volum denumit storage. Observat, i din ce discuri fizice estecompus:

1 mamba:~# pvdisplay /dev/md22 --- Physical volume ---3 PV Name /dev/md24 VG Name storage5 PV Size 1.14 TiB / not usable 4.00 MiB6 Allocatable yes7 PE Size 4.00 MiB8 Total PE 2996419 Free PE 33401

10 Allocated PE 26624011 PV UUID M9WAFG-pf9x-Uo0j-7r8N-spOy-5evy-tt0cyc

• Vom lista acum volumele logice, cele care sunt vizibile sistemului de operare:

1 mamba:~# lvs2 LV VG Attr LSize Origin Snap% Move Log Copy%

Convert3 home storage -wi-ao 20.00g4 labs storage -wi-ao 200.00g5 projects storage -wi-ao 200.00g6 rosedu storage -wi-ao 100.00g7 swarm storage -wi-ao 500.00g

Page 25: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

228 INTRODUCERE ÎN SISTEME DE OPERARE

8 titan storage -wi-ao 20.00g

• Observat, i ca toate acestea sunt prezente în calea /dev:

1 mamba:~# ls -l /dev/mapper/storage-*2 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-home ->

../dm-03 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-labs ->

../dm-24 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-projects

-> ../dm-35 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-rosedu ->

../dm-16 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-swarm ->

../dm-57 lrwxrwxrwx 1 root root 7 Aug 9 07:18 /dev/mapper/storage-titan ->

../dm-4

În Figura 10.12 este reprezentat grafic incluziunea dintre Physical Volume, VolumeGroup s, i Logical Volume.

Figura 10.12: Componentele LVM

10.8 Anexa: Replicarea datelor

În general, datele salvate pe sistemele de stocare sunt critice. Defectarea sistemelor destocare este iminenta mai ales din cauza faptului ca HDD-urile sunt sensibile la s, ocuri,iar SSD-urile au un numar limitat de scrieri din proiectare. Pentru a preveni pierdereairemediabila a datelor, datele sunt replicate prin diverse mecanisme pe mai multe unitat, ide stocare.

Page 26: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 229

Replicarea datelor pe discuri diferite se poate realiza automat la nivel de bloc de dateatunci când acestea sunt trimise de catre sistemul de operare. Mecanismul prin care seface este lucru se numes, te RAID (Redundant Array of Independent/Inexpensive Disks).Protocolul RAID poate fi implementat în hardware de catre controller-ul de stocare sauîn software de catre sistemul de operare. RAID-ul din hardware dispune de un protocolproprietar, cu metadate diferite de la vendor la vendor. As, adar un volum (set de discuri)configurate în RAID nu poate fi mutat pe un alt sistem.

RAID-ul dispune de mai multe niveluri de protect, ie:

• RAID0 - datele sunt distribuite pe toate discurile configurate. Nu exista nici un nivelde replicare (ex. Daca avem doua discuri configurate în RAID0 va rezulta un volumce are capacitatea celor doua discuri însumata, fara nici un nivel de replicare)

• RAID1 - datele sunt scrise pe 2 din discurile configurate. Daca un disc se vadefecta, celalalt va det, ine informat, ia (ex. Daca avem doua discuri configurate înRAID1 va rezulta un volum ce are capacitatea celui mai mic dintre discuri, cu unnivel de replicare a datelor)

• RAID5 - datele sunt scrise pe 1 disc s, i se mai scrie o suma de control pe un alt disc.Cu ajutorul sumelor de control, datele pot fi recuperate daca un disc pica. Necesitacel put, in 3 discuri. Poate pica un singur disc, iar datele ramân disponibile.

• RAID10 - combinat, ia dintre RAID0 si RAID1 (datele sunt distribuite s, i replicate).Acesta asigura unul dintre cele mai bune niveluri de protect, ie s, i performant,acrescuta

În Figura 10.13 sunt reprezentate grafic modurile de funct, ionare RAID prezentate maisus. Pe lânga acestea mai exista s, i RAID6, care este asemanator RAID5, dar are douadiscuri pe care se ret, ine paritatea. As, adar pot pica 2 discuri la un moment dat, iar datelesunt disponibile în continuare.

În sistemele bazate pe Linux, RAID-ul software este implementat prin modulul MD(Multiple Device). Cu ajutorul acestuia se pot configura doua sau mai multe discurifizice sa participe în formarea unei grupari RAID:

1 mamba:~# cat /proc/mdstat2 Personalities : [raid1] [raid6] [raid5] [raid4]3 md2 : active raid5 sda3[0] sdc3[2] sdb3[1]4 1227333632 blocks level 5, 64k chunk, algorithm 2 [3/3] [UUU]

Se observa dispozitivul md2, configurat în mod RAID5, folosind partit, iile sda3 sdc3 s, isdb3, toate fiind disponibile.

Replicarea folosind mecanismul RAID este utila atunci când sistemul ruleaza s, i dorimprotect, ie permanenta a datelor. Acest lucru este costisitor: pierdem spat, iu util s, iperformant,a este mai scazuta. Mecanismul RAID se foloses, te cu precadere însistemele de tip server. Pentru sistemele desktop/laptop se folosesc alte mecanismecum ar fi:

• Crearea unei imagini a întregului disc

• Snapshot folosind sistemul de fis, iere

• Copierea fis, ierelor pe un disc extern sau pe un alt dispozitiv peste ret,ea

Page 27: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

230 INTRODUCERE ÎN SISTEME DE OPERARE

Figura 10.13: Niveluri RAID

Page 28: Capitolul 10 Administrarea spatiului de stocareelf.cs.pub.ro/uso/res/carte/uso_cap-10-storage.pdfCapitolul 10 Administrarea spat,iului de stocare În cadrul unui sistem de calcul,

CAPITOLUL 10. ADMINISTRAREA SPAT, IULUI DE STOCARE 231

Crearea unei imagini a întregului disc este utila atunci când dorim sa refacem un sistemrapid ce a fost afectat de un defect hardware sau de un virus (e.g., crypto-locker - totdiscul a fost criptat). Un alt caz în care este util sa folosim imaginea unui disc este atuncicând dorim replicarea aceleias, i configurat, ii pe mai multe sisteme identice. Un programce va poate ajuta sa facet, i acest lucru atât pe Linux, cât s, i pe Windows este: Clonezilla(https://clonezilla.org/).

Snapshot folosind sistemul de fis, iere se poate face doar daca acesta suporta. Cel maicunoscut sistem de fis, iere cu aceasta facilitate este ZFS(https://www.freebsd.org/doc/handbook/zfs.html), disponibil în general pe sistemeleserver.

Copierea fis, ierelor pe un disc extern sau pe un alt dispozitiv peste ret,ea este o altamodalitate de replicare a datelor. Aceasta metoda este utila atunci când dorim salvareaunui director din tot sistemul de fis, iere sau atunci când dorim sa facem replicareincrementala. Replicarea incrementala va transfera doar diferent,ele între fis, iere, iar înacest mod se poate realiza s, i o versionare a acestora (se pot ret, ine mai multe versiuniale aceluias, i fis, ier). Cel mai cunoscut utilitar pentru Linux în rezolvarea acestui lucrueste rsync. Un exemplu pentru Windows gratuit îl constituie: Cobian.

Copierea datelor se poate realiza pe un disc extern conectat pe USB sau pe un altdispozitiv în ret,ea. În general în ret,ea avem alte servere pe care copiem datele sauavem dispozitive speciale de stocare denumite NAS (Network Attached Storage). UnNAS este un sistem de calcul cu un software specializat pentru accesarea s, i stocareadatelor. Acesta expune în ret,ea o multitudine de protocoale de acces (http, ftp, nfs, cifs)compatibile cu aproape toate sistemele de operare.