Obsah
FlashCache s SSD
FlashCahe je system vyvinuty Facebookem k urychleni diskoveho IO pomoci cache na SSD. Například na agregovaných virtualizačních serverech s OpenVZ jsme pozorovali 2-3násobné zvýšení kapacity hostitelského stroje co se týká počtu hostovaných virtuálních serverů. Zajímavé bude jistě i využití u větších databázových strojů, atd…
Instalace
- apt-get install git-core build-essential dkms coreutils
- Install your linux headers
- find them with "aptitude search headers"
- to see what kernel you run use "uname -a"
- ln -s /usr/src/linux-headers-$(uname -r)/ /lib/modules/$(uname -r)/build #novy balicky od openvz jsou rozbity, timhle se to fixne. idealne v /etc/rc.local
- cd flashcache
- make -f Makefile.dkms
* make
* make install
* modprobe flashcache
Vytvoření cache
flashcache_create -p back flashcache-zarizeni /dev/ssd-zarizeni /dev/pomaly-zarizeni
Vytvori /dev/mapper/flashcache-zarizeni
- Typy flashcachi
- back
- Cachuje i zapisy = rychlost & riziko
- Autodetekce cache pri bootu = neni potreba pri kazdym bootu znova vytvaret
- Nacachovany data vydrzi napric rebootama
- Pri shutdownu/rebootu se flushuje, ale to se da vypnout pres sysctl
- thru
- Data zapisuje na obe zarizeni najednou (= zapisy nezrychli)
- around
- Data zapisuje jen na disk, na SSD se nacachujou az pri cteni
Uvolnění cache
Cache uvolníme pomocí dmsetupu…
dmsetup remove cachedev
Ovladani
zrychleny vypnuti systemu
echo 1 > /proc/sys/dev/flashcache/sdc1+vservers/fast_remove
Sledování efektivity pomocí muninu
- Munin plugin v ruby (ukazuje naplnění cache a její využití)
- Běžné pluginy na sledování zátěže systému a disku…
Takhle se projevila instalace flashcache na vytížení disku s virtuálními servery OpenVZ:
Když se něco rozbije
Někdy se stane, že je potřeba flashcache zakázat, např. když se rozbije SSD disk. V takovém případě je nutné zákazat modul flashcache v grubu. V debianu použijeme konfigurační soubor /etc/default/grub a tam přidáme do řádku GRUB_CMDLINE_LINUX následující
GRUB_CMDLINE_LINUX="flashcache.blacklist=yes"
A provedeme update-grub
V centosu pak použijeme přímo /boot/grub/menu.lst a pridame volbu flashcache.blacklist=yes na konec cmdline kernelu, ktery bootujeme.
Pro jistotu muzeme jeste modul flashcache pridat do /etc/modprobe.d/blacklist.conf
blacklist flashcache
Nezapomente potom v /etc/fstab opravit mountovani cachovaneho disku na skutecny fyzicky disk! Take je vyhodne flashcache disky pripojovat s parametrem nofail
, aby se predeslo zaseku pri bootu, kdyz modul nenabehne.