PowerEdge: Schnellere Blockgeräteleistung mit NVMe PCIe SSD-basiertem DM-Cache auf RHEL
Summary: Der Device Mapper-Cache (DM-Cache) kann verwendet werden, um die Leistung eines Blockgeräts zu verbessern, indem Daten dynamisch auf ein schnelleres Gerät migriert werden.
Instructions
NVMe-basierte PCIe-SSDs können mithilfe der LVM-Tools (User Space Toolset Logical Volume Manager) als Cache-Gerät für DM-Cache fungieren.
Der von DM-Cache erstellte virtuelle Cache besteht aus drei physischen Geräten. (Abb. 1 beachten). Das Ursprungsgerät ist das langsamere Zielspeichergerät (HDD). Das Cache-Gerät wird verwendet, um die Nutzerdaten zu speichern, und der Metacache speichert die Metadaten wie Blockplatzierung, Dirty Flags und andere interne Daten.
In diesem Fall verwenden wir dasselbe Gerät [Cache-Gerät] sowohl für Datenblöcke als auch für Metadaten.
Abbildung 1: Schritte zum Einrichten und Konfigurieren von DM-Cache mithilfe von LVM-Tools.
Hardware-Setup:
Ursprungsgerät [HDD]: /dev/sda1
Cache-Gerät [NVMe-basierte PCIe-SSD] (Block/Meta): /dev/nvme0n1p1
Software-Setup:
Betriebssystem: RHEL 7
Tools: LVM2-Userspace-Tools für die DM-Cache-Konfiguration
Konfigurationsschritte:
Im Folgenden werden die Schritte zum Konfigurieren des DM-Cache des virtuellen Geräts mithilfe von LVM beschrieben.
Jede Schrittausgabe wird dem Block mit der in Abb. 1 erwähnten Nummerierung zugeordnet.
- 100-GB-Partition auf der Festplatte erstellen [Ursprungsgerät]
parted -a optimal /dev/sda mkpart primary 1 100G
Hinweis: Dadurch wird /dev/sda1 erstellt - 10-GB-Partition auf der NVMe-PCIe-SSD-Festplatte erstellen [Cachegerät]
parted -a optimal /dev/nvme0n1 mkpart primary 1 10G
- Volume-Gruppe (Cache) mit dem Ursprungs- und Cache-Gerät erstellen
vgcreate cache /dev/sda1 /dev/nvme0n1p1
- Nach der Volume-Gruppe „cache“ suchen, mithilfe von
vgdisplay[root@localhost ~]# vgdisplay --- Volume group --- VG Name cache System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 103.36 GiB PE Size 4.00 MiB Total PE 26461 Alloc PE / Size 25399 / 99.21 GiB Free PE / Size 1062 / 4.15 GiB VG UUID Zd8dNe-6Kdt-7qgY-dmSN-8WHe-4wqQ-euM3Ql
- Nach der Volume-Gruppe „cache“ suchen, mithilfe von
- Logisches Volume des Ursprungsgeräts erstellen (
origin_device)lvcreate -l 90%FREE -n origin_device cache /dev/sda1
- Logisches Volume für Cachemetadaten erstellen (
cache_meta)lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1
- Logisches Volume für Cacheblockdaten erstellen (
cache_block)lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1
- Logisches Volume für Cachepool durch die Kombination von logischen Cacheblock- und Cachemetadaten-Volumes erstellen (Schritt 5 und 6 kombinieren)
lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block
Hinweis: Der erstellte Cachepool hat denselben Namen wie „cache_block“, dem Namen des logischen Cacheblockdaten-Volumes, das in Schritt 6 erstellt wurde.-
Dies ist ein normales Verhalten des Tools. Nach der Volume-Gruppe „cache“ suchen, mithilfe von
lvdisplayroot@localhost ~]# lvdisplay --- Logical volume --- LV Path /dev/cache/cache_block LV Name cache_block VG Name cache LV UUID kWYQxP-Jdlr-JdxE-aleB-JJpj-3rmw-Q0cojx LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-06-28 09:05:32 -0400 LV Status available # open 0 LV Size 5.07 GiB Current LE 1297 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:2
-
-
Logisches Cache-Volume erstellen, durch Verbindung des logischen Volumes des Cache-Pools (Schritt 7) mit
origin_devicedem logischen Volume (Schritt 4)lvconvert --type cache --cachepool cache/cache_block cache/origin_device
- Dadurch wird das virtuelle Cache-Gerät (DM-Cache) erstellt,
orign_devicewie unten dargestellt unterdm4.[root@localhost ~]# ls -l /dev/cache/origin_device lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4
- Dadurch wird das virtuelle Cache-Gerät (DM-Cache) erstellt,
-
Formatieren Sie das virtuelle Cache-Gerät mit einem Dateisystem und verwenden Sie es.
mkfs.ext4 /dev/cache/origin_device
Leistungsdaten:
Leistungstests, die mit dem FIO-Tool durchgeführt wurden, zeigen eine deutliche Verbesserung der Lese-, Schreib- und Lese-/Schreib-Mix-Vorgänge.
Tabelle 1 zeigt die FIO-Toolausgabe der Leistungsdifferenz und die prozentuale Verbesserung mit dem dmcache im Vergleich zum normalen Laufwerk (Rotationslaufwerk) und Abb. 2 zeigt das entsprechende Diagramm.
Der Test wird mit einer Blockgröße von 1 Mio. zufälligen Lese-, Schreib- und einer Mischung aus zufälligen Lese-/Schreibvorgängen (50 %) auf der ursprünglichen Festplatte (SDA) und dem Laufwerk mit dmcache konfiguriert.
| FIO bei BS = 1 Mio. | IOPS | ||
|---|---|---|---|
| GERÄT | Read | Schreiben | Lesen-Schreiben |
Laufwerk mit dm-cache |
197 | 798 | 159 |
| SDA [ursprüngliches Laufwerk] | 124 | 118 | 58 |
| Verbesserung in % | 58,87 % | 576,20 % | 174,13 % |
Tabelle 1: Leistungsverbesserung mit dm-cache
Abbildung 2: Leistungsverbesserung mit dm-cache.