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 bytes214 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: