EnhanceIO als SSD Cache Lösung für CentOS 7 installieren und konfigurieren

EnhanceIO als SSD Cache Lösung für CentOS 7 installieren und konfigurieren

Wenn man eine große magnetische (vergleichsweise langsame) Platte und eine kleine (recht schnelle) SSD hat, ist ein SSD Cache eine gute Lösung, den Komfort der großen Platte (man muß z. B. nicht mit kleinen Partitionen arbeiten und sich stets überlegen, welche Daten wohin gehören) mit der Geschwindigkeit einer SSD zu verbinden.

Diese Erklärung kennt wohl schon fast jeder.. doch wie wird dies konkret umgesetzt?

Es gibt zahlreiche Lösungen, um einen solchen Cache SW-seitig unter Linux zu realisieren. Die wichtigsten sind:

bcache, dm-cache, flashcache sowie enhanceio.

Für enhanceio habe ich mich aufrund der Performance entschieden, wie auch der Tatsache, daß es recht leicht zu konfigurieren ist, und ferner die beschleunigte Partition in keiner Weise präpariert werden muß.

Ein Nachteil (für mich) ist, daß ich die SSD komplett als Cache verwenden muß, was bei einer 256GB SSD nicht allzuviel Sinn macht, zumal ich weiß, daß ich nur auf einen kleinen Teil der 1GB Platte regelmäßig zugreife, und auch nur dieser im Cache sein müßte.

Installation

Es gibt einige Beschreibungen, wie z. B. direkt bei Github oder auch bei Blackbird. Die Variante bei Github ist recht komplett – es fehlt nur der erste Schritt, daß das Repository eben zuerst lokal geclont werden muß, Packages habe ich jedenfalls nicht gefunden.

Wie bereits geschrieben wird die SSD komplett als Ganze zum Caching verwendet. Ich hätte lieber nur eine Teilpartition verwendet und werde dann vermutlich das Caching neu installieren/konfigurieren.

Das ist ja auch ohne Probleme möglich: die Daten auf der Zielpartition sind nach wie vor komplett, wenn man das Caching ausstellt, es läuft also alles wie zuvor, nur eben etwas langsamer.

Detaillierte Installationsinstruktionen

In einem passenden Ordner (z. B. ~/install) führt man aus:

git clone https://github.com/stec-inc/EnhanceIO.git
cd EnhanceIO/Driver/enhanceio/
make && make install
cd ../../CLI/
cp eio_cli /sbin/
cp eio_cli.8 /usr/share/man/man8
 
modprobe enhanceio_fifo
modprobe enhanceio_lru
modprobe enhanceio 
 
lsmod | grep enhanceio

Mit dem letzten Kommando sieht man, ob die entenhanceio Module auch geladen wurden.

Um dann zu gucken, was man wie konfigurieren muß, verschafft man sich am besten erst einmal einen Überblick über die Partitionen:

yum install lshw
lshw -class disk
 
mount points:
cat /etc/mtab
or simply
df

Dann kann man den Cache aktivieren

eio_cli create -d /dev/sda6 -s /dev/sdb -p lru -m wb -c ssd_cache_localshare

Performance-Statistiken (z. B. hit/miss-Rate) findet man so heraus

cat /proc/enhanceio/ssd_cache_localshare/stats

Ich habe weder vorher noch nachher einen Benchmark laufen lassen, kann also keine konkreten Zahlen bzgl einer Beschleunigung geben. Gemäß meinen Statistiken (s. o.) sieht es ganz gut aus, ferner scheinen auch meine virtuellen Maschinen schneller zu starten.

2 thoughts on “EnhanceIO als SSD Cache Lösung für CentOS 7 installieren und konfigurieren

  1. Thanks. Note that you can use a partition instead of the full device. If you get the error ‚required key not available‘ when you try to load the module with modprobe you have to disable secure boot in your BIOS.

    Gijsbert

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.