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