Gestionarea spațiului de pe disc utilizând lvm, sistem, kernel, utilitare, articole, bibliotecă

Gestionarea spațiului pe disc cu LVM

Articolul descrie cum se creează un server de fișiere utilizând LVM (cu RAID și fără RAID). Sunt luate în considerare problemele legate de extinderea spațiului pe disc, înlocuirea discurilor, alegerea sistemului de fișiere.

[Bryce Harrington și Kees Cook. Traducere: Mikhail Sgibnev (www.dreamcatcher.ru)]

Gestionarea spațiului pe disc cu LVM

Traducere: Sgibnev Mihail

Managerul de volum Logical Volume Manager (LVM) este mecanismul de virtualizare a discurilor. Acesta vă permite să creați partiții "virtuale" pe unul sau mai multe hard discuri, care în viitor pot fi mărite, reduse sau mutate de la disc la disc în funcție de nevoile dvs. De asemenea, există o oportunitate de a depăși limitarea dimensiunii partiției, impusă de dimensiunea hard disk-ului.

Acest articol se ocupă mai întâi de un server de fișiere entry-level, apoi facem câteva modificări, adăugând redundanță cu RAID 1. De asemenea, vom analiza aspecte legate de utilizarea LVM pentru utilizatorii de acasă.

Instalați LVM

Sistemul LVM include o componentă de kernel care gestionează sistemul de fișiere și utilitățile utilizatorului. Pentru a activa componenta kernelului, setați următoarele opțiuni:
Programele personalizate sunt instalate utilizând sistemul pachet al distribuției dvs. Linux. În Gentoo, utilitățile LVM sunt incluse în pachetul lvm2. Rețineți că puteți vedea pachetul LVM-1 (al doilea nume este lvm-user). Puteți instala ambele pachete, dar aveți nevoie de LVM-2 pentru a funcționa.

Elementele de bază ale LVM

Pentru a utiliza LVM, trebuie să înțelegeți câteva puncte. Aici aveți hard disk-urile. Spațiul de pe aceste dispozitive este tăiat în partiții. În cele din urmă, sistemul de fișiere este scris pe lângă aceste partiții. Pentru comparație, în LVM, grupurile de volume (VG) sunt împărțite în volume logice (LV), unde sistemele de fișiere sunt situate în cele din urmă (Figura 1).

Fiecare VG este alcătuită dintr-un grup de Volume Fizice (PVs). Puteți extinde (sau reduce) dimensiunea grupurilor de volume, adăugând sau eliminând câte PV-uri doriți, dacă există suficiente PV pentru a stoca conținutul tuturor LV-urilor alocate. Atâta timp cât există spațiu disponibil în VG, puteți mări sau micșora dimensiunea volumelor logice (deși majoritatea sistemelor de fișiere nu-i plac să se micșoreze).

Exemplu: un server de fișiere simplu

Un exemplu simplu de utilizare a LVM este un server de fișiere tradițional care stochează copii de rezervă, fișiere media și fișiere partajate pentru computerele mai multor membri ai familiei. Flexibilitatea este o cerință cheie; cine știe ce cerințe pentru volumele de discuri va veni anul viitor?

De exemplu, următoarele cerințe pentru secțiunile:
În cele din urmă, aceste cerințe pot crește de mai multe ori în următorul an sau doi, dar să spun exact ce secțiune și cât de mult - nu se poate.

În mod tradițional, serverul de fișiere utilizează unități SCSI, dar astăzi unitățile SATA oferă un raport atractiv de viteză și preț redus. La momentul acestei scrieri, unitățile SATA la 250GB sunt la prețul de aproximativ 100 $, deci costul per terabyte este de aproximativ 400 $.

Discurile SATA nu se numesc clasificarea ATA (hda, hdb), ci SCSI (sda, sdb). Odată ce sistemul nostru este pornit cu suport SATA, vom avea patru dispozitive fizice gata de utilizat:
Acum pregătiți-le pentru a lucra cu LVM. Puteți face acest lucru cu fdisk, specificând "Linux LVM" ca tip de secțiune 8e.

Crearea unui volum virtual

Acum aveți mai multe volume logice numite clar:

Selectarea unui sistem de fișiere

Acum, că dispozitivele sunt create, trebuie să creați sisteme de fișiere, dintre care există foarte multe. Pe ce să-ți oprești ochii strălucitori?

Sistemele tipice pentru fișiere desktop sunt ext2 și ext3. Ext2 a fost standardul, fiabil pentru Linux, în ultimii ani. Ext3 este o extensie ext2 care suportă jurnalizarea și mecanismele îmbunătățite de failover. Echilibrul dintre ext3 în termeni de performanță, fiabilitate și viteză de recuperare îl face o alegere excelentă pentru sistemele cu scop general. Deoarece ext2 și ext3 au fost sistemele de fișiere implicite pentru o lungă perioadă de timp, ext3 ar fi o alegere bună dacă doriți să obțineți mai multă fiabilitate. Pentru a stoca copii de rezervă, fiabilitatea este mult mai importantă decât viteza. Principalul dezavantaj al ext2 / ext3 este că, pentru a crește (reduce) FS, este necesar să-l demontați.

Cu toate acestea, alte sisteme de fișiere oferă anumite avantaje în anumite situații, de exemplu, cu dimensiuni mari de fișiere, un număr mare de fișiere sau arbitrare a sistemului de fișiere. Deoarece utilizarea principală a LVM este pentru scripturi, atunci când aveți nevoie de un număr critic de fișiere, fișiere extrem de mari și / sau de necesitatea redimensionării sistemelor de fișiere, luați în considerare alte sisteme de fișiere.

Pentru o mulțime de fișiere mici, ReiserFS este o alegere excelentă. Pentru streaming, I / O necuprinse, acest FS ia liniile de sus ale testelor și poate fi mai multe ordine de mărime mai rapidă decât ext3. Cu toate acestea, din punct de vedere istoric, nu a fost la fel de stabil ca ext3. Această concluzie se face pe baza unor date destul de depășite, poate că acum situația sa schimbat, dar reziduurile neplăcute au rămas.

Prin urmare, luând în considerare toate acestea:

montare

În cele din urmă, pentru a monta sistemele de fișiere, adăugați următoarele linii în / etc / fstab:
creați și activați punctele de montare:
Acum, serverul dvs. este gata să furnizeze servicii.

Adăugarea de redundanță cu RAID

În timpul utilizării LVM totul este destul de simplu. Cu toate acestea, există un dezavantaj major: dacă unul dintre discuri eșuează, datele dvs. vor fi în pericol. Este foarte dificil să creați o copie de rezervă pentru o jumătate de terabyte de date.

Pentru a compensa acest risc, trebuie să adăugați redundanță folosind RAID 1. RAID (Redundant Array of Independent Disks) este o tehnologie de nivel scăzut pentru combinarea discurilor în diferite moduri (nivele). RAID 1 reflectă date pe două (sau mai multe) discuri. Pe lângă îmbunătățirea fiabilității, utilizarea RAID 1 crește performanța, deoarece discurile conțin date identice, iar operațiile de citire / scriere pot fi partajate între ele.

Din păcate, această metodă are un cost ridicat, deoarece reduce volumul discului la jumătate. Vestea bună este că jumătate de terabyte este suficient pentru noi, iar LVM este suficient de flexibil pentru a adăuga discuri dacă este necesar în viitor.

RAID 5, cu patru discuri, un calico complet diferit. Acesta vă permite să restaurați o parte din spațiul de pe disc, dar adaugă complexitatea de utilizat. În plus, prezentând performanțe bune în operațiile de citire, acest tip de pierde mult în operațiile de înregistrare. Deoarece drive-urile sunt acum destul de ieftine, nu ar trebui să suferiți pentru beneficiile RAID 5.

Deși ar fi logic să începeți imediat instalarea sistemului folosind RAID, am așteptat să demonstram cum să migrăm de la discuri obișnuite la RAID fără a dezmembra sistemele de fișiere.

Acum vom îmbina cele patru discuri în două perechi de RAID 1: / dev / sda + / dev / sdd și / dev / sdb + / dev / sdc. Motivul pentru această combinație specifică este că sda și sdd sunt primul și al doilea disc pe controlere diferite; prin urmare, în cazul unei defecțiuni a controlerului, puteți accesa cele două discuri de pe controlerul rămas. Atunci când se utilizează astfel de perechi, vitezele de acces relativ sunt echilibrate, astfel încât nici un tip RAID să nu fie mai lent decât celălalt. De asemenea, este posibil să se mărească performanța de la distribuția operațiilor de citire / scriere între două controale.

Mai întâi, scoateți două discuri SATA (sdb și sdd) de la datavg VG:
Acum, schimbați tipul de partiție pe aceste două discuri selectând tipul fd (Linux raid autodetect):
Acum creați o oglindă RAID 1, indicând md. că cealaltă "jumătate" a oglinzii lipsește (deoarece celelalte două discuri nu sunt încă pregătite să fie adăugate la RAID).
Adăugați această oglindă spartă LVM:
Apoi, transferăm celelalte discuri în oglindă:
În concluzie, schimbăm tipurile de discuri în fd și obținem o oglindă ruptă, dar cu informații complete despre oglindă:
Deși, cu mult efort pentru a crea RAID 1, am protejat LVM fără reinstalarea, copierea, dezasamblarea FS sau repornirea sistemului.

Accesul la fișiere prin rețea

Utilizarea serverului de fișiere este discutabilă dacă nu puteți accesa cu ușurință fișierele. Există multe modalități de a face acest lucru, dar cel mai des întâlnit este sistemul de fișiere de rețea (NFS). NFS permite altor mașini * nix să monteze resurse partajate pentru utilizare directă, în plus, este foarte ușor de configurat în Linux.

Mai întâi, asigurați-vă că NFS este activat pe serverul de fișiere (în acest exemplu, 2.6.15):
Asamblați și reinstalați kernelul, apoi reporniți serverul. Dacă repornirea nu este dorită, construiți NFS ca un modul și apoi încărcați-l cu modprobe nfsd. Pornim serverul NFS. Pentru aceasta, distribuția dvs. Linux are un sistem init. De exemplu, în Gentoo, veți vedea:
Puteți re-verifica dacă rulează NFS solicitând portmapper-ul cu rpcinfo-p | grep nfs.
Apoi, trebuie să determinați care directoare NFS să fie exportate. Adăugați-le în / etc / exports.
Aceasta este o listă de directoare destinate accesului general, cu indicarea rețelei din care este permis accesul și a mai multor opțiuni suplimentare. Opțiunile rw și sync înseamnă permisiunile de citire / scriere și sincronizarea directoarelor, care împiedică încălcarea integrității datelor dacă serverul a fost repornit în mijlocul intrării fișierului, deși pierdem și avantajele modului asincron. Ehport aceste resurse NFS:
Acum montați aceste resurse pe fiecare mașină care le va folosi. Adăugați linii corespunzătoare cu parametrul fileerv în fișierul / etc / fstab al mașinii client:
În cele din urmă, creați punctele de montare și montați resursele:
Acum, toate mașinile din rețeaua dvs. au acces la un spațiu pe disc mare, fiabil și extensibil!

Strategia de creare a fișierelor de rezervă

Când utilizați LVM, pot apărea probleme de rezervă. Utilizarea RAID protejează împotriva defecțiunilor pe disc, dar această tehnologie este lipsită de apărare împotriva incendiilor, furtului sau ștergerii accidentale a fișierelor.

În mod tradițional, pentru unitățile din această clasă este utilizată o bandă. Această tehnologie este în continuare viabilă și are anumite avantaje, dar poate fi costisitoare și lentă pentru un sistem de această dimensiune. Din fericire, există mai multe tehnologii moderne.

rsync este un utilitar puternic pentru copierea fișierelor de la un sistem la altul și funcționează destul de bine pe Internet. Puteți instala un sistem de backup în compania unui prieten într-un alt oraș și puteți trimite periodic copii de rezervă acolo. Acest lucru se poate face cu cronjob:
O altă abordare este să atașați serverului dvs. o pereche de hard discuri externe RAID 1 prin Firewire, USB sau eSATA. Adăugați un disc în / dev / md0, iar al doilea în / dev / md1. Odată ce oglindirea a trecut, deconectați-le și salvați-le într-un loc sigur. Conectați discurile săptămânal sau lunar, în funcție de nevoile dvs.

Extindere și redistribuire

Să presupunem că în anul următor veți avea nevoie de volume suplimentare de memorie pe disc. Inițial, puteți utiliza spațiul rezervat, de exemplu, pentru a extinde spațiul pentru fișiere partajate de la 10GB la 15GB, executați următoarea comandă:
Dar când nu mai este spațiu, va trebui să înlocuim discurile de 250G cu discuri de 800G. În cazul utilizării RAID 1, migrarea este un proces destul de simplu. Pentru a marca discul din fiecare oglindă ca fiind "rupt", apoi ștergeți-l, utilizați comanda mdadm.
Extrageți discurile sda ​​și sdc, apoi le înlocuiți cu altele noi. În continuare, rupeți discurile de 800G în două partiții 250G și 550G utilizând fdisk și adăugați partițiile înapoi la md0 și md1:
Repetați procesul de mai sus cu discurile sdd și sdb pentru a le înlocui cu altele noi, apoi creați al treilea și al patrulea dispozitiv RAID, md2 și md3, utilizând noul spațiu:
În final, adăugați-le la LVM:
Serverul de fișiere are acum 1,6 TB de spațiu pe disc.

LVM și stația de lucru

În timp ce am vorbit despre utilizarea LVM și RAID pentru a gestiona spațiul pe disc al serverului de fișiere, dar ce se întâmplă dacă doriți să instalați LVM pe mașina dvs. de producție? Acest lucru se poate face, dar merită luate în considerare câteva aspecte.

Mai întâi, unele distribuții Linux nu suportă RAID sau LVM în timpul fazei de instalare sau de actualizare, ceea ce poate provoca neplăceri. Merită să acordați atenție acestui lucru.

În al doilea rând, având un sistem de fișiere rădăcină pe LVM poate face mai dificilă recuperarea sistemelor de fișiere deteriorate. Deoarece încărcătoarele nu acceptă LVM, partiția / boot nu ar trebui să fie LVM (deși poate fi pe un dispozitiv RAID 1).

În al treilea rând, aveți nevoie de spațiu liber pe disc pentru noua partiție LVM. Dacă nu aveți unul, încercați să tăiați partiția rădăcină, așa cum este descris în HOWTO LVM.

În acest exemplu, vom examina situația în care aveți swap și / boot pe partițiile proprii, în afara LVM. Vom concentra asupra modului de a muta partiția rădăcină în interiorul partiției LVM din / dev / hda4. Verificați dacă tipul de sistem de fișiere de pe hda4 este LVM (tip 8e).

Inițializați LVM și creați un nou volum fizic:
Acum creați un volum logic de 5G formatat în xfs:
Copiați fișierele din sistemul de fișiere rădăcină existent la noul LVM:
Apoi, modificați / etc / fstab pentru mount / to / dev / rootvg / root în loc de / dev / hda3.

Cel mai dificil lucru este de a reconstrui initrd-ul pentru a permite suportul LVM. Acest proces depinde foarte mult de distribuție, de exemplu, mkinitrd sau yaird. Imaginea dvs. initrd trebuie să încarce modulul LVM, altfel sistemul de fișiere rădăcină nu va fi disponibil. În caz contrar, salvați imaginea initrd și creați unul nou cu alt nume, de exemplu /boot/initrd-lvm.img.

În cele din urmă, actualizați încărcătorul de încărcare. Adăugați o nouă partiție pentru noul sistem de fișiere rădăcină, duplicând linia de pornire veche. În linia nouă, modificați rădăcina de la / dev / hda3 la / dev / rootvg / rootlv și înlocuiți initrd cu unul nou. Dacă utilizați Lilo, asigurați-vă că lilo rulați de îndată ce faceți modificările. De exemplu, cu grub vom avea:
Adăugați o secțiune nouă:

concluzie

LVM este una dintre numeroasele tehnologii Linux disponibile utilizatorilor. LVM permite o mai mare flexibilitate în gestionarea spațiului pe disc și combinat cu RAID 1, NFS și o strategie bună de backup poate oferi o modalitate de a păstra și a împărtăși orice număr de fișiere.

Bryce Harrington și Kees Cook. Traducere: Sgibnev Mikhail (www.dreamcatcher.ru) - Managementul spațiului pe disc cu versiunea LVM Print

Biblioteca LinuxCenter. Lista secțiunilor

Articole similare