Linux Software Raid, optimalizace

Linux Software Raid, optimalizace

Publikováno: 24.10.2013

Tato optimalizace se týká pouze rychlosti obnovení (rebuild) nebo resynchronizace (re-sync) pole.

Hodnoty pro maximální a minimální rychlost jsou uloženy v 

/proc/sys/dev/raid/speed_limit_min

resp.

/proc/sys/dev/raid/speed_limit_max

Rychlost se udává v kilobytech (resp. kibibytech) za sekundu (1 kilobyte/kibibyte = 210 bytu = 1024 bytu). Tato hodnota vyjadřuje rychlost diskových jednotek v poli, nikoliv celého pole.

Výchozí hodnotou prop speed_limit_min je 1000, tato hodnota je využita, pokud na poli probíhají i jiné aktivity, než právě rebuild nebo resync.

Pro speed_limit_min je pak výchozí hodnota 100000 a tato hodnota je využita v případě, že pole není vytížené.

Pro zjištění aktuálních hodnot v systému použijeme následující příkazy:

sysctl dev.raid.speed_limit_min

resp.

sysctl dev.raid.speed_limit_max

 

Změna výchozích hodnot

echo 100000 > /proc/sys/dev/raid/speed_limit_min

nebo ekvivalentní zápis

sysctl -w dev.raid.speed_limit_min=100000

resp.

echo 2500000 > /proc/sys/dev/raid/speed_limit_min

nebo ekvivalentní zápis

sysctl -w dev.raid.speed_limit_min=2500000

Pozor, zvýšení těchto hodnot zvýší zátěž CPU a také využití operační paměti RAM! Takže jako vopatrně s tim. 

Tyto hodnoty můžeme zadat i do konfiguračního souboru /etc/sysctl.conf.

 

Pro domácí NAS s RAID 1, pomalejším CPU a omezenou RAM (typicky CPU Intel Atom, RAM 1-2GB) 

dev.raid.speed_limit_min = 50000
dev.raid.speed_limit_max = 1500000

Pro rychlejší stroje s RAID 1, 5

dev.raid.speed_limit_min = 100000
dev.raid.speed_limit_max = 2500000

Pro rychlejší stroje s RAID polem 6 a více disků

dev.raid.speed_limit_min = 200000
dev.raid.speed_limit_max = 5000000

K monitorování průběhu požijeme příkaz watch

watch cat /proc/mdstat

nebo s použitím vlastního intervalu pro obnovení v sekundách (výchozí hodnota je 2):

watch -n1 cat /proc/mdstat

Pokud na poli zůstává resync status PENDING

md1 : active raid1 sda2[0] sdb2[1]
1991616 blocks super 1.2 [2/2] [UU]
resync=PENDING

Použijeme tento příkaz:

mdadm --readwrite /dev/md1

 

Praktický příklad

U 3TB pole RAID 1 byl, při výchozích hodnotách 1000/100000, indikovaný čas obnovení pole 66 hodin a 46 minut.

Po zvýšení hodnot (na 100000/2500000) byl výsledný dosažený čas obnovení 6 hodin a 34 minut.

 

Inspired: cyberciti.biz

 

Nahoru
Tento web používá k poskytování služeb a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tímto souhlasíte. Další informace