Zmenseni RAIDu a partition

Slávek Banko slavek.banko na axis.cz
Pondělí Červen 12 22:34:35 CEST 2017


On Monday 12 of June 2017 22:21:28 Jan Kasprzak wrote:
> 	Zdravim,
>
> na jednom stroji me ceka zmenseni sw RAIDu a diskovych oblasti,
> nad kterymi ten RAID bezi. Tak si to tady zkousim ve virtualnim stroji
> a zjistuji, ze asi nevim jek to presne udelat:
>
> - mam 4 disky /dev/vd[c-f], na kazdem partition /dev/vd[c-f]1 pres cely
> disk - na tom celem je RAID-10 /dev/md0
> - mam snahu pres mdadm --grow --size=<neco> /dev/md0 zmensit disk. Toto
> projde, ale ted nevim jak presne zmensit diskove oblasti pod tim
> - pres mdadm --detail /dev/md0 si vypisu "Used Dev Size" a naivne si
> 	predstavuji, ze presne takhle velkou partition mam vytvorit
> - spustim tedy  mdadm --stop /dev/md0, zrusim /dev/vd[c-f]1 a vytvorim
> 	novou partition presne podle "Used Dev Size".
> - mdadm ale odmita sestavit pole zpatky:
>
> # mdadm --assemble --scan
> mdadm: failed to add /dev/vdd1 to /dev/md/0: Invalid argument
> mdadm: failed to add /dev/vde1 to /dev/md/0: Invalid argument
> mdadm: failed to add /dev/vdf1 to /dev/md/0: Invalid argument
> mdadm: failed to add /dev/vdc1 to /dev/md/0: Invalid argument
> mdadm: failed to RUN_ARRAY /dev/md/0: Invalid argument
> mdadm: No arrays found in config file or automatically
>
> - kdyz vratim diskove oblasti na plnou velikost, tak totez projde,
> 	a mdadm --detail ukazuje spravnou (zmensenou) Used Dev Size
>
> Z toho usuzuji, ze tyto informace jsou i nadale ulozeny v superbloku
> MD pole, ktery ve verzi metadat 1.2 je az na konci diskove oblasti.
>
> Jeste je mozne, ze ten superblok je i nekde pobliz toho mista kde konci
> ta zmensena partition, ale ne presne. V manualove strance se pise:
>
>        -z, --size=
>               Amount  (in  Kibibytes)  of space to use from each drive
> in RAID levels 1/4/5/6.  This must be a multiple of the chunk size, 
> and must  leave about 128Kb of space at the end of the drive for the
> RAID superblock.  If this is not specified (as  it  normally  is not) 
> the smallest drive (or partition) sets the size, though if there is a
> variance among the drives of greater than 1%, a warn‐ ing is issued.
>
> Cili mozna by ta partition mela byt presne o 128k vetsi nez vypisuje
> "Used Dev Size"? Ale fdisk zrejme kvuli zarovnani "cylindru" nechce
> vytvorit partition presne o tuto velikost vetsi.
>
> Zkouseli jste nekdo zmensovat MD RAID pole? Jak se presne spocita
> velikost te zmensene fyzicke oblasti? Pripadne je tam jeste nejaka
> dalsi magie?
>
> 	Jeste je taky moznost, ze to takto nejde - ze musim zmensit
> pole pres --grow, a pak postupne vyhazovat jednotlive partisny z pole,
> zmensovat, vracet je po jedne do pole, a nechat synchronizovat.
>
> 	Diky,
>
> -Y.

Pokud jsou metadata verze 0.90 nebo 1.0, jsou na konci oddílu a muselo by 
se s nimi pohnout. Pokud ale jsou metadata verze 1.2, jsou na začátku 
oddílu, takže pro zmenšování by to mělo být díky tomu jednodušší.

Na přesnou shodu velikosti pole a oddílu si určitě nehraje - tedy pokud 
oddíl není menší, než stanovená velikost pole. Takže nějaké zarovnávání 
fdiskem by nemělo hrát roli.

Při skládání pole, u kterého jsem měnil velikosti oddílů (v mém případě to 
bylo zvětšování), se mi také vzpouzel - už si sice nepamatuji, zda též 
hlásil Invalid argument, ale pomohlo mi při assemble přidat ještě 
parametr: --update=devicesize

Snad ti to také pomůže!
-- 
Slávek


Další informace o konferenci Linux