pingvin3.jpg

Raid építése utólag

Írta: Torig on . Beküldve: Linuxos dolgok

Bemutatom, hogy hogyan lehet Ubuntu 12.04 LTS szerveren kicserélni egy merevlemezt és az új lemezekre hogyan lehet utólag létrehozni RAID 1 tömböt, ha a szerver már rendelkezik LVM kötetekkel.

Feladat a következő:

A szerverben egy darab lemez van amit le szeretnénk cserélni. A lemezen lévő rendszert adatokkal együtt át kell rakni egy másik lemezre. Két új lemezt kell beszerelni, amiket RAID 1 tömbbe (tükörbe) szeretnénk szervezni. A rendszert és az adatokat az új RAID 1 tömbre kell áthelyezni. A RAID 1 tömb tulajdonsága, hogy az adatok egyszerre mindkét lemezen megtalálhatóak. Ha az egyik elromlik, nem vesznek el az adatok. Ki kell cserélni a meghibásodott lemezt és az adatok arra is át fognak szinkronizálódni.

Szerencsére a szerver telepítésekor korábban LVM kötetek lettek kialakítva, és arra telepítettük a rendszert, így a partíciók mozgatása adatostól nem okoz különösebb nehézséget. Ezért is érdemes LVM-et használni.

És most lássuk magát a folyamatot.


Előkészület

A művelet megkezdése előtt célszerű biztonsági másolatot készíteni az eredeti lemezről, hogy probléma esetén vissza lehessen állítani. A mentéshez a Clonezilla programot ajánlom. Ennek segítségével viszonylag egyszerűen lehet visszaállítható rendszermentést készíteni. A Clonezilla kezeléséről a honlapjukon találhatsz információkat.

Lemez beszerelése

Állítsuk le a szervert, majd szereljük be az új lemezek egyikét. Miért csak egyet? Mert csak egy IDE kábel áll rendelkezésre amire egyszerre csak két eszközt lehet csatlakoztatni. Így egy kicsit bonyolultabb lesz, de nem okoz problémát.

Az egyszerűség kedvéért belépés után nyissunk egy rendszergazdai terminált. A továbbiakban minden újraindítás után rendszergazdai módban futtassuk a parancsokat!

sudo su

Majd adjuk meg a rendszergazdai jelszót.

Partícionálás

Az fdisk -l parancs segítségével listázzuk ki a lemezek és a partíciók adatait. Valami ilyesmit eredményt láthatunk

fdisk -l
Disk /dev/sdb: 160.0 GB, 160041885696 bytes

214 fej, 27 szektor, 54098 cilinder, összesen 312581808 szektor
Egység: szektorok 1 * 512 = 512 bájt
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Lemezazonosító: 0x0005c4b4

Keressük meg a lemez helyét, /dev/sdb majd az fdisk programmal particionáljuk meg.

fdisk /dev/sdb

n új partíció létrehozása
p primary
1 partíciószám
Enter

Méretnek adjunk meg kisebb értéket mint a lemez teljes kapacitása. Pl +149G majd enter. Azért, mert RAID kötetet csak azonos méretű partíciókon lehet létrehozni. Ha a lemezt teljes méretre particionáljuk, és meghibásodik a lemez, előfordulhat, hogy az újonnan vásárolt lemez gyárilag pár bájttal kisebb és emiatt nem tudjuk majd a meglévő RAID kötetbe belerakni. Magyarán kell hagyni valamennyi tartalékot.

+149G Enter

Módosítom a partíció típusát.

t

Az l lenyomásával el lehet érni a választható partíció típusokat.

l

A partíciók típusának "fd" (Linux RAID autodetect) típust kell megadni.

fd

Aktívvá kell tenni a partíciót, hogy indítható legyen. Tulajdonképpen a Linux nem igényli, hogy aktív legyen a partíció. Viszont előfordul, hogy bizonyos fejlettebb alaplapok megkövetelik. Az esetek többségében a partíciók aktívvá tétele kihagyható.

a

Meg kell adni a partíció számát

1

A w billentyűvel kiírhatjuk a változásokat, és ezzel kilépünk a az fdisk programból.

w

Ezzel létrehoztuk az új partíciót. /dev/sdb1

 

Particionálás után mindig indítsuk újra a gépet!

 

MDADM telepítése

A gép indulása után jelentkezzünk be ismét. Mivel eddig nem volt RAID a szerveren, ezért telepíteni kell a RAID kezeléshez szükséges mdadm programot.

apt-get update
apt-get install mdadm

 

RAID tömb létrehozása 

Most már elkészíthetjük a féllábú RAID tömböt amibe besorolhatjuk a /dev/sdb1 RAID partíciót.

mdadm --create /dev/md0 --auto=yes --metadata=1.2 -l 1 -n 2 /dev/sdb1 missing

Ezzel létrehoztuk az md0 RAID 1 tömböt. Azért féllábú, mert egyenlőre még csak egy tagja van a tömbnek kettő helyett.

 

LVM beállítások és az adatok átmásolása

Csináljuk meg az LVM beállításokat.

El kell készíteni a Pscihical Volume-ot (PV) az LVM-hez a létrehozott md0 RAID tömbön.

pvcreate /dev/md0

Meg kell tudnunk, hogy mi a jelenlegi Volume Group neve.

vgdisplay

Ilyesmi az eredmény:

--- Volume group ---
  VG Name               system_vg
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  23
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                8
  Open LV               8
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               148,87 GiB
  PE Size               4,00 MiB
  Total PE              38111
  Alloc PE / Size       17284 / 67,52 GiB
  Free  PE / Size       20827 / 81,36 GiB
  VG UUID               UXBkg4-f3rO-rfPS-dM0b-KvYu-r82M-Vk4log

Mint látható, a VG neve system_vg. Ki kell terjeszteni az új RAID 1 tömbre az LVM kötetünk Volume Group-ját (VG). 

vgextend systemvg /dev/md0

Át kell másolni az adatokat a RAID tömbre. Az adatok átmásolására a legegyszerűbb módszer, ha a pvmove paranccsal áthelyezzük az összes Logical Volume-ot (LV). A pvmove parancs áthelyezi a PV-t a másik lemez PV-jére adatostól együtt. A folyamat sebessége függ a másolandó adatok mennyiségétől. Legyünk türelmesek, mert nagy lemezek esetén sokáig tarthat a művelet.

pvmove /dev/sda1

 

Kivesszük a VG-ből a régi lemez területét.

vgreduce system_vg /dev/sda1

Kivesszük az LVM-ből a lemezt.

pvremove /dev/sda

Ezzel az LVM konfigurálást befejeztük. Az adatok már az új lemez RAID tömbjén vannak.

 

GRUB telepítése

Telepíteni kell a Grubbot az új lemezre. Ha ezt nem tesszük meg, akkor nem fog elindulni a gépen az új lemezre átrakott rendszer..

grub-install /dev/sdb
update-grub2

Gép indítása helyreállító üzemmódban 

Leállítjuk a gépet és kiszereljük a régi lemezt és beszereljük a másik új lemezt. Az újraindítás a féllábú RAID miatt nem biztos, hogy sikeres. Ilyenkor helyreállító üzemmódban kell elindítani az Ubuntut Szervert. Az indítás során meg fogja kérdezni, hogy a degradált RAID tömböt (persze, hogy az, hiszen hiányzik egy tagja) el akarom-e indítani. Yes-el át kel ugrani ezt a beállítást, hiszen pont ezt akarjuk.

A másik lemez beszerelése és partícionálása

A rendszer indulása után az új lemezt is meg kell particionálni. Ugyanúgy kell eljárni, mint fentebb. Meg kell keresni a lemezt az fdisk -l segítségével, majd az fdisk paranccsal ugyanúgy kell eljárni, mint fentebb írtam. Figyeljünk, hogy melyik lemezt particionáljuk! Ugyanis változni fog a lemezek neve. Az újonnan berakott lemez lesz az sdb és a már RAID tömb tag lemez ami korábban sdb volt, most sda. Legjobb, ha azonosítjuk a lemezt az fdisk -l parancs segítségével, nehogy mellélőjünk és búcsút intsünk az adatainknak. Majd csak aztán kezdjünk a particionáláshoz. Létre kell hozni egy ugyanakkora méretű Linux Raid Autodetect partíciót mint amit a másik lemeznél is megadunk.  A boot flag-et is be kell állítani a fentebb leírt módon. Azért kell ezt a lemezt is indíthatóvá tenni, mert erre a lemezre is kell telepíteni a Grubbot. Ha elromlik valamelyik lemez, akkor csak úgy tud elindulni a rendszer erről a lemezről is, ha képes róla bootolni és Grub is van rá telepítve.

A második lemez beállításánál nincs szükség LVM konfigurációra, mert amikor be fogjuk sorolni a RAID tömbbe, akkor a LVM konfiguráció is át fog szinkronizálódni az új lemezre.

A particionálás végeztével újra kell indítani a gépet. Újra el kell indítani helyreállító módban, mert még mindig leromlott állapotban van a RAID tömbünk.

 

Lemez hozzáadása a RAID tömbhöz

Ha elindult a gép, akkor az új lemezt adjuk hozzá az md0 RAID tömbhöz:

mdadm --add /dev/md0 --add /dev/sdb1

Ellenőrizzük, megvárjuk amíg szinkronizál:

cat /proc/mdstat

A watch paranccsal kombinálva a terminálban követhetjük a szinkronizálás folyamatát.

watch cat /proc/mdstat

 

GRUB telepítése a másik lemezre

A szinkronizálás végén telepítsük a Grubbot az új lemezre is.

grub-install /dev/sdb
update-grub2

 

RAID tömb ellenőrzése

Ellenőrizzük a RAID tömb állapotát.

mdadm -D /dev/md0

Valami ilyesmit láthatunk: 

/dev/md0:
        Version : 1.2
  Creation Time : Fri Aug 30 21:54:41 2013
     Raid Level : raid1
     Array Size : 156106624 (148.87 GiB 159.85 GB)
  Used Dev Size : 156106624 (148.87 GiB 159.85 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
 
    Update Time : Wed Oct  2 22:03:41 2013
          State : active 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
 
           Name : torig.hu:0  (local to host torig.hu)
           UUID : 066d268f:10fcf43e:0374482b:bcaa61e6
         Events : 19253
 
    Number   Major   Minor   RaidDevice State
       0       8        1        0      active sync   /dev/sda1
       2       8       17        1      active sync   /dev/sdb1

 

MDADM konfigurálása

Utolsó műveletnek az MDADM konfigurálása van hátra.

Meg kell adni, hogy a RAID tömb leromlása esetén is el tudjon indulni a rendszerünk.

dpkg-reconfigure mdadm

Meg kell adni, hogy a BOOT_DEGRADED=true érték legyen beállítva, hogy szétesett tömb esetén is képes legyen újraindulni a rendszer. Továbbá meg kell adni az admin email címét, akit a rendszer értesít a szétcsúszott tömbökről. Feltéve, ha van valamilyen levéltovábbító telepítve a szerveren.

A beállítás a /etc/initramfs-tools/conf.d/mdadm fájlban tárolódik.

Beállítások érvényesítéséhez adjuk ki az alábbi parancsot.

update-initramfs -u

 

Hivatkozások:

Ubuntu Speciális telepítés

Logikai kötetkezelés