Installatie Linux software RAID 5

  LVM / filesystemen / RAID / DISK

Inleiding

Ik ben aan het kijken voor een nieuwe server voor thuis, de huidige server barst inmiddels uit zijn voegen en de disk ruimte word ook wat krap. Op dit moment zitten er 2 disken in van 250GB in een RAID1 opstelling en heb nog 2 USB disken van 1TB aan in gebruik voor opslag, ik wil het meteen goed aan pakken en ben van plan in het nieuwe systeem in eerste instantie 4 disken van 2TB in te zetten, ik wil dit niet meer in RAID1 draaien maar op RAID5. Heb geen zin om een dure hardware raid contoler aan te schaffen software raid is voor mij voldoende. tegenwoordig zou je die ook moeten kunnen uitbreiden. Dus vooruitlopend op de nieuwe hardware eerst maar even wat testje met een RAID5 systeem.

Test Opstelling

Omdat ik de hardware nog niet heb ga ik testen op een virtual machine, Ik maak hier voor gebruik van KVM, maar je kan dit zelfde natuurlijk ook doen met andere virtualisatie software zoals (VMWARE, Virtualbox, xen ….) het OS wat ik gebruik is ubuntu 9.10 (karmic) je zou het ook met andere Linux distributie kunnen doen. de installatie schermen zien er misschien iets anders uit maar de theorie er achter blijft het zelfde.

Mijn virtual machine krijgt 1 CPU, 512Mb memory, 4 disken en netwerk aansluiting. De disken zijn 5GB groot dat is voor het test systeem ruim voldoende. met 4 disken in RAID5 krijg je dus ongeveer een 15GB installatie device. De installatie vind plaats dmv van een PXE boot, maar je kan het natuurlijk ook vanaf CD/DVD doen.

Disk Indeling

Het systeem word ingericht met LVM (Logical Volume Manager) de boot loader(grub) kan niet binnen LVM lezen daarom hebben we ook een extra filesysteem nodig wat buiten de LVM ligt (met de komst van grub2 is het wel mogenlijk om /boot binnen lvm te leggen). dat is /boot. Verder kan grub niet omgaan met /boot op RAID5 dus gebruiken we voor /boot RAID1 dat is niet zo’n probleem want /boot word alleen gebruikt tijdens het starten van het systeem, maar we verliezen wel op de overige disken ongeveer 100MB alhoewel verliezen, je kan deze ruimte uiteraard wel gebruiken in je systeem voor andere filesystemen of eventueel als 3 RAID device (RAID1). Mijn test systeem heeft 4 disken. ik maak op iedere disk 2 partities, aan het begin een kleine primaire partitie van 100MB voor /boot, zet de boot flag aan, de andere partitie is ook primair en beslaat de rest van de disk. de 2 kleine partities van de eerste 2 disken maak ik een RAID1 device van en van de 4 grote maak ik een RAID5 device. op het RAID1 device leg ik een filesysteem. Op het RAID5 Device plaats ik LVM, binnen LVM maak ik voor het test systeem 2 filesystemen / en /home, verder komt swap ook binnen LVM te liggen. De reden dat ik swap binnen lvm gebruik en niet op een aparte partitie is dat als ik de raid set in de toekomt uitbreid wil ik niet dat swap ook automatische word of dat ik daar ruimte aan verlies.

Disk-indeling.png

Hier boven een grafische voorstelling van hoe de disk ruimte is ingedeeld.

De Installatie

Hier vind je de installatie zoals ik die uitgevoerd heb via de Installer van Ubuntu. op andere distributies ziet het er mischien iets anders uit maar het idee blijft het zelfde. Ik ga er verder van uit dat als je met RAID aan de gang gaat je al vaker een installatie hebt gedaan, dus ik ga hier niet het hele installatie process beschrijven. Je kan het aanmaken van de storage eigenlijk in 4 hoofdgroepen verdelen.

  1. Aanmaken partities
  2. Aanmaken raid devices
  3. Opzetten Logical Volume Manager
  4. Creeeren van filesystemen

Partition

kies Manual

Door loop het installatie proces tot dat je bij “Partition disk” komt.

Ga op de eerste disk staan en druk enter

je ziet hier 4 disken omdat ik gebruik maak van KVM (virtio block devices) heten de disken bij mij vda, vdb enz. deze namen kunnen afwijken, de namen zijn afhankelijk van de interface van de disk. Op deze disken maken we dus partities aan. ik maar gebruik van LVM op RAID5 voor alle filesystemen en het swap device. en omdat de bootloader grub niet kan omgaan met booten van RAID5 en lvm maak ik een extra /boot partitie aan op RAID1 en houdt deze ook buiten LVM. Ik maak dus 2 partities aan op ierdere disk.

Partition3.png

Bij de eerste disk staat nu de vrije ruimte. als je al partities hebt verwijder deze dan eerst. Ga op de vrije ruimte staan en druk enter.

Create new partition

Maak een nieuwe partitie aan.

Enter Size

Vul de size in voor de eerste partitie, deze hoeft niet groot te zijn omdat hij voor /boot word gebuikt. ik maak mijn /boot meestal zo’n 100MB, dat is ruim voldoende om een aantal kernels in plaatsen.

Primary partition

het volgende scherm kiezen we voor primary partition.

begining

Vevolgens word gevraagd waar de partitie moet beginnen. kies voor aan het begin van de disk.

Physical volume for RAID

Dan krijgen we de keus om op te geven van welk type de partitie moet zijn. omdat het /boot moet worden en die willen we op een RAID1 device plaatsen kiezen we voor “Physical volume for RAID”

Boot flag: on

Bootable flag: on. De eerste paritie kan aangemaakt worden, kies “Done setting up the partition”

Partition10.png

Je komt nu weer op het scherm met de disken en zult daar zien dat er een partitie is en vrije ruimte belangrijk is dat het type op RAID staat. Ga nu op de vrije ruimte staan en we herhalen bovenstaande stappen voor de 2de partitie.

Boot flag: off

Voor de 2de partitie alloceren we alle overgebleven ruimte. ook hier maken we een primaire partitie van en we hoeven niet te booten van deze partitie dus “Bootable flag: 0ff”. Ook deze partitie is weer van het type RAID.Alle bovenstaan de stappen herhalen we voor alle 4 de disken. je krijgt dus op alle 4 de disken de zelfde partitie layout.

Configure Software RAID

Configure Software RAID

We hebben nu alle partities aangemaakt en gaan nu de RAID sets (2 stuks) maken. Kies de optie “Configure software RAID”

Schrijf partitie informatie naar disk

Je hebt wel partities aangemaakt maar deze staan nog niet op de disk. Je moet dus eerst alle wijzigingen naar de disken weg schrijven. Zoals het scherm ook aangeeft mag je als je de RAID sets heb geconfigureerd geen wijzigingen meer aanbrengen aan de onderliggende partities. Kies in dit scherm voor “YES”

Create MD device

In het volgende scherm gaan we een RAID (md device maken) kies “Create MD device”

Configsoftraid17.png

In het volgende scherm kan je kiezen wat voor een RAID device het moet worden. Het eerste RAID device is md0 deze word voor /boot en we kiezen hier dus RAID1 (plaatje geeft andes aan ben vergeten een screenschot te maken)Het volgende scherm (ook geen screenshot) word er gevraagd uit hoeveel partities de raid set bestaat. dit nummer is de som van zowel de active partities als de spare partities. voor RAID1 is het dus minimaal 2 active. kies hier voor 2 als je nog spare wilt hebben kan je 3 invullen (partities hebben we toch over). ik heb niet voor spare gekozen. omdat ik als het systeem actief is nog wat wil testen met RAID binnen een actief OS.

Het volgende scherm (ook geen screenshot) geef je het aantal spare disken op, in mijn geval dus 0.

Configsoftraid15.png

In dit scherm geef je alleen de active partities op die je wilt gebruiken. We zijn met /boot bezig en kiezen voor de eerste partitie op disk 1 en op disk 2. Als je ook voor spare’s disken hebt gekozen dan moet je in het volgende scherm de andere, 1 of 2 aangeven. De RAID set word nu aangemaakt.

Configsoftraid17.png

We maken nog een extra RAID set aan dus hebben weer voor “Create MD device” gekozen. Vervolgens kiezen we voor RAID5.

Configsoftraid18.png

Ook hier moeten we opgeven uit hoeveel devices de RAID set bestaat, voor RAID 5 heb je minimaal 3 devices nodig. Je kan ook 1 spare device opgeven. Mijn RAID 5 set bestaat uit 4 active devices ik gebruik geen spare device. Ik vul hier dus 4 in.Ik gebruik devices van ongeveer 5G voor mijn RAID5 set je verliest altijd 1 device aan parity je hebt dus N-1 aan vrij ruimte, Waar N het totaal aantal beschikbare devices is. In mijn geval is N dus 4 en de effectieve beschikbare ruimte is dus 3 * 5GB = 15GB

Configsoftraid19.png

In dit scherm geef je het aantal spare devices op in mijn geval 0.

Configsoftraid20.png

Nu moeten we alleen nog opgeven welke devices we willen gebruiken voor de RAID5 set. we kiezen hier de 4 overgebleven devices. Omdat we op hebben gegeven dat we geen spare device gebruiken word deze vraag ook niet gesteld.

Configsoftraid21.png

We hebben nu alle RAID sets aangemaakt dus kunnen dit stuk ook afsluiten.

Create Filesystem /boot

Createfilesystem22.png

De volgende stap is het aanmaken van het /boot filesysteem, deze komt rechtstreeks op het RAID device (md0) liggen.Ga onder de regel “RAID1 device #0 – 98.6 MB Software RAID device” staan en druk op enter.

Createfilesystem23.png

Je krijgt nu de keus om een filesysteem te maken. We kiezen voor een Ext4 filesystem, mount point is /boot. Ik zet er ook meestal een label op BOOT, dit is optioneel. de rest laat ik standaard.Als je alles hebt ingesteld ziet het scherm er uit zoals hier naast.

Logical Volume Manager Instellen

Createlvm24.png

Het eerste filesysteem is aangemaakt (/boot) de overige filesystemen worden binnen LVM geregeld, inclusief swap. Ik vind het zo ie zo prettig om met LVM te werken maar het heeft ook als voordeel dat als we de raid set uitbreiden het allemaal wat eenvoudiger gaat. Kies dus voor de optie “Configure the logical Volume Manager”

Createlvm25.png

Voor dat we verder kunnen moeten we eerst de hier voor gemaakt raid device en filesysteem weg schrijven naar disk. kies “YES”

Createlvm26.png

Voordat we LV’s (Logical Volumes) kunnen aanmaken zullen we eerst een VG (Volume Group) moeten aanmaken. Kies “Create Volume Group”

Createlvm27.png

Kies een naam voor de VG, Je mag zelf een naam verzinnen ik houd het voor nu standaard en gebruik VG00

Createlvm28.png

In het volgende scherm geef je aan welke fysieke device er moet worden toegekend aan de VG. We kiezen hier voor “/dev/md1”

Createlvm29.png

De VG is nu aangemaakt nu kunnen we LV’s gaan aanmaken.

Createlvm30.png

In welke VG willen we de LV’s aanmaken? we hebben nog maar 1 VG dus kiezen we VG00.

Createlvm31.png

Hoe gaan we de LV noemen? Normaal gesproken maak ik voor een server een aantal verschillende LV/filesystemen aan, afhankelijk van de taken. Maar in deze test gebruik ik er maar 3 de eerste is voor het root filesysteem. de 2de is voor de swap space en de 3de zou niet nodig zijn maar om toch een extra LV/filesysteem te hebben /home ook maar apart.De eerste LV noemen we root, 2de LV is voor swap, die noemen we swap en de 3de word home

Createlvm32.png

In het Volgende scherm geef je op hoe groot de LV gaat worden. omdat alles in / word geïnstalleerd maak ik die 10G groot. swap maken we 1G en de rest voor /home.

Createlvm33.png

Als we dus 3 LV hebben aangemaakt zal het laatste scherm er dus zoals dit scherm uit zien.

Create Filesystemen binnen LVM

Createfilesystem34.png

We gaan nu filesystemen (/ en /home) aan maken op de zojuist gecreëerde LV’s ga iederkeer op de regel met de size staan. en druk enter. deze stappen doen we dus 1 keer voor / en een keer voor /home

Createfilesystem35.png

We vullen alles weer in zoals we dat eerder gedaan hebben, we kiezen weer voor ext4, geven het mount punt op (/ en /home) eventueel weer een LABEL opgeven.

Createfilesystem36.png

Voor het swap device doen we eigenlijk het zelfde maar hier kiezen we niet voor ext4 maar voor het type “swap area”

Createfilesystem37.png

Het is een hele lijst inmiddels maar het overzicht moet er ongeveer zo uit zien.

Createfilesystem38.png

Als alles klaar is krijg je nog de mogelijkheid om aan te geven wat er moet gebeuren mocht er een disk faillure zijn. je kan het zo instellen dat het systeem niet meer opstart op het moment dat er een disk stuk is. ik wil dit niet dus kies voor “YES” gewoon opstarten.

Createfilesystem39.png

Hier word gevraagd of je de laatst wijzigingen wil wegschrijven naar disk, “Yes” dus.

Het hele disk gebeuren is nu klaar doorloop de rest van de installatie en je hebt als alles goed gaat een werkend linux systeem met een software RAID 5. in een andere document zal ik beschrijven hoe je het 1 en andere kan controleren, en eventuele problemen kunt oplossen.