Articles

Een Linux-handleiding voor Logisch Volumemanagement

Het beheren van schijfruimte is altijd een belangrijke taak geweest voor systeembeheerders. Als de schijfruimte opraakte, begon een lange en complexe reeks taken om de beschikbare ruimte voor een schijfpartitie te vergroten. Het vereiste ook dat het systeem offline werd gehaald. Dit hield meestal in: een nieuwe harde schijf installeren, booten naar herstel- of single-user mode, een partitie en een bestandssysteem aanmaken op de nieuwe harde schijf, tijdelijke koppelpunten gebruiken om de gegevens van het te kleine bestandssysteem naar het nieuwe, grotere te verplaatsen, de inhoud van het /etc/fstab bestand wijzigen om de juiste apparaatnaam voor de nieuwe partitie weer te geven, en opnieuw opstarten om het nieuwe bestandssysteem opnieuw te koppelen op het juiste koppelpunt.

Ik moet je zeggen dat, toen LVM (Logical Volume Manager) voor het eerst verscheen in Fedora Linux, ik me er nogal sterk tegen heb verzet. Mijn eerste reactie was dat ik deze extra laag van abstractie tussen mij en de harde schijven niet nodig had. Het blijkt dat ik het mis had, en dat logisch volume beheer erg nuttig is.

LVM staat een erg flexibel schijfruimte beheer toe. Het biedt mogelijkheden zoals de mogelijkheid om schijfruimte toe te voegen aan een logisch volume en het bijbehorende bestandssysteem terwijl dat bestandssysteem is gemount en actief is, en het maakt het mogelijk om meerdere fysieke harde schijven en partities te verzamelen in een enkele volumegroep die vervolgens kan worden verdeeld in logische volumes.

Het volumebeheer maakt het ook mogelijk om de hoeveelheid schijfruimte die is toegewezen aan een logisch volume te verminderen, maar er zijn een paar vereisten. Ten eerste moet het volume worden ontkoppeld. Ten tweede moet het bestandssysteem zelf worden verkleind voordat het volume waarop het zich bevindt kan worden verkleind.

Het is belangrijk op te merken dat het bestandssysteem zelf het wijzigen van de grootte moet toestaan om deze functie te laten werken. De EXT2, 3, en 4 bestandssystemen staan zowel offline (ontkoppeld) als online (aangekoppeld) resizing toe wanneer de grootte van een bestandssysteem wordt vergroot, en offline resizing wanneer de grootte wordt verkleind. U moet de details van de bestandssystemen die u van plan bent te gebruiken controleren om na te gaan of ze überhaupt van grootte kunnen worden veranderd en vooral of ze van grootte kunnen worden veranderd terwijl ze online zijn.

Een bestandssysteem tijdens de vlucht vergroten

Ik draai nieuwe distributies altijd graag een paar dagen of weken in een VirtualBox virtuele machine om er zeker van te zijn dat ik geen verwoestende problemen tegenkom als ik ze op mijn productiemachines ga installeren. Op een ochtend een paar jaar geleden begon ik met het installeren van een nieuw uitgebrachte versie van Fedora in een virtuele machine op mijn primaire werkstation. Ik dacht dat ik genoeg schijfruimte had toegewezen aan het host bestandssysteem waarin de VM werd geïnstalleerd. Dat was niet zo. Ongeveer een derde van de installatie had ik geen ruimte meer op dat bestandssysteem. Gelukkig detecteerde VirtualBox het ruimtegebrek en pauzeerde de virtuele machine, en gaf zelfs een foutmelding die de precieze oorzaak van het probleem aangaf.

Merk op dat dit probleem niet te wijten was aan het feit dat de virtuele schijf te klein was, het was eerder het logische volume op de host computer dat ruimte tekort kwam, zodat de virtuele schijf die bij de virtuele machine hoorde niet genoeg ruimte had om uit te breiden op het logische volume van de host.

Doordat de meeste moderne distributies standaard Logical Volume Management gebruiken, en ik wat vrije ruimte beschikbaar had op de volume groep, was ik in staat om extra schijfruimte toe te wijzen aan het juiste logische volume en vervolgens het bestandssysteem van de host on the fly uit te breiden. Dit betekent dat ik niet de hele harde schijf opnieuw hoefde te formatteren en het besturingssysteem opnieuw hoefde te installeren of zelfs opnieuw hoefde op te starten. Ik wees gewoon een deel van de beschikbare ruimte toe aan het juiste logische volume en paste de grootte van het bestandssysteem aan – dit alles terwijl het bestandssysteem on-line was en het draaiende programma, De virtuele machine, nog steeds het host bestandssysteem gebruikte. Na het resizen van het logische volume en het bestandssysteem hervatte ik de virtuele machine en de installatie ging verder alsof er geen problemen waren opgetreden.

Hoewel dit type probleem u misschien nog nooit is overkomen, is het opraken van schijfruimte terwijl een kritisch programma draait, veel mensen overkomen. En hoewel veel programma’s, vooral Windows programma’s, niet zo goed geschreven en veerkrachtig zijn als VirtualBox, maakte Linux Logical Volume Management het mogelijk om te herstellen zonder gegevens te verliezen en zonder de tijdrovende installatie opnieuw te hoeven starten.

LVM Structuur

De structuur van een Logical Volume Manager schijfomgeving wordt geïllustreerd door Figuur 1, hieronder. Logical Volume Management maakt het mogelijk om meerdere individuele harde schijven en/of schijfpartities te combineren tot een enkele volumegroep (VG). Die volumegroep kan vervolgens worden onderverdeeld in logische volumes (LV) of worden gebruikt als één groot volume. Op een logisch volume kunnen dan reguliere bestandssystemen worden aangemaakt, zoals EXT3 of EXT4.

In afbeelding 1 zijn twee volledige fysieke harde schijven en een partitie van een derde harde schijf gecombineerd tot een enkele volumegroep. Van de ruimte in de volumegroep zijn twee logische volumes gemaakt, en op elk van de twee logische volumes is een bestandssysteem gemaakt, zoals een EXT3- of EXT4-bestandssysteem.

lvm.png

Figuur 1: LVM maakt het mogelijk om partities en volledige harde schijven te combineren in Volume Groups.

Het toevoegen van schijfruimte aan een host is vrij eenvoudig, maar wordt, in mijn ervaring, relatief weinig gedaan. De benodigde basisstappen staan hieronder vermeld. U kunt een geheel nieuwe volumegroep maken of u kunt de nieuwe ruimte toevoegen aan een bestaande volumegroep en een bestaand logisch volume uitbreiden of een nieuw logisch volume maken.

Een nieuw logisch volume toevoegen

Er zijn momenten waarop het nodig is een nieuw logisch volume aan een host toe te voegen. Toen ik bijvoorbeeld merkte dat de directory met virtuele schijven voor mijn VirtualBox virtuele machines het /home bestandssysteem aan het opvullen was, besloot ik een nieuw logisch volume te maken waarin de gegevens van de virtuele machines, inclusief de virtuele schijven, zouden worden opgeslagen. Dit zou veel ruimte vrijmaken in mijn /home bestandssysteem en bovendien zou ik de schijfruimte voor de VM’s onafhankelijk kunnen beheren.

De basisstappen voor het toevoegen van een nieuw logisch volume zijn als volgt.

  1. Installeer indien nodig een nieuwe harde schijf.
  2. Optioneel: Maak een partitie op de harde schijf.
  3. Maak een fysiek volume (PV) van de volledige harde schijf of een partitie op de harde schijf.
  4. Benoem het nieuwe fysieke volume aan een bestaande volumegroep (VG) of maak een nieuwe volumegroep.
  5. Maak een nieuw logisch volume (LV) van de ruimte in de volumegroep.
  6. Maak een bestandssysteem op het nieuwe logische volume.
  7. Voeg de juiste regels toe aan /etc/fstab voor het mounten van het bestandssysteem.
  8. Mount het bestandssysteem.

Nu de details. De volgende volgorde komt uit een voorbeeld dat ik heb gebruikt als een lab project bij het lesgeven over Linux bestandssystemen.

Example

Dit voorbeeld laat zien hoe je de CLI gebruikt om een bestaande volume groep uit te breiden om er meer ruimte aan toe te voegen, een nieuw logisch volume in die ruimte aan te maken, en een bestandssysteem op het logische volume aan te maken. Deze procedure kan worden uitgevoerd op een lopend, aangekoppeld bestandssysteem.

WAARSCHUWING: Alleen de bestandssystemen EXT3 en EXT4 kunnen tijdens het uitvoeren van de procedure worden aangepast op een lopend, aangekoppeld bestandssysteem. Veel andere bestandssystemen, waaronder BTRFS en ZFS, kunnen niet worden aangepast.

Verschijf installeren

Als er niet genoeg ruimte is in de volumegroep op de bestaande harde schijf(ven) in het systeem om de gewenste hoeveelheid ruimte toe te voegen, kan het nodig zijn om een nieuwe harde schijf toe te voegen en de ruimte te creëren om aan het Logisch Volume toe te voegen. Installeer eerst de fysieke harde schijf, en voer dan de volgende stappen uit.

Create Physical Volume from hard drive

Het is eerst nodig om een nieuw Physical Volume (PV) aan te maken. Gebruik het onderstaande commando, dat ervan uitgaat dat de nieuwe harde schijf is toegewezen als /dev/hdd.

pvcreate /dev/hdd

Het is niet nodig om een partitie van welke aard dan ook aan te maken op de nieuwe harde schijf. Het aanmaken van het Fysieke Volume dat zal worden herkend door de Logische Volume Manager kan worden uitgevoerd op een nieuw geïnstalleerde ruwe schijf of op een Linux partitie van het type 83. Als u de gehele harde schijf gaat gebruiken, biedt het eerst aanmaken van een partitie geen bijzondere voordelen en gebruikt het schijfruimte voor metadata die anders gebruikt zou kunnen worden als onderdeel van het PV.

Extend the existing Volume Group

In dit voorbeeld zullen we een bestaande volumegroep uitbreiden in plaats van een nieuwe aan te maken; u kunt ervoor kiezen om het op beide manieren te doen. Nadat het fysieke volume is gemaakt, breidt u de bestaande volumegroep (VG) uit met de ruimte op de nieuwe PV. In dit voorbeeld heet de bestaande Volume Group MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Creëer het Logisch Volume

Maak eerst het Logisch Volume (LV) van bestaande vrije ruimte binnen de Volume Group. Het onderstaande commando maakt een LV aan met een grootte van 50GB. De naam van de Volume Group is MyVG01 en de naam van het Logisch Volume is Stuff.

lvcreate -L +50G --name Stuff MyVG01

Het bestandssysteem aanmaken

Het aanmaken van het Logisch Volume creëert niet het bestandssysteem. Die taak moet afzonderlijk worden uitgevoerd. Het onderstaande commando maakt een EXT4 bestandssysteem dat past op de zojuist aangemaakte Logische Volume.

mkfs -t ext4 /dev/MyVG01/Stuff

Een bestandssysteem label

Een bestandssysteem label toevoegen maakt het makkelijk om het bestandssysteem later te identificeren in geval van een crash of andere schijf gerelateerde problemen.

e2label /dev/MyVG01/Stuff Stuff

Mount het bestandssysteem

Op dit punt kunt u een mount punt maken, een gepaste entry toevoegen aan het /etc/fstab bestand, en het bestandssysteem mounten.

U moet ook controleren of het volume correct is aangemaakt. U kunt hiervoor de commando’s df, lvs en vgs gebruiken.

Herschalen van een logisch volume in een LVM bestandssysteem

De noodzaak om een bestandssysteem te herschalen bestaat al sinds het begin van de eerste versies van Unix en is niet verdwenen met Linux. Het is echter gemakkelijker geworden met Logical Volume Management.

  1. Installeer indien nodig een nieuwe harde schijf.
  2. Optioneel: Maak een partitie op de harde schijf.
  3. Maak een fysiek volume (PV) van de volledige harde schijf of een partitie op de harde schijf.
  4. Benoem het nieuwe fysieke volume aan een bestaande volumegroep (VG) of maak een nieuwe volumegroep.
  5. Maak een of meer logische volumes (LV) van de ruimte in de volumegroep, of breid een bestaand logisch volume uit met een deel of alle nieuwe ruimte in de volumegroep.
  6. Als u een nieuw logisch volume hebt gemaakt, maakt u er een bestandssysteem op. Als u ruimte toevoegt aan een bestaand logisch volume, gebruikt u het commando resize2fs om het bestandssysteem te vergroten om de ruimte in het logische volume op te vullen.
  7. Voeg de juiste regels toe aan /etc/fstab voor het mounten van het bestandssysteem.
  8. Mount het bestandssysteem.

Exemplaar

Dit voorbeeld beschrijft hoe u de grootte van een bestaand Logisch Volume in een LVM-omgeving wijzigt met behulp van de CLI. Het voegt ongeveer 50GB ruimte toe aan het /Stuff bestandssysteem. Deze procedure kan worden gebruikt op een gemount, live bestandssysteem alleen met de Linux 2.6 Kernel (en hoger) en EXT3 en EXT4 bestandssystemen. Ik raad niet aan om dit te doen op een kritisch systeem, maar het kan wel en ik heb het vele malen gedaan; zelfs op het root (/) bestandssysteem.

WAARSCHUWING: Alleen van de EXT3 en EXT4 bestandssystemen kan de grootte van een lopend, aangekoppeld bestandssysteem worden aangepast. Veel andere bestandssystemen, waaronder BTRFS en ZFS, kunnen niet worden aangepast.

Installeer de harde schijf

Als er niet genoeg ruimte is op de bestaande harde schijf(ven) in het systeem om de gewenste hoeveelheid ruimte toe te voegen, kan het nodig zijn om een nieuwe harde schijf toe te voegen en de ruimte te creëren om aan het Logische Volume toe te voegen. Installeer eerst de fysieke harde schijf en voer dan de volgende stappen uit.

Maak een Fysiek Volume van de harde schijf

Het is eerst nodig om een nieuw Fysiek Volume (PV) te maken. Gebruik het onderstaande commando, dat ervan uitgaat dat de nieuwe harde schijf is toegewezen als /dev/hdd.

pvcreate /dev/hdd

Het is niet nodig om een partitie van welke aard dan ook aan te maken op de nieuwe harde schijf. Het aanmaken van het Fysieke Volume dat zal worden herkend door de Logische Volume Manager kan worden uitgevoerd op een nieuw geïnstalleerde ruwe schijf of op een Linux partitie van het type 83. Als de gehele harde schijf gebruikt gaat worden, biedt het eerst aanmaken van een partitie geen bijzondere voordelen en gebruikt het schijfruimte voor metadata die anders gebruikt zou kunnen worden als onderdeel van de PV.

Voeg PV toe aan bestaande Volume Groep

In dit voorbeeld zullen we de nieuwe PV gebruiken om een bestaande Volume Groep uit te breiden. Nadat het fysieke volume is gemaakt, breidt u de bestaande Volume Group (VG) uit met de ruimte op de nieuwe PV. In dit voorbeeld heet de bestaande Volume Group MyVG01.

vgextend /dev/MyVG01 /dev/hdd

Vergroot het Logisch Volume

Vergroot het Logisch Volume (LV) met de bestaande vrije ruimte in de Volume Group. Het onderstaande commando breidt de LV uit met 50 GB. De naam van de Volume Groep is MyVG01 en de naam van het Logisch Volume is Stuff.

lvextend -L +50G /dev/MyVG01/Stuff

Breidt het bestandssysteem uit

Het uitbreiden van het Logisch Volume zal ook het bestandssysteem uitbreiden indien u de -r optie gebruikt. Als u de -r optie niet gebruikt, moet die taak afzonderlijk worden uitgevoerd. Het onderstaande commando verkleint het bestandssysteem zodat het past op de nieuwe Logical Volume.

resize2fs /dev/MyVG01/Stuff

U moet controleren of de vergroting correct is uitgevoerd. U kunt hiervoor de commando’s df, lvs en vgs gebruiken.

Tips

In de loop der jaren heb ik een paar dingen geleerd die logisch volumebeheer nog eenvoudiger kunnen maken dan het al is. Hopelijk kunnen deze tips van enige waarde voor je zijn.

  • Gebruik de Extended bestandssystemen tenzij je een duidelijke reden hebt om een ander bestandssysteem te gebruiken. Niet alle bestandssystemen ondersteunen resizing, maar EXT2, 3, en 4 wel. De EXT-bestandssystemen zijn ook zeer snel en efficiënt. In ieder geval kunnen ze door een goed geïnformeerde systeembeheerder worden afgestemd op de behoeften van de meeste omgevingen als de standaard afstemparameters dat niet doen.
  • Gebruik zinvolle volume- en volumegroepnamen.
  • Gebruik EXT bestandssysteem labels.

Ik weet dat, net als ik, veel systeembeheerders zich hebben verzet tegen de overstap naar Logical Volume Management. Ik hoop dat dit artikel je zal aanmoedigen om LVM op zijn minst te proberen. Ik ben echt blij dat ik het heb gedaan; mijn schijfbeheer taken zijn veel eenvoudiger sinds ik de overstap heb gemaakt.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *