KB
Linux - LVM peste array-uri RAID
Linux - LVM peste array-uri RAID |
|---|
Aceasta pagina descrie modalitatea in care se pot crea in Linux, din command line partitii LVM peste array-uri RAID.
Acest setup este folosit des in situatiile serverelor pentru firme mici facute sub linux pe masini modeste care nu au controllere RAID dedicate. Necesitatea de a partitiona manual discurile este intalnita cand datorita unui eveniment sau unui upgrade de hardware dorim sa migram datele si aplicatiile de pe o masina fara a fi nevoiti sa reinstalam sistemul de operare si aplicatiile aferente.
Scenariul nostru include doua discuri pe care vom genera doua partitii swap, cate una pe fiecare dintre discuri, o partitie RAID care o vom folosi pentru a retine continutul directorului /boot, si o partitie RAID in care vom construi volume logice sub LVM.
O prima etapa este cea in care refacem partitiile discurilor. Ne vom folosi de un livecd de Centos 5.3 in cazul in care upgrade-ul nu se rezuma doar la discuri ci la tot sistemul.
Presupunand ca cele doua discuri sunt /dev/sda si /dev/sdb, vom furniza in cele ce urmeaza doar comenzile pe care le vom da pentru a partitiona primul disc, pentru al doilea urmand sa folosim aceleasi comenzi:
# fdisk /dev/sda
Scriem o noua tabela de partitii pentru acest disc:
Command (m for help): o
Generam, pe rand partitiile necesare:
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-14593, default 1): 1
Last cylinder, +cylinders or +size{K,M,G} (1-14593, default 14593): +1G
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (133-14593, default 133):
Using default value 133
Last cylinder, +cylinders or +size{K,M,G} (133-14593, default 14593): +512M
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (199-14593, default 199):
Using default value 199
Last cylinder, +cylinders or +size{K,M,G} (199-14593, default 14593):
Using default value 14593
Command (m for help): p
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0f73dbf4
Device Boot Start End Blocks Id System
/dev/sda1 1 132 1060258+ 83 Linux
/dev/sda2 133 198 530145 83 Linux
/dev/sda3 199 14593 115627837+ 83 Linux
Remarcam ca in acest moment partitiile sunt create dar nu sunt de tipul care ne dorim. Le vom modifica folosind comanda 't' si asignand tipul 82 pentru partitia swap si fd pentru partitiile RAID:
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): fd
Changed system type of partition 2 to fd (Linux raid autodetect)
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0f73dbf4
Device Boot Start End Blocks Id System
/dev/sda1 1 132 1060258+ 82 Linux swap / Solaris
/dev/sda2 133 198 530145 fd Linux raid autodetect
/dev/sda3 199 14593 115627837+ fd Linux raid autodetect
Folositi comanda 'w' pentru a scrie toate modificarile pe disc:
Command (m for help): w,
si partitionati identic si al doilea disc folosind comanda fdisk /dev/sdb.
Urmatorul pas este sa creati array-urile RAID. Acest lucru se realizeaza folosind utilitarul mdadm:
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
# mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
Folositi comanda urmatoare pentru a verifica stadiul sincronizarii array-urilor:
watch -n.5 cat /proc/mdstat. Iata ouputul generat de aceasta comanda in cazul sincronizarii a 4 array-uri RAID:
# cat /proc/mdstat
Personalities : [raid1]
md3 : active raid1 sdb7[1] sda7[0]
783618432 blocks [2/2] [UU]
resync=DELAYED
md2 : active raid1 sdb6[1] sda6[0]
579432320 blocks [2/2] [UU]
[===>.................] resync = 19.0% (110286656/579432320) finish=278.6min speed=28053K/sec
md1 : active raid1 sdb5[1] sda5[0]
97667072 blocks [2/2] [UU]
md0 : active raid1 sdb2[1] sda2[0]
505920 blocks [2/2] [UU]
unused devices: <none>
In functie de dimensiunea partitiilor veti avea de asteptat mai mult sau mai putin pana cand acestea se vor sincroniza. Puteti verifica daca device-urile s-au creat folosind comanda:
[root@localhost ~]# ls -l /dev/md*
brw-r----- 1 root disk 9, 0 Aug 28 17:15 /dev/md0
brw-r----- 1 root disk 9, 1 Aug 28 17:33 /dev/md1
Formatati primul array pentru a stoca partitia /boot :
# mkfs.ext3 /dev/md0
Urmeaza sa generam configuratia LVM pe al doilea array:
# pvcreate /dev/md1
Physical volume "/dev/md1" successfully created
# vgcreate mainvg /dev/md1
Volume group "mainvg" successfully created
# lvcreate /dev/mainvg -n rootlv -L 4G
# lvcreate /dev/mainvg -n usrlv -L 4G
# lvcreate /dev/mainvg -n optlv -L 1G
# lvcreate /dev/mainvg -n homelv -L 1G
# lvcreate /dev/mainvg -n tmplv -L 1G
# lvcreate /dev/mainvg -n varlv -L 4G
Logical volume "xxxlv" created
Aceste volume logice le puteti formata folosind de exemplu comanda:
# mkfs.ext3 /dev/mainvg/rootlv




