Zoeken op website

LFCS: LVM beheren en creëren met de opdrachten vgcreate, lvcreate en lvextend - Deel 11


Vanwege de wijzigingen in de LFCS-examenvereisten die feb. Vanaf 2 januari 2016 voegen we de nodige onderwerpen toe aan de LFCS-serie die hier wordt gepubliceerd. Ter voorbereiding op dit examen wordt u ten zeerste aangemoedigd om ook de LFCE-serie te gebruiken.

Een van de belangrijkste beslissingen bij het installeren van een Linux-systeem is de hoeveelheid opslagruimte die moet worden toegewezen voor systeembestanden, homemappen en andere. Als je op dat moment een fout maakt, kan het lastig en enigszins riskant zijn om een partitie te laten groeien die geen ruimte meer heeft.

Logisch volumebeheer (ook bekend als LVM), dat de standaard is geworden voor de installatie van de meeste (zo niet alle) Linux-distributies, heeft talloze voordelen ten opzichte van traditioneel partitiebeheer. Misschien wel het meest onderscheidende kenmerk van LVM is dat het de mogelijkheid biedt om logische indelingen zonder veel gedoe naar eigen inzicht te vergroten of verkleinen.

De structuur van de LVM bestaat uit:

  1. Een of meer volledige harde schijven of partities zijn geconfigureerd als fysieke volumes (PV's).
  2. Er wordt een volumegroep (VG) gemaakt met behulp van een of meer fysieke volumes. U kunt een volumegroep beschouwen als één opslageenheid.
  3. Er kunnen vervolgens meerdere logische volumes in een volumegroep worden gemaakt. Elk logisch volume is enigszins gelijkwaardig aan een traditionele partitie – met als voordeel dat de grootte ervan naar believen kan worden aangepast, zoals we eerder vermeldden.

In dit artikel gebruiken we drie schijven van elk 8 GB (/dev/sdb, /dev/sdc en /dev /sdd) om drie fysieke volumes te maken. U kunt de PV's rechtstreeks op het apparaat aanmaken, of deze eerst verdelen.

Hoewel we ervoor hebben gekozen om voor de eerste methode te gaan, als je besluit voor de tweede te gaan (zoals uitgelegd in Deel 4 – Partities en bestandssystemen maken in Linux van deze serie), zorg er dan voor dat je elke partitie configureert als type 8e.

Fysieke volumes, volumegroepen en logische volumes creëren

Om fysieke volumes te maken bovenop /dev/sdb, /dev/sdc en /dev/sdd, doe je het volgende:

pvcreate /dev/sdb /dev/sdc /dev/sdd

U kunt de nieuw aangemaakte PV's weergeven met:

pvs

en krijg gedetailleerde informatie over elke PV met:

pvdisplay /dev/sdX

(waarbij X b, c of d is)

Als u /dev/sdX als parameter weglaat, krijgt u informatie over alle PV's.

Om een volumegroep met de naam vg00 aan te maken met behulp van /dev/sdb en /dev/sdc (we zullen /dev/sdd opslaan voor later om de mogelijkheid te illustreren om andere apparaten toe te voegen om de opslagcapaciteit uit te breiden wanneer dat nodig is):

vgcreate vg00 /dev/sdb /dev/sdc

Net als bij fysieke volumes kunt u ook informatie over deze volumegroep bekijken door het volgende uit te voeren:

vgdisplay vg00

Omdat vg00 bestaat uit twee 8 GB schijven, zal het verschijnen als één 16 GB schijf:

Als het gaat om het creëren van logische volumes, moet bij de verdeling van de ruimte rekening worden gehouden met zowel de huidige als toekomstige behoeften. Het wordt als een goede praktijk beschouwd om elk logisch volume een naam te geven op basis van het beoogde gebruik.

Laten we bijvoorbeeld twee LV's maken met de naam vol_projects (10 GB) en vol_backups (resterende ruimte), die we later kunnen gebruiken om projectdocumentatie op te slaan en systeemback-ups, respectievelijk.

De optie -n wordt gebruikt om een naam voor de LV aan te geven, terwijl -L een vaste grootte instelt en -l (kleine letter L) is gebruikt om een percentage van de resterende ruimte in de container VG aan te geven.

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

Net als voorheen kunt u de lijst met LV's en basisinformatie bekijken met:

lvs

en gedetailleerde informatie met

lvdisplay

Om informatie over een enkele LV te bekijken, gebruikt u lvdisplay met de VG en LV als parameters, als volgt:

lvdisplay vg00/vol_projects

In de afbeelding hierboven kunnen we zien dat de LV's zijn gemaakt als opslagapparaten (zie de regel LV Path). Voordat elk logisch volume kan worden gebruikt, moeten we er een bestandssysteem bovenop maken.

We gebruiken ext4 hier als voorbeeld, omdat het ons zowel de mogelijkheid biedt om de grootte van elke LV te vergroten als te verkleinen (in tegenstelling tot xfs waarmee alleen de grootte kan worden vergroot):

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

In de volgende sectie leggen we uit hoe u de grootte van logische volumes kunt wijzigen en extra fysieke opslagruimte kunt toevoegen wanneer dat nodig is.

Het formaat van logische volumes wijzigen en volumegroepen uitbreiden

Stel je nu het volgende scenario voor. Je begint ruimte tekort te komen in vol_backups, terwijl je nog voldoende ruimte beschikbaar hebt in vol_projects. Vanwege de aard van LVM kunnen we de grootte van de laatste gemakkelijk verkleinen (zeg 2,5 GB) en deze toewijzen aan de eerste, terwijl we tegelijkertijd de grootte van elk bestandssysteem wijzigen.

Gelukkig is dit net zo eenvoudig als doen:

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

Het is belangrijk om de mintekens (-) of plus (+) op te nemen bij het wijzigen van de grootte van een logisch volume. Anders stelt u een vaste grootte in voor de LV in plaats van de grootte ervan te wijzigen.

Het kan gebeuren dat u op een punt komt waarop het aanpassen van de grootte van logische volumes uw opslagbehoeften niet meer kan oplossen en u een extra opslagapparaat moet kopen. Om het simpel te houden: je hebt een andere schijf nodig. We gaan deze situatie simuleren door de resterende PV uit onze initiële installatie toe te voegen (/dev/sdd).

Om /dev/sdd toe te voegen aan vg00, doet u dat

vgextend vg00 /dev/sdd

Als u vgdisplay vg00 voor en na het vorige commando uitvoert, ziet u de toename van de grootte van de VG:

vgdisplay vg00

Nu kunt u de nieuw toegevoegde ruimte gebruiken om het formaat van de bestaande LV's aan te passen aan uw behoeften, of om indien nodig extra LV's te maken.

Het koppelen van logische volumes bij het opstarten en op aanvraag

Natuurlijk zou het geen zin hebben om logische volumes te creëren als we ze niet daadwerkelijk gaan gebruiken! Om een logisch volume beter te kunnen identificeren, moeten we uitzoeken wat de UUID ervan is (een niet-veranderend attribuut dat op unieke wijze een geformatteerd opslagapparaat identificeert).

Om dat te doen, gebruik je blkid gevolgd door het pad naar elk apparaat:

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

Maak koppelpunten voor elke LV:

mkdir /home/projects
mkdir /home/backups

en plaats de overeenkomstige vermeldingen in /etc/fstab (zorg ervoor dat u de eerder verkregen UUID's gebruikt):

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

Sla vervolgens de wijzigingen op en monteer de LV's:

mount -a
mount | grep home

Als het gaat om het daadwerkelijk gebruiken van de LV's, moet je de juiste ugo+rwx-rechten toewijzen, zoals uitgelegd in Deel 8 – Beheer gebruikers en groepen in Linux van deze serie.

Samenvatting

In dit artikel hebben we Logical Volume Management geïntroduceerd, een veelzijdige tool voor het beheren van opslagapparaten die schaalbaarheid biedt. In combinatie met RAID (wat we hebben uitgelegd in Deel 6 – RAID maken en beheren in Linux van deze serie), kunt u niet alleen genieten van schaalbaarheid (geleverd door LVM), maar ook van redundantie (aangeboden door RAID).

Bij dit type configuratie vindt u doorgaans LVM bovenop RAID, dat wil zeggen: configureer eerst RAID en configureer vervolgens LVM erbovenop.

Als u vragen heeft over dit artikel of suggesties om het te verbeteren, kunt u ons bereiken via het onderstaande opmerkingenformulier.