[Eisfair] Volle root-Partition E1 mit Software-Raid 5

Jürgen Witt j-witt at web.de
So Jan 4 10:28:17 CET 2015


Hallo Thomas,

Am 04.01.2015 um 00:44 schrieb Thomas Zweifel:
>
>
> ca. 12.2GB verkleinert, somit könntest Du das md4 auf ca. 15-20GB
> verkleinern.
> Die Formel ist:
> ---------------------------------------------------------------
> Anzahl Blöcke * Blockgrösse / Anzahl Nutzplatten + etwas Zugabe
> ---------------------------------------------------------------
>
> In dem Fall also: 3200000 * 4k / 1 + ca. 3GB  -->  15GB
>
> mdadm -G -z15G /dev/md4
>
> Bei dem Test (mit dem Raid1) hast du 1 Nutzplatte (und eine
> Redundanzplatte).
> Bei deinem Kunden (beim Raid5 mit 3 Platten) ist die Anzahl Nutzplatten 2.
>
> Umso kleiner Du es an der Stelle machst, desto schneller ist der Rebuild
> später durch, und das wiederholst Du beim Kunden ja drei mal.
>
> Also 3 * 500 GB / 0.1 GB/s = 15000s --> ca. 4h
> Oder 3 * 890 GB / 0.1 GB/s = 26700s --> ca. 7.4h
>
> Kann je nach Rechner / Platten auch etwas länger dauern......

Wenn ich mir den Zeitaufwand für den Rebuild des Raid-5-Systems ansehen, 
frage ich mich, ob es nicht billiger, sinnvoll und sicherer ist, die 5 
Jahre alten Platten durch Neue (größere und korrekt partitionierte) zu 
ersetzen (wie mir ein Freund vorgeschlagen hat).

>> definierte Größe (z.B. md4 soll um 10GB kleiner) reduzieren. Beim System
>> des Kunden würde ich md4 auch nicht auf 500GB verkleinern wollen sondern
>> um z.B. genau 10GB
>
> Das geht leider nicht.
> Wie ich in der Anleitung schon angedeutet habe - Das ist der knifflige Teil.
> Den zeitlichen Aspekt sollte man ab einer gewissen Grösse durchaus mit
> einbeziehen. ;-)


Und was hältst Du in dem Zusammenhang von diesem Artikel? Dort wird ja 
geschildert, wie eine Partition gezielt um eine definierte Größe 
reduziert werden kann. Der Raid-Teil müßte doch analog gehen, oder?

I want to shrink an ext4 filesystem to make room for a new partition and 
came across the resize2fs program. The command looks like this:

resize2fs -p /dev/ExistingExt4 $size

How should I determine $size if I want to substract exactly 15 GiB from 
the current ext4 filesystem? Can I use the output of df somehow?

You should not use df because it shows the size as reported by the 
filesystem (in this case, ext4).

Use the dumpe2fs -h /dev/ExistingExt4 command to find out the real size 
of the partition. The -h option makes dumpe2fs show super block info 
without a lot other unnecessary details. From the output, you need the 
block count and block size.

...
Block count:              19506168
Reserved block count:     975308
Free blocks:              13750966
Free inodes:              4263842
First block:              0
Block size:               4096
...

Multiplicating these values will give the partition size in bytes. The 
above numbers happen to be a perfect multiple of 1024:

$ python -c 'print 19506168.0 * 4096 / 1024'
78024672.0

Since you want to shrink the partition by 15 GiB (which is 15 MiB times 
1 KiB):

$ python -c 'print 19506168.0 * 4096 / 1024  -  15 * 1024 * 1024'
62296032.0

As resize2fs accepts several kinds of suffixes, one of them being K for 
"1024 bytes", the command for shrinking the partition to 62296032 KiB 
becomes:

resize2fs -p /dev/ExistingExt4 62296032


Vielen Dank für Deine Bemühungen!
Gruß aus HH
Jürgen


Mehr Informationen über die Mailingliste Eisfair