RAID5 tömbben lévő lemezek számának csökkentése
A feladat egy 11+1 lemezből álló RAID5 tömb átalakítása 9+1 lemezes állapotra, mivel egy 3 portos RAID vezérlő megbízhatatlanul működik. Van még egy szabad port, oda helyezem át az egyik lemez kábelét. Ez nem igényel semmilyen módosítást, a gépet le kell állítani és egyszerűen át kell dugni a kábelt.
A másik két lemez eltávolítása sokkal összetettebb, mert a használatban lévő, a RAID5 tömb elemét képező lemezekről van szó.
A következő leírás is ebben a témában íródott, ez alapján oldottam meg a problémát: http://blog.stalkr.net/2009/10/reducing-number-of-devices-in-raid-5.html
A RAID tömbre LVM került és ezen foglal helyet a rendszer:
#ls -1 /dev/filesystem
backup
iscsi
root
swap
A legnagyobb mérete a Backup nevű Logical Volume-nak van, így ennek a méretét csökkentem.
Előkészületek:
Le kell csatolni azt a LV-ot, amelyiken dolgozunk
sync; umount /backup #- ide volt felcsatolva
Ellenőrizzük a fájlrendszert:
#e2fsck -fyv -C 0 /dev/filesystem/backup
Csökkentjük a fájlrendszer méretét a végleges értékre (esetleg egy kicsit kisebbre):
#resize2fs -f /dev/filesystem/backup 500G
Jöhet az első lemez RAID-ből való kiszabadításának folyamata
Csökkentjük az LVM méretét:
#lvreduce -L501G /dev/filesystem/backup
Beállítjuk a RAID tömb méretét egy lemezzel kisebbre. Ezt úgy számoljuk ki, hogy RAID5-nél a rendelkezésre álló terület az összes lemez területe - egy lemez területe.
# mdadm -Q -D /dev/md1 | grep size
Array Size : 4882867200 (4656.67 GiB 5000.06 GB)
Used Dev Size : 488286720 (465.67 GiB 500.01 GB)
Chunk Size : 512K
Tehát a Array Size- ból ki kell vonni a Used Dev Size méretet, így megkapjuk az egyel kisebb lemezből álló tömb felhasználható méretét.
4882867200 - 488286720 = 4394580480
Ezt az értéket adjuk meg mint array-size
#mdadm /dev/md1 --grow --array-size=4394580480
A RAID tömbből kiveszünk egy lemezt (a --raid-devices-be nem kell beleszámolni a spare diskeket):
mdadm /dev/md1 --grow --raid-devices=10 --backup-file=/root/backup
Ennek hatására az mdadm elkezdi újraszinkronizálni a tömböt, majd ha végez akkor a kivett lemez átkerül spare állapotba
Erről a szinkronizálás alatt és utána a következő parancs ad információt:
#mdadm --detail /dev/md1
/dev/md1:
Version : 1.2
Creation Time : Thu Jun 23 10:01:02 2011
Raid Level : raid5
Array Size : 4394580480 (4191.00 GiB 4500.05 GB)
Used Dev Size : 488286720 (465.67 GiB 500.01 GB)
Raid Devices : 10
Total Devices : 12
Persistence : Superblock is persistent
Update Time : Mon Jul 25 18:11:00 2011
State : clean, recovering
Active Devices : 11
Working Devices : 12
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 512K
Reshape Status : 0% complete
Delta Devices : -1, (10->9)
Name : debian:1
UUID : 2f4b016c:54c46bf9:0efd1543:b1ae7dbf
Events : 328
Number Major Minor RaidDevice State
0 8 82 0 active sync /dev/sdf2
1 8 2 1 active sync /dev/sda2
2 8 18 2 active sync /dev/sdb2
3 8 34 3 active sync /dev/sdc2
4 8 50 4 active sync /dev/sdd2
11 8 178 5 active sync /dev/sdl2
6 8 98 6 active sync /dev/sdg2
7 8 114 7 active sync /dev/sdh2
8 8 130 8 active sync /dev/sdi2
9 8 146 9 active sync /dev/sdj2
10 8 162 10 active sync /dev/sdk2
12 8 66 - spare /dev/sde2
A második lemez esetén teljesen hasonlóan járunk el (az array-size és a raid-devices változókra kell figyelni)
#lvreduce -L501G /dev/filesystem/backup
#mdadm /dev/md1 --grow --array-size=3906293760
#mdadm /dev/md1 --grow --raid-devices=9 --backup-file=/root/backup1
A szinkronizáció végén így néz ki:
# mdadm --detail /dev/md127
/dev/md127:
Version : 1.2
Creation Time : Thu Jun 23 10:01:02 2011
Raid Level : raid5
Array Size : 3906293760 (3725.33 GiB 4000.04 GB)
Used Dev Size : 488286720 (465.67 GiB 500.01 GB)
Raid Devices : 9
Total Devices : 12
Persistence : Superblock is persistent
Update Time : Tue Jul 26 21:57:06 2011
State : clean
Active Devices : 9
Working Devices : 12
Failed Devices : 0
Spare Devices : 3
Layout : left-symmetric
Chunk Size : 512K
Name : debian:1
UUID : 2f4b016c:54c46bf9:0efd1543:b1ae7dbf
Events : 10238
Number Major Minor RaidDevice State
0 8 82 0 active sync /dev/sdf2
1 8 2 1 active sync /dev/sda2
2 8 18 2 active sync /dev/sdb2
3 8 34 3 active sync /dev/sdc2
4 8 50 4 active sync /dev/sdd2
11 8 178 5 active sync /dev/sdl2
6 8 98 6 active sync /dev/sdg2
7 8 114 7 active sync /dev/sdh2
8 8 130 8 active sync /dev/sdi2
9 8 146 - spare /dev/sdj2
10 8 162 - spare /dev/sdk2
12 8 66 - spare /dev/sde2
Ha a szintkronizáció véget ér, akkor ki lehet venni a lemezt a tömbből:
#mdadm -f -r /dev/md1 /dev/sde2
#mdadm -f -r /dev/md1 /dev/sdk2
Ha van másik RAID tömb, abból is ki kell venni a lemezt:
#mdadm -f -r /dev/md0 /dev/sde1
#mdadm -f -r /dev/md0 /dev/sdk1
Ha sok lemez van egy gépben, nem könnyű őket megkülönböztetni. A következő paranccsal ki tudjuk olvasni a lemez széria számát, amit a cimkén is megtalálunk:
#smartctl -i /dev/sde
smartctl 5.40 2010-10-16 r3189 [i486-pc-linux-gnu] (local build)
Copyright (C) 2002-10 by Bruce Allen, http://smartmontools.sourceforge.net
=== START OF INFORMATION SECTION ===
Model Family: SAMSUNG SpinPoint T166 series
Device Model: SAMSUNG HD501LJ
Serial Number: S0MUJ2KP925564
Firmware Version: CR100-11
User Capacity: 500,107,862,016 bytes
Device is: In smartctl database [for details use: -P show]
ATA Version is: 8
ATA Standard is: ATA-8-ACS revision 3b
Local Time is: Tue Jul 26 09:35:34 2011 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Ha a csökkentés megtörtént, akkor növelni kell az LVM-et, de mennyivel?
# pvscan
PV /dev/md1 VG filesystem lvm2 [4.55 TiB / 4.52 TiB free]
Total: 1 [4.55 TiB] / in use: 1 [4.55 TiB] / in no VG: 0 [0 ]
Tehát még 4.52 TB-tal gazdálkodhatunk, egyelőre elég lesz 3Tb a backup LVM-nek. A mostani 501GB-hoz adjunk még 2.5TB-ot:
# lvextend -L +2.5T /dev/filesystem/backup
A végeredmény:
# lvdisplay /dev/filesystem/backup
--- Logical volume ---
LV Name /dev/filesystem/backup
VG Name filesystem
LV UUID Y7nKXy-zL1O-1626-BtYd-0qQd-YvKr-UhcPmS
LV Write Access read/write
LV Status available
# open 1
LV Size 3.00 TiB
Current LE 786432
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 16384
Block device 253:3
Az LVM-et már megnöveltük, a fájlrendszert is hozzá kell igazítani:
# resize2fs /dev/filesystem/backup
Ha ez is megvan, akkor ismét használhatjuk a backup LV-ot