PowerEdge : Accélération des performances des périphériques en mode bloc avec dm-cache basé sur un disque SSD PCIe NVMe sur RHEL
Summary: Le cache Device Mapper (dm-cache) peut être utilisé pour améliorer les performances d’un périphérique en mode bloc en effectuant une migration dynamique des données vers un périphérique plus rapide. ...
Instructions
Les disques SSD PCIe basés sur NVMe peuvent utiliser l’ensemble d’outils d’espace utilisateur Logical Volume Manager (LVM) pour faire office de périphérique de cache pour dm-cache.
Le cache virtuel créé par dm-cache est composé de trois périphériques physiques. (Voir Figure 1.) Le périphérique d’origine est le périphérique de stockage de destination (SSD) le plus lent. Le périphérique de cache est utilisé pour stocker les données utilisateur et le cache de métadonnées stocke les métadonnées telles que le positionnement des blocs, les indicateurs d’erreurs et d’autres données internes.
Dans ce cas, nous utilisons le même périphérique [périphérique de cache] pour les blocs de données et les métadonnées.
Figure 1 : Étapes de configuration de dm-cache à l’aide des outils LVM.
Configuration matérielle :
Périphérique d’origine [SSD] : /dev/sda1
Cache [SSD PCIe basé sur NVMe] (bloc/méta) : /dev/nvme0n1p1
Configuration du logiciel :
Système d’exploitation : RHEL 7
Outils : Espace utilisateur LVM2 pour la configuration dm-cache
Étapes de configuration :
Les étapes ci-dessous permettent de configurer le périphérique virtuel dm-cache à l’aide de LVM.
La sortie de chaque étape renvoie au bloc numéroté correspondant représenté à la Figure 1.
- Créer une partition de 100 Go sur le disque dur [périphérique d’origine]
parted -a optimal /dev/sda mkpart primary 1 100G
Remarque : Cela crée /dev/sda1 - Créer une partition de 10 Go sur le disque SSD PCIe NVMe [périphérique de cache]
parted -a optimal /dev/nvme0n1 mkpart primary 1 10G
- Créer un groupe de volumes (cache) avec le périphérique d’origine et le périphérique de cache
vgcreate cache /dev/sda1 /dev/nvme0n1p1
- Rechercher le groupe de volumes « cache » à l’aide de
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
- Rechercher le groupe de volumes « cache » à l’aide de
- Créer le volume logique du périphérique d’origine (
origin_device)lvcreate -l 90%FREE -n origin_device cache /dev/sda1
- Créer un volume logique de métadonnées de cache (
cache_meta)lvcreate -l 5%FREE -n cache_meta cache /dev/nvme0n1p1
- Créer un volume logique de données de bloc de cache (
cache_block)lvcreate -l 80%FREE -n cache_block cache /dev/nvme0n1p1
- Créer un volume logique de pool de cache en combinant des volumes logiques de bloc de cache et de métadonnées de cache (combiner les étapes 5 et 6)
lvconvert --type cache-pool --poolmetadata cache/cache_meta cache/cache_block
Remarque : Le pool de cache créé porte le nom «cache_block», c’est-à-dire le même que le volume logique de données de bloc de cache créé à l’étape 6.-
Ce comportement est normal. Rechercher le groupe de volumes « cache » à l’aide de
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
-
-
Créer un volume logique de cache en liant le volume logique de pool de cache (étape 7) et le volume logique
origin_device(étape 4)lvconvert --type cache --cachepool cache/cache_block cache/origin_device
- Cela crée le périphérique de cache virtuel (dm-cache)
orign_devicecomme indiqué ci-dessous, sous le nomdm4.[root@localhost ~]# ls -l /dev/cache/origin_device lrwxrwxrwx. 1 root root 7 Jun 28 09:13 /dev/cache/origin_device -> ../dm-4
- Cela crée le périphérique de cache virtuel (dm-cache)
-
Formater le périphérique de cache virtuel avec un système de fichiers avant de l’utiliser.
mkfs.ext4 /dev/cache/origin_device
Données de performances :
Les tests de performances effectués à l’aide de l’outil FIO montrent une amélioration considérable des opérations de lecture, d’écriture et de lecture-écriture.
Le Tableau 1 présente la sortie de l’outil FIO montrant la différence de performances et l’amélioration en pourcentage avec dmcache par rapport au disque normal (disque de rotation) et la Figure 2 montre le graphique correspondant.
Ce test est effectué avec une taille de bloc de 1 Mo en mode lecture aléatoire, écriture aléatoire et lecture/écriture aléatoires combinées (50 %), en comparant le disque dur d’origine (sda) au disque avec dmcache configuré.
| FIO à BS = 1 M | E/S par seconde | ||
|---|---|---|---|
| PÉRIPHÉRIQUE | Read | Écriture | Lecture/écriture |
Disque avec dm-cache |
197 | 798 | 159 |
| sda [disque d’origine] | 124 | 118 | 58 |
| Amélioration en % | 58,87 % | 576,20 % | 174,13 % |
Tableau 1 : Amélioration des performances avec dm-cache
Figure 2 : Amélioration des performances avec dm-cache.