Proxmox: SSD-Caching auf dem Thinpool einrichten

Moderne NVME-SSDs ermöglichen Lese-/Schreibraten von mehreren Gigabyte pro Sekunde. Leseplatten sind beim Lesen dagegen auf ~250 MB/s limitiert und das nur bei sehr performanten Exemplaren. Zwar kann man die LeseLeistunbg durch verwendung eines RAIDs noch etwas verbessern, aber man kommt nicht ansatzweise auf Raten wie bei SSDs.

In diesem Beitrag beschreibe ich, wie man einen Cache auf der SSD einrichtet und mit dem Thinpool verknüpft um von der wesentlich höheren Performance zu profitieren.

Ich gehe hier davon aus, das ihr wist, was ihr tut, ein Backup ist Pflicht! Weiterhin gehe ich davon aus, dass auf der /dev/nvme0n1p4 noch Platz ist.

raid ist mein RAID1 über zwei Festplatten. Es enthält den Thinpool.

pvcreate /dev/mapper/nvme0n1p4
vgextend raid /dev/mapper/nvme0n1p4
lvcreate -n cachemeta  -L 2G  raid /dev/nvme0n1p4
lvcreate -n cachedata  -l+99%FREE  raid /dev/nvme0n1p4
lvconvert --type cache --cachepool raid/cachedata --cachemode writethrough raid/thinpool

Warum man für das Cache-LV nur 99% vom Platz nutzen kann, weiß ich auch nicht, mit 100% ging es bei mir nicht. Kann bei euch aber anders sein.

Zum Testen führt man mehrfach den folgenden Befehl aus. Er liest 1GBaus dem Thinpool. Beim ersten Mal erreiche ich durchschnittliche Festplatten-Geschwindigkeiten, später dann der Boost durch die SSD.

dd if=/dev/mapper/raid-thinpool of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 4.53948 s, 231 MB/s

dd if=/dev/mapper/raid-thinpool of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 0.440339 s, 2.4 GB/s