[Eisfair] Volle root-Partition E1 mit Software-Raid 5
Thomas Zweifel
t2fel at gmx.net
So Jan 4 00:44:44 CET 2015
Hallo Jürgen
Am 03.01.2015 um 21:09 schrieb Jürgen Witt:
> Danke für Deine Informationen. Damit komme ich jetzt etwas weiter.
>
> Beim Lesen Deiner Anleitung, schien mir oberflächlich halbwegs klar zu
> sein, was bei dem Ablauf passiert. Jetzt beim Probieren habe ich aber
> diverse Verständnisprobleme. So z.B. bei den zu wählenden Größen.
>
> eis # mdadm -G --bitmap=none /dev/md4
> eis # mdadm -G -z65G /dev/md4
> mdadm: Cannot set device size for /dev/md4: No space left on device
> eis # mdadm -G -z60G /dev/md4
> mdadm: component size of /dev/md4 has been set to 62914560K
>
> Das war jetzt trial and error, aber eigentlich will man ja um eine
> definierte Größe Änderungen vollziehen. Da es im Testsystem ein Raid-1
> aus zwei 80GB-Platte ist und ich 10GB für / definiert hatte, habe ich es
> mit einer Verkleinerung auf 65GB im ersten Versuch probiert. Das war
> aber zu viel.
Dein md4 ist ca. 15853968 blocks à 4k Blockgrösse, also rund 60.5GB
Deshalb konntest Du es nicht auf 65GB 'verkleinern'. ;-)
> Wie hätte ich das wissentschaftlicher" machen können? Bzw. wo vorher
> nachsehen oder was errechnen? Normaler Weise will man ja um eine
Das Dateisystem hast Du ja bereits auf
> The filesystem on /dev/md4 is now 3200000 (4k) blocks long.
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......
> 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. ;-)
> OK, jetzt habe ich /dev/md4 also irgendwie stümperhaft verkleinert.
>
> Jetzt aber weiter in Deiner Anleitung:
>
> eis # e2fsck -f -C0 /dev/md4
> e2fsck 1.42.12 (29-Aug-2014)
> Pass 1: Checking inodes, blocks, and sizes
> Pass 2: Checking directory structure
> Pass 3: Checking directory connectivity
> Pass 4: Checking reference counts
> Pass 5: Checking group summary information
> /dev/md4: 1340/802816 files (8.0% non-contiguous), 2667859/3200000 blocks
>
> eis # resize2fs -p /dev/md4
> resize2fs 1.42.12 (29-Aug-2014)
> Resizing the filesystem on /dev/md4 to 15728640 (4k) blocks.
> The filesystem on /dev/md4 is now 15728640 (4k) blocks long.
Da Du vorhin das md4 viel zu wenig verkleinert hast, ist das Dateisystem
nun wieder fast so gross, wie es am Anfang war. :-(
> eis # cat /proc/partitions
> major minor #blocks name
> 8 3 10490443 sda3
> 8 4 63448716 sda4
> 8 19 12582912 sdb3
> 8 20 61358168 sdb4
> 9 3 10482176 md3
> 9 4 59904000 md4
Das wäre OK, sdb4 ist etwas grösser als das md4.
> Mein Raid-1-Testsystem besteht aus sda und sdb. Ich habe mit den
> Größenänderungen mit sdb angefangen.
>
> Das hier sieht aber für mich nicht OK aus:
>
> eis # sfdisk -luM
Sieht hier auch nicht anders aus:
service02test # sfdisk -luM /dev/sde
Disk /dev/sde: 121601 cylinders, 255 heads, 63 sectors/track
sfdisk: Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0
Device Boot Start End MiB #blocks Id System
/dev/sde1 * 1 28 28 28672 fd Linux raid autodetect
/dev/sde2 29 540 512 524288 fd Linux raid autodetect
/dev/sde3 541 12828 12288 12582912 fd Linux raid autodetect
sfdisk: end: (c,h,s) expected (1023,254,63) found (611,119,20)
/dev/sde4 12829 953869- 941041- 963625688 5 Extended
sfdisk: start: (c,h,s) expected (1023,254,63) found (611,119,21)
sfdisk: end: (c,h,s) expected (1023,254,63) found (769,80,63)
/dev/sde5 12830 64029 51200 52428800 fd Linux raid autodetect
sfdisk: start: (c,h,s) expected (1023,254,63) found (611,151,53)
sfdisk: end: (c,h,s) expected (1023,254,63) found (994,173,11)
.....
service02test # fdisk -l /dev/sde
Disk /dev/sde: 1000.2 GB, 1000204886016 bytes, 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Device Boot Start End Blocks Id System
/dev/sde1 * 2048 59391 28672 fd Linux raid autodetect
/dev/sde2 59392 1107967 524288 fd Linux raid autodetect
/dev/sde3 1107968 26273791 12582912 fd Linux raid autodetect
/dev/sde4 26273792 1953525167 963625688 5 Extended
/dev/sde5 26275840 131133439 52428800 fd Linux raid autodetect
....
Nimm am besten das Tool, das Du immer zum Partitionieren verwendest.
>
> Ich habe trotzdem einfach 'mal weiter gemacht:
>
> for i in 1 2 3 4 ; do mdadm --add /dev/md$i /dev/sdb$i ; done
>
> Nach einer Weile:
>
> eis # cat /proc/mdstat
> Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5]
> [raid4] [multipath]
> md4 : active raid1 sdb4[2] sda4[1]
> 59904000 blocks super 1.2 [2/2] [UU]
> md3 : active raid1 sdb3[2] sda3[1]
> 10482176 blocks super 1.2 [2/2] [UU]
> bitmap: 0/1 pages [0KB], 65536KB chunk
> md2 : active raid1 sdb2[2] sda2[1]
> 4150720 blocks super 1.2 [2/2] [UU]
> bitmap: 0/1 pages [0KB], 65536KB chunk
> md1 : active raid1 sdb1[0] sda1[1]
> 55104 blocks [2/2] [UU]
> bitmap: 0/1 pages [0KB], 65536KB chunk
Die bitmaps von md1-3 könntest Du ebenfalls noch löschen.
Mit
watch cat /proc/mdstat
kannst Du dir den laufenden Fortschritt anzeigen lassen.
(STRG + C zum beenden)
> Da ich glaube, daß ich hier einigen Mist gebaut habe (bzw. nicht alles
> verstanden habe), habe ich an dieser Stelle erst 'mal wieder abgebrochen
> und hoffe auf neuen Input. Das Thema ist viel komplexer, als ich dachte.
:-)
Gruss Thomas
Mehr Informationen über die Mailingliste Eisfair