Een Inleiding tot LVM Concepten, Terminologie en Handelingen

Inleiding

LVM, of Logical Volume Management, is een technologie voor het beheer van opslagapparaten die gebruikers de mogelijkheid geeft om de fysieke indeling van componentopslagapparaten te bundelen en abstract te maken voor flexibel beheer. Door gebruik te maken van het device mapper Linux-kernelframework kan de huidige versie, LVM2, bestaande opslagapparaten groeperen en logische eenheden toewijzen vanuit de gecombineerde ruimte indien nodig.

De belangrijkste voordelen van LVM zijn verhoogde abstractie, flexibiliteit en controle. Logische volumes kunnen betekenisvolle namen hebben zoals “databases” of “root-backup”. Volumes kunnen ook dynamisch worden aangepast aan veranderende ruimtebehoeften en worden gemigreerd tussen fysieke apparaten binnen de pool op een actief systeem of geëxporteerd. LVM biedt ook geavanceerde functies zoals snapshots, striping en spiegeling.

In deze handleiding leert u hoe LVM werkt en oefent u met basiscommando’s om snel aan de slag te gaan op een bare metal machine.

LVM-architectuur en terminologie

Voordat u zich verdiept in LVM-beheercommando’s, is het belangrijk om een basisbegrip te hebben van hoe LVM opslagapparaten organiseert en enkele van de terminologie die het gebruikt.

Structuren voor LVM-opslagbeheer

LVM functioneert door abstracties te lagen bovenop fysieke opslagapparaten. De basislagen die LVM gebruikt, beginnend met de meest primitieve, zijn:

  • Fysieke volumes: Het LVM-hulpprogrammaprefix voor fysieke volumes is pv.... Deze omvatten fysieke blokapparaten of andere schijfachtige apparaten (bijvoorbeeld andere apparaten gecreëerd door de apparaatmapper, zoals RAID-arrays) en worden door LVM gebruikt als het ruwe bouwmateriaal voor hogere abstractieniveaus. Fysieke volumes zijn reguliere opslagapparaten. LVM schrijft een kop naar het apparaat om het toe te wijzen voor beheer.

  • Volumegroepen: Het LVM-hulpprogrammaprefix voor volumegroepen is vg....
    LVM combineert fysieke volumes tot opslagpools die bekend staan als volumegroepen. Volumegroepen abstraheren de kenmerken van de onderliggende apparaten en functioneren als een verenigd logisch apparaat met gecombineerde opslagcapaciteit van de componentfysieke volumes.

  • Logische Volumes: De LVM hulpprefix voor logische volumes is lv..., generieke LVM-hulpprogramma’s kunnen beginnen met lvm.... Een volume groep kan worden opgedeeld in elk aantal logische volumes. Logische volumes zijn functioneel equivalent aan partities op een fysieke schijf, maar met veel meer flexibiliteit. Logische volumes zijn het belangrijkste onderdeel waarmee gebruikers en applicaties zullen communiceren.

LVM kan worden gebruikt om fysieke volumes te combineren in volume groepen om de beschikbare opslagruimte op een systeem te verenigen. Vervolgens kunnen beheerders de volume groep segmenteren in willekeurige logische volumes, die fungeren als flexibele partities.

Begrip Extents

Elk volume binnen een volume-groep is opgedeeld in kleine, vastgestelde chunks die extents worden genoemd. De grootte van de extents wordt bepaald door de volume-groep. Alle volumes binnen de groep voldoen aan dezelfde extent-grootte.

De extents op een fysiek volume worden fysieke extents genoemd, terwijl de extents van een logisch volume logische extents worden genoemd. Een logisch volume is een mapping die LVM onderhoudt tussen logische en fysieke extents. Vanwege deze relatie vertegenwoordigt de extent-grootte de kleinste hoeveelheid ruimte die door LVM kan worden toegewezen.

Extents liggen aan de basis van veel van de flexibiliteit en kracht van LVM. De logische extents die door LVM als een geünificeerd apparaat worden gepresenteerd, hoeven niet te worden gemapt naar aaneengesloten fysieke extents. LVM kan fysieke extents kopiëren en herorganiseren die een logisch volume vormen zonder enige onderbreking voor gebruikers. Logische volumes kunnen ook worden vergroot of verkleind door extents aan het volume toe te voegen of extents ervan te verwijderen.

Veelvoorkomende Gebruiksscenario’s

Nu je bekend bent met enkele van de terminologie en structuren die LVM gebruikt, kun je enkele veelvoorkomende manieren verkennen om LVM te gebruiken. Je begint met een procedure die twee fysieke schijven zal gebruiken om vier logische volumes te vormen.

Markeren van de Fysieke Apparaten als Fysieke Volumes

Begin met het scannen van het systeem voor blokapparaten die LVM kan benaderen en beheren. U kunt dit doen met de volgende opdracht:

  1. sudo lvmdiskscan

Het resultaat geeft alle beschikbare blokapparaten weer waarmee LVM kan communiceren:

Output
/dev/ram0 [ 64.00 MiB] /dev/sda [ 200.00 GiB] /dev/ram1 [ 64.00 MiB] . . . /dev/ram15 [ 64.00 MiB] /dev/sdb [ 100.00 GiB] 2 disks 17 partitions 0 LVM physical volume whole disks 0 LVM physical volumes

In dit voorbeeld, merk op dat er momenteel twee schijven en 17 partities zijn. De partities zijn voornamelijk /dev/ram* partities die in het systeem worden gebruikt als een RAM-schijf voor prestatieverbeteringen. De schijven in dit voorbeeld zijn /dev/sda, die 200G aan ruimte heeft, en /dev/sdb, die 100G heeft.

Waarschuwing: Controleer zorgvuldig of de apparaten die u met LVM wilt gebruiken geen belangrijke gegevens bevatten. Het gebruik van deze apparaten binnen LVM zal de huidige inhoud overschrijven. Als u belangrijke gegevens op uw server hebt, maak dan een back-up voordat u verder gaat.

Nu u de fysieke apparaten kent die u wilt gebruiken, markeer ze als fysieke volumes binnen LVM met de pvcreate-opdracht:

  1. sudo pvcreate /dev/sda /dev/sdb
Output
Physical volume "/dev/sda" successfully created Physical volume "/dev/sdb" successfully created

Dit zal een LVM-header naar de apparaten schrijven om aan te geven dat ze gereed zijn om aan een volumegroep te worden toegevoegd.

Controleer of LVM de fysieke volumes heeft geregistreerd door pvs uit te voeren:

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda lvm2 --- 200.00g 200.00g /dev/sdb lvm2 --- 100.00g 100.00g

Let op dat beide apparaten aanwezig zijn onder de kolom PV, wat staat voor fysiek volume.

Het toevoegen van de fysieke volumes aan een volume-groep

Nu je fysieke volumes hebt gemaakt van je apparaten, kun je een volume-groep maken. Meestal heb je slechts één volume-groep per systeem voor maximale flexibiliteit in toewijzing. Het volgende voorbeeld van een volume-groep is genaamd LVMVolGroup. Je kunt je volume-groep een willekeurige naam geven.

Om de volume-groep te maken en beide fysieke volumes eraan toe te voegen, voer het volgende uit:

  1. sudo vgcreate LVMVolGroup /dev/sda /dev/sdb
Output
Volume group "LVMVolGroup" successfully created

Het controleren van de uitvoer van pvs zal aangeven dat je fysieke volumes nu zijn gekoppeld aan de nieuwe volume-groep:

  1. sudo pvs
Output
PV VG Fmt Attr PSize PFree /dev/sda LVMVolGroup lvm2 a-- 200.00g 200.00g /dev/sdb LVMVolGroup lvm2 a-- 100.00g 100.00g

Geef een korte samenvatting van de volume-groep met vgs:

  1. sudo vgs
Output
VG #PV #LV #SN Attr VSize VFree LVMVolGroup 2 0 0 wz--n- 299.99g 299.99g

Je volume-groep heeft momenteel twee fysieke volumes, nul logische volumes en heeft de gecombineerde capaciteit van de onderliggende apparaten.

Logische volumes maken vanuit de volume-groeppool

Nu je een volume-groep beschikbaar hebt, kun je deze gebruiken als een pool om logische volumes van toe te wijzen. In tegenstelling tot conventionele partitionering hoef je bij het werken met logische volumes de indeling van het volume niet te kennen, omdat LVM dit voor je in kaart brengt en beheert. Je hoeft alleen de grootte van het volume en een naam op te geven.

In het volgende voorbeeld maak je vier aparte logische volumes aan uit je volume-groep:

  • 10G “projects” volume
  • 5G “www” volume voor webinhoud
  • 20G “db” volume voor een database
  • “workspace” volume dat de resterende ruimte vult

Om logische volumes te maken, gebruik je het lvcreate-commando. Je moet de volume-groep doorgeven om uit te putten en je kunt het logische volume een naam geven met de -n-optie. Om de grootte direct aan te geven, kun je de -L-optie gebruiken. Als je daarentegen de grootte wilt specificeren in termen van het aantal extents, kun je de -l-optie gebruiken.

Maak de eerste drie logische volumes met de -L-optie aan:

  1. sudo lvcreate -L 10G -n projects LVMVolGroup
  2. sudo lvcreate -L 5G -n www LVMVolGroup
  3. sudo lvcreate -L 20G -n db LVMVolGroup
Output
Logical volume "projects" created. Logical volume "www" created. Logical volume "db" created.

Je kunt de logische volumes en hun relatie tot de volume-groep bekijken door een aangepaste uitvoer te selecteren van het vgs-commando:

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 10.00g projects LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 5.00g www LVMVolGroup 2 3 0 wz--n- 299.99g 264.99g 20.00g db

In dit voorbeeld heb je de laatste twee kolommen aan de uitvoer toegevoegd. Het geeft aan hoeveel ruimte is toegewezen aan je logische volumes.

Nu kun je de rest van de ruimte in de volumegroep toewijzen aan het volume "workspace" met behulp van de -l vlag, die werkt in extents. Je kunt ook een percentage en een eenheid opgeven om je bedoelingen beter te communiceren. In dit voorbeeld wijs je de resterende vrije ruimte toe, dus je kunt 100%FREE doorgeven:

  1. sudo lvcreate -l 100%FREE -n workspace LVMVolGroup
Output
Logical volume "workspace" created.

Het controleren van de informatie van de volumegroep met de aangepaste vgs opdracht, merk op dat je alle beschikbare ruimte hebt gebruikt:

  1. sudo vgs -o +lv_size,lv_name
Output
VG #PV #LV #SN Attr VSize VFree LSize LV LVMVolGroup 2 4 0 wz--n- 299.99g 0 10.00g projects LVMVolGroup 2 4 0 wz--n- 299.99g 0 5.00g www LVMVolGroup 2 4 0 wz--n- 299.99g 0 20.00g db LVMVolGroup 2 4 0 wz--n- 299.99g 0 264.99g workspace

Het volume workspace is aangemaakt en de volumegroep LVMVolGroup is volledig toegewezen.

Het formatteren en koppelen van de logische volumes

Nu je logische volumes hebt, kun je ze gebruiken als normale blokapparaten.

De logische apparaten zijn beschikbaar binnen de /dev directory zoals andere opslagapparaten. Je kunt ze op twee plaatsen benaderen:

  • /dev/volumegroeplabel/logischvolumenaam
  • /dev/mapper/volumegroeplabel-logischvolumenaam

Om je vier logische volumes te formatteren met het Ext4-bestandssysteem, voer je de volgende commando’s uit:

  1. sudo mkfs.ext4 /dev/LVMVolGroup/projects
  2. sudo mkfs.ext4 /dev/LVMVolGroup/www
  3. sudo mkfs.ext4 /dev/LVMVolGroup/db
  4. sudo mkfs.ext4 /dev/LVMVolGroup/workspace

Als alternatief kun je het volgende uitvoeren:

  1. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-projects
  2. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-www
  3. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-db
  4. sudo mkfs.ext4 /dev/mapper/LVMVolGroup-workspace

Na het formatteren, maak koppelpunten aan:

  1. sudo mkdir -p /mnt/{projects,www,db,workspace}

Vervolgens koppel je de logische volumes aan de juiste locatie:

  1. sudo mount /dev/LVMVolGroup/projects /mnt/projects
  2. sudo mount /dev/LVMVolGroup/www /mnt/www
  3. sudo mount /dev/LVMVolGroup/db /mnt/db
  4. sudo mount /dev/LVMVolGroup/workspace /mnt/workspace

Om de mounts persistent te maken, gebruik je je voorkeurteksteditor om ze toe te voegen aan het bestand /etc/fstab. Het volgende voorbeeld gebruikt nano:

  1. sudo nano /etc/fstab
/etc/fstab
. . .

/dev/LVMVolGroup/projects /mnt/projects ext4 defaults,nofail 0 0
/dev/LVMVolGroup/www /mnt/www ext4 defaults,nofail 0 0
/dev/LVMVolGroup/db /mnt/db ext4 defaults,nofail 0 0
/dev/LVMVolGroup/workspace /mnt/workspace ext4 defaults,nofail 0 0

Na het bewerken van je bestand, sla je op en sluit je af. Als je nano gebruikt, druk je op CTRL+c, dan y, dan ENTER.

Het besturingssysteem zou nu de LVM-logische volumes automatisch moeten mounten bij het opstarten.

Conclusie

Je hebt nu een begrip van de verschillende componenten die LVM beheert om een flexibel opslagsysteem te creëren, en hoe je opslagapparaten aan de praat krijgt in een LVM-opstelling.

Om meer te weten te komen over het werken met LVM, bekijk onze gids voor het gebruik van LVM met Ubuntu 18.04.

Source:
https://www.digitalocean.com/community/tutorials/an-introduction-to-lvm-concepts-terminology-and-operations