PowerEdge: prestazioni del dispositivo a blocchi più veloci con dm-cache basato su SSD PCIe NVMe su RHEL
Summary: La cache di Device Mapper (dm-cache) può essere utilizzata per migliorare le prestazioni di un dispositivo a blocchi eseguendo la migrazione dinamica dei dati a un dispositivo più rapido. ...
Instructions
Le unità SSD PCIe basate su NVMe possono fungere da dispositivo di memoria cache per dm-cache utilizzando il set di strumenti dello spazio utente Logical Volume Manager (LVM).
La memoria cache virtuale creata da dm-cache è costituita da tre dispositivi fisici. Fare riferimento alla Figura 1. Il dispositivo Origin è il dispositivo di storage di destinazione (HDD) più lento. Il dispositivo Cache viene utilizzato per archiviare i dati dell'utente e la meta cache archivia i metadati come il posizionamento dei blocchi, i flag di modifica e altri dati interni.
In questo caso, utilizziamo lo stesso dispositivo [dispositivo Cache] sia per i blocchi di dati che per i metadati.
Figura 1. Passaggi per impostare e configurare dm-cache utilizzando gli strumenti LVM.
Configurazione hardware:
Dispositivo Origin [HDD]: /dev/sda1
Dispositivo Cache [unità SSD PCIe basata su NVMe] (blocchi/meta): /dev/nvme0n1p1
Configurazione software:
Sistema operativo: RHEL 7
Strumenti: strumenti dello spazio utente LVM2 per la configurazione di dm-cache
Procedura di configurazione:
Di seguito sono riportati i passaggi per configurare dm-cache del dispositivo virtuale mediante LVM.
L'output di ogni passaggio viene mappato al blocco con la numerazione menzionata nella Figura 1.
- Creare una partizione da 100 GB sul disco rigido [dispositivo Origin]
parted -a optimal /dev/sda mkpart primary 1 100G
Nota: in questo modo si crea /dev/sda1 - Creare una partizione da 10 GB sul disco SSD PCIe NVMe [dispositivo Cache]
parted -a optimal /dev/nvme0n1 mkpart primary 1 10G
- Creare un gruppo di volumi (cache) con i dispositivi Origin e Cache
vgcreate cache /dev/sda1 /dev/nvme0n1p1
- Verificare la presenza del gruppo di volumi "cache" utilizzando
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
- Verificare la presenza del gruppo di volumi "cache" utilizzando
- Creare il volume logico del dispositivo Origin (
origin_device)lvcreate -l 90%FREE -n origin_device cache /dev/sda1
- Creare un volume logico di metadati cache (
cache_meta)lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1
- Creare un volume logico di dati dei blocchi cache (
cache_block)lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1
- Creare un volume logico del pool di cache combinando volumi logici di blocchi di cache e metadati di cache (combinando i passaggi 5 e 6)
lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block
Nota: il pool di cache creato ha lo stesso nome di "cache_block", ovvero il nome del volume logico di dati dei blocchi cache creato nel passaggio 6.-
Si tratta del normale comportamento dello strumento. Verificare la presenza del gruppo di volumi "cache" utilizzando
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
-
-
Creare un volume logico di cache collegando il volume logico del pool di cache (passaggio 7) e il volume logico di
origin_device(passaggio 4)lvconvert --type cache --cachepool cache/cache_block cache/origin_device
- In questo modo viene creato il dispositivo cache virtuale (dm-cache)
orign_device, come mostrato di seguito con la denominazionedm4.[root@localhost ~]# ls -l /dev/cache/origin_device lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4
- In questo modo viene creato il dispositivo cache virtuale (dm-cache)
-
Formattare il dispositivo cache virtuale con un file system e utilizzarlo.
mkfs.ext4 /dev/cache/origin_device
Dati sulle prestazioni:
I test delle prestazioni eseguiti utilizzando lo strumento FIO mostrano un notevole miglioramento delle operazioni combinate di lettura, scrittura e lettura-scrittura.
La Tabella 1 mostra l'output dello strumento FIO della differenza di prestazioni e del miglioramento in percentuale con dmcache rispetto all'unità normale (unità rotazionale) e la Figura 2 mostra il grafico corrispondente.
Il test viene eseguito con blocchi di dimensioni 1M per lettura casuale, scrittura casuale e combinazione lettura-scrittura casuale (50%) sul disco rigido originale (sda) e sull'unità con dmcache configurato.
| FIO con dim. blocchi = 1M | IOPS | ||
|---|---|---|---|
| DISPOSITIVO | Read | Write | Lettura/Scrittura |
Unità con dm-cache |
197 | 798 | 159 |
| sda [unità originale] | 124 | 118 | 58 |
| Miglioramento in % | 58,87% | 576,20% | 174,13% |
Tabella 1. Miglioramento delle prestazioni con dm-cache
Figura 2. Miglioramento delle prestazioni con dm-cache.