--- Az elso diszk es az LVM mirrorlog device eltavolitasa:
# vgreduce /dev/vg00 /dev/sdb
# vgreduce /dev/vg00 /dev/sdd
--- RAID1 array letrehozasa egyelore 1 diszken
# mdadm -C -l 1 -n 2 /dev/sdb missing
mdadm: device /dev/sdb exists but is not an md array.
szoval ize...
# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb missing
mdadm: array /dev/md0 started.
szerk. A fenti a hosszu kapcsolokkal:
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb missing
Igy nez ki eddig a RAID:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid1 sdb[0]
488386496 blocks [2/1] [U_]
unused devices:
--- RAID1 array LVM PV-kent valo definialasa (ne kerdezzetek, miert jo a --metadatacopies 2 opcio...)
# pvcreate --metadatacopies 2 /dev/md0
Physical volume "/dev/md0" successfully created
--- Uj VG letrehozasa
# vgcreate vgraid1 /dev/md0
Volume group "vgraid1" successfully created
--- Uj LV-k letrehozasa
# lvcreate -L 100G /dev/vgraid1/lv_00
...aztan miutan rajottem, hogy erre folosleges 100GB, egy kis atmeretezes (ha filerendszer is van rajta, akkor umount es fsadm):
# lvresize -L 50G /dev/vgraid1/lv_00
WARNING: Reducing active logical volume to 50.00 GB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv_00? [y/n]: y
Reducing logical volume lv_00 to 50.00 GB
Logical volume lv_00 successfully resized
Ez lett belole (a valos devicenevek kisse hetkoznapibbak):
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv00 vg00 -wi-ao 100.00G
lv01 vg00 -wi-ao 100.00G
lv02 vg00 -wi-ao 30.00G
lv_00 vgraid1 -wi-a- 50.00G
lv_01 vgraid1 -wi-a- 100.00G
lv_02 vgraid1 -wi-a- 100.00G
A regi LV-k /dev/sdc -n, a pillanat, amikor az adatbol 1 peldany van:
# lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices
lv00 vg00 -wi-ao 100.00G /dev/sdc(7680)
lv01 vg00 -wi-ao 100.00G /dev/sdc(33280)
lv02 vg00 -wi-ao 30.00G /dev/sdc(0)
...
--- Filerendszer letrehozasa az uj LV-ken:
# mkfs.ext3 -m 1 -L WTF /dev/vgraid1/lv_00
mke2fs 1.41.8 (11-July-2009)
...
--- Adatok atkuldese rsync-kel
# time rsync -a /honnan /hova
--- Regi LV-k torlese
# umount /dev/mapper/vg00-lv02
# lvremove /dev/mapper/vg00-lv02
Do you really want to remove active logical volume lv02? [y/n]: y
Logical volume "lv02" successfully removed
--- A regi VG torlese
# vgremove vg00
Volume group "vg00" successfully removed
--- Az fstab szerkesztese
--- Vegul a felszabaditott 2. diszk hozzacsapasa a RAID1 array-hez:
# mdadm /dev/md0 --add /dev/sdc
mdadm: added /dev/sdc
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md0 : active raid1 sdc[2] sdb[0]
488386496 blocks [2/1] [U_]
[>....................] recovery = 0.0% (185600/488386496) finish=87.6min speed=92800K/sec
unused devices:
Ennek figyelesere lehet dmesg-t is hasznalni, en ezt a sort irtam (az echo helyett lehet barmi, egy 'eject' vagy 'aplay fart.wav' is):
# while [[ $(cat /sys/class/block/md0/md/sync_action) != idle ]];
do sleep 1; done; echo "Resync complete at $(date)"
--- Init scriptek, reboot
Mivel nalam nem particiokra kerultek a RAID tagjai, a kernel autodetect nem fogja megtalalni az arrayt:
md: Autodetecting RAID arrays.
md: Scanned 0 and added 0 devices.
md: autorun ...
md: ... autorun DONE.
Igy valahova az init scriptekbe kell beletenni a kovetkezot, en ertelemszeruen az LVM ele tettem:
mdadm --assemble --scan
amihez kell egy mdadm.conf is. Az elso sor nalam a konkret devicenevekkel van kitoltve, a masodik pedig a 'mdadm --examine --scan' kimenete.
DEVICE /dev/sdb /dev/sdc
ARRAY /dev/md0 UUID=....
Vegul nem art egy reboot sem, hogy az egesz mukodokepesseget leteszteljuk...
---
Ami elegge nyilvanvalo, hogy az mdadm-nel ugyanezt a rovid kapcsolokkal (-As, -C...) is le lehet irni, de itt valahogy szemleletesebbnek tuntek a hosszu valtozatok.
A devicenevekre lehet kozvetlenul a device-mapper node-ok, de szimbolikus nevek alapjan is hivatkozni, viszont szinte mindenhol full path kell, amit a '*display -c' -vel lehet a leggyorsabban kideriteni.
Tobbek kozott azt sem ertem en, hogy a tisztan csak 'view' funkciokat ellato vgs, lvs es pvs parancsok miert nem mennek id -u != 0 userrel... Pedig a /sys/class/block/dm-* alatt lenyegeben minden LV informacio elerheto a usereknek.
- LGee blogja
- A hozzászóláshoz be kell jelentkezni
- 1285 megtekintés
Hozzászólások
jó az ilyen, thx
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Szia!
Miért jobb a DM RAID1 mint az LVM mirror?
- A hozzászóláshoz be kell jelentkezni
Ennyit biztosan tudok:
- LVM mirror minden reboot utan ujraepul (tehat ujra le kell syncelnie a VG-t) - ez eleg felelmetes szerintem
- LVM mirrort szinte a kutya se hasznal, md-t annal tobben (ergo howto meg debug info is joval kevesebb van hozza)
- a legujabb LVM release-ekben is felelmetes bugokat javitottak (jo, ez mashol is elofordul), eleg csak az LV-k kezeleset jol ellatnia
- A hozzászóláshoz be kell jelentkezni
"- LVM mirror minden reboot utan ujraepul (tehat ujra le kell syncelnie a VG-t)"
Ez már szerencsére nem így van, a manpage szerint a default az,hogy van neki egy külön kis adatterülete, és nem syncel minden boot (lv aktiválás) során.
Viszont a kérdés felmerült bennem, hogy az lvm alapú mirrorozás jóval rugalmasabb, hisz egy vg-n belül csinálhatok mirroros és nem mirroros lv-ket is, attól függően, hogy mire van szükségem. Plusz igény szerint bővíthető a vg. Az alternatívák mind kevésbé rugalmasak, ám (lehet hogy) jóval gyorsabbak (raid10) vagy már milliószor ki lettek tesztelve (raid1+0).
Épp az előtt állok, hogy választani kéne a lehetőségek között, ám tény, hogy félek a tisztán lvm-es megoldástól (nem mellesleg a raid10-től is, ehe). Valakinek van tapasztalata a fentiekkel?
- A hozzászóláshoz be kell jelentkezni
A fenti RAID tomb 'importalasa' kulso USB hazban:
$ sudo mdadm --examine --scan # mdadm -Es
ARRAY /dev/md0 UUID=0afefc32:92a550f9:9eb53816:96edd572
$ sudo mdadm --assemble --scan # mdadm -As
mdadm: /dev/md/0_0 has been started with 2 drives.
$ cat /proc/mdstat
Personalities : [linear] [raid1]
md127 : active raid1 sdb[0] sdc[1]
488386496 blocks [2/2] [UU]
unused devices: <none>
dmesg:
[ 917.465380] md: md127 stopped.
[ 917.470261] md: bind<sdc>
[ 917.470768] md: bind<sdb>
[ 917.489644] md: raid1 personality registered for level 1
[ 917.489956] bio: create slab <bio-1> at 1
[ 917.490106] md/raid1:md127: active with 2 out of 2 mirrors
[ 917.490153] md127: detected capacity change from 0 to 500107771904
[ 917.502804] md127: unknown partition table
Volume group:
A rootvg a rendszer, a vgraid1 az adatokat tartalmazo, RAID feletti VG.
$ sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "vgraid1" using metadata type lvm2
Found volume group "rootvg" using metadata type lvm2
$ sudo vgchange -ay vgraid1
5 logical volume(s) in volume group "vgraid1" now active
$ sudo lvs vgraid1
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv_films vgraid1 -wi-a- 50.00g
lv_gabor vgraid1 -wi-a- 50.00g
lv_install vgraid1 -wi-a- 50.00g
lv_music vgraid1 -wi-a- 100.00g
lv_photo vgraid1 -wi-a- 100.00g
Hat ennyi. Innen csak a mount van hatra...
---
Leallitas:
$ sudo vgchange -an vgraid1
$ sudo mdadm -S /dev/md127
dmesg:
[ 2035.045805] md127: detected capacity change from 500107771904 to 0
[ 2035.045811] md: md127 stopped.
[ 2035.045817] md: unbind<sdb>
[ 2035.048087] md: export_rdev(sdb)
[ 2035.048140] md: unbind<sdc>
[ 2035.052057] md: export_rdev(sdc)
- A hozzászóláshoz be kell jelentkezni