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


Kulcsszavak: Linux, backup, RAID, LVM, Debian

Új hozzászólás: