Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Les technologies d'amélioration des performances basées sur l'utilisation de SSD, largement utilisées dans les systèmes de stockage, existent depuis longtemps. Avant tout, il s'agit de l'utilisation de SSD comme espace de stockage, ce qui est 100% efficace mais coûteux. C'est pourquoi des technologies de tiering et de mise en cache sont employées, où les SSD sont utilisés uniquement pour les données les plus sollicitées (les « chaudes »). Le tiering est bon pour des scénarios d'utilisation prolongée (jours-semaines) des données « chaudes ». En revanche, la mise en cache est pour une utilisation à court terme (minutes-heures). Ces deux options sont mises en œuvre dans les systèmes de stockage. QSAN XCubeSAN. Dans cet article, nous examinerons la mise en œuvre du deuxième algorithme – la mise en cache SSD.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Le principe de la technologie de mise en cache SSD est d'utiliser le SSD comme un cache intermédiaire entre les disques durs et la mémoire vive du contrôleur. La performance du SSD est bien sûr inférieure à celle du cache natif du contrôleur, mais sa capacité est d'un ordre de grandeur supérieur. Ainsi, nous obtenons un compromis entre vitesse et volume.

Les indicateurs pour l'utilisation de cache SSD en lecture :

  • La prédominance des opérations de lecture par rapport aux opérations d'écriture (caractéristique fréquente des bases de données et des applications web) ;
  • La présence d'un goulet d'étranglement en termes de performance de l'ensemble des disques durs ;
  • Le volume des données sollicitées est inférieur au volume du cache SSD.

Les indicateurs pour l'utilisation de cache SSD en lecture+écriture sont les mêmes raisons, à l'exception de la nature des opérations – de type mixte (par exemple, serveur de fichiers).

La plupart des fournisseurs de systèmes de stockage utilisent dans leurs produits le cache SSD uniquement pour les opérations de lecture. La différence fondamentale QSAN avec eux est la possibilité d'utiliser le cache également pour l'écriture. Pour activer la fonctionnalité de mise en cache SSD dans les systèmes de stockage QSAN, il est nécessaire d'acquérir une licence séparée (fournie sous forme électronique).

Le cache SSD dans le XCubeSAN est physiquement réalisé sous forme de pools de cache SSD distincts. Le système peut en avoir jusqu'à quatre. Chaque pool utilise, bien entendu, son propre ensemble de SSD. Dans les propriétés du disque virtuel, nous définissons s'il utilisera le pool de cache et lequel. L'activation et la désactivation de l'utilisation du cache pour les volumes peuvent être effectuées en mode en ligne sans interruption des entrées/sorties. Il est également possible d'ajouter ou de retirer des SSD du pool à chaud. Lors de la création d'un pool de cache SSD, il est nécessaire de choisir en quel mode il fonctionnera : seulement en lecture ou en lecture+écriture. Cela dépend de sa organisation physique. Étant donné qu'il peut y avoir plusieurs pools de cache, leurs fonctionnalités peuvent différer (c'est-à-dire que le système peut avoir simultanément des pools de cache pour la lecture et pour la lecture+écriture).

Dans le cas où le pool de cache est utilisé uniquement pour la lecture, il peut être composé de 1 à 8 SSD. Les disques n'ont pas nécessairement besoin d'être de même capacité ni du même fabricant, car ils sont regroupés dans une structure NRAID+. Tous les SSD dans le pool sont utilisés en commun. Le système essaie de paralléliser les requêtes entrantes entre tous les SSD pour atteindre les meilleures performances. En cas de défaillance d'un des SSD, rien de grave ne se produira : le cache ne contient qu'une copie des données stockées sur l'ensemble des disques durs. La capacité de cache SSD disponible sera simplement réduite (ou nulle dans le cas d'un pool de cache SSD à partir d'un seul disque).

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Si le cache est utilisé pour les opérations de lecture + écriture, le nombre de SSD dans le pool doit être un multiple de deux, car le contenu est répliqué sur des paires de disques (une structure NRAID 1+ est utilisée). La duplication du cache est nécessaire car il peut contenir des données qui n'ont pas encore été écrites sur les disques durs. Dans ce cas, la défaillance d'un SSD dans le pool de cache entraînerait une perte d'information. En cas de NRAID 1+, la défaillance d'un SSD conduira simplement à un passage du cache en état de fonctionnement « seulement en lecture » avec le vidage des données non enregistrées sur l'ensemble des disques durs. Après le remplacement du SSD défectueux, le cache reprendra son mode de fonctionnement initial. En passant, pour plus de sécurité, on peut assigner un hot spare dédié au cache fonctionnant en lecture + écriture.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Lors de l'utilisation de la fonction de mise en cache SSD dans XCubeSAN, il existe un certain nombre d'exigences concernant la capacité de mémoire des contrôleurs de stockage : plus la mémoire système est grande, plus le volume du pool de cache sera disponible.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Contrairement à la plupart des fabricants de stockage qui ne proposent qu'une option d'activation/désactivation pour la configuration du cache SSD, QSAN offre de plus grandes possibilités. En particulier, il est possible de choisir le mode de fonctionnement du cache en fonction de la nature de la charge de travail. Trois modèles prédéfinis sont disponibles, qui se rapprochent le plus de leurs services correspondants : base de données, système de fichiers, service web. De plus, l'administrateur peut créer son propre profil en définissant les valeurs des paramètres requis :

  • Taille du bloc (Taille du bloc de cache) – 1/2/4 Mo
  • Nombre de requêtes de lecture du bloc pour qu'il soit copié dans le cache (Seuil de remplissage par lecture) – 1..4
  • Nombre de requêtes d'écriture du bloc pour qu'il soit copié dans le cache (Seuil de remplissage par écriture) – 0..4

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Les profils peuvent être modifiés "à la volée", mais, bien sûr, avec une réinitialisation du contenu du cache et son nouveau "réchauffement".

En considérant le principe de fonctionnement du cache SSD, on peut identifier les principales opérations lors de son utilisation :

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Lecture de données lorsque celles-ci ne sont pas présentes dans le cache

  1. La requête de l'hôte parvient au contrôleur;
  2. Comme les données demandées ne sont pas dans le cache SSD, elles sont lues sur les disques durs;
  3. Les données lues sont renvoyées à l'hôte. En même temps, il est vérifié si ces blocs sont "chauds";
  4. Si c'est le cas, elles sont copiées dans le cache SSD pour une utilisation ultérieure.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Lecture de données lorsque celles-ci sont présentes dans le cache

  1. La requête de l'hôte parvient au contrôleur;
  2. Comme les données demandées se trouvent dans le cache SSD, elles sont lues à partir de là;
  3. Les données lues sont renvoyées à l'hôte.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Écriture de données lors de l'utilisation du cache en mode lecture

  1. La requête d'écriture de l'hôte parvient au contrôleur;
  2. Les données sont écrites sur les disques durs;
  3. Une réponse confirmant l'écriture réussie est renvoyée à l'hôte;
  4. En même temps, il est vérifié si le bloc est "chaud" (le paramètre Seuil de remplissage par écriture est comparé). Si c'est le cas, il est copié dans le cache SSD pour une utilisation ultérieure.

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Écriture de données lors de l'utilisation du cache en mode lecture+écriture

  1. La requête d'écriture de l'hôte parvient au contrôleur;
  2. Les données sont écrites dans le cache SSD;
  3. Une réponse confirmant l'écriture réussie est renvoyée à l'hôte;
  4. Les données du cache SSD sont enregistrées en arrière-plan sur des disques durs;

Vérification en cours

Stand de test

2 serveurs (CPU: 2 x Xeon E5-2620v3 2.4Hz / RAM: 32 Go) sont connectés par deux ports via Fibre Channel 16G directement au SAN XCubeSAN XS5224D (16 Go RAM / contrôleur).

16 x Seagate Constellation ES, ST500NM0001, 500 Go, SAS 6Gb/s, configurés en RAID5 (15+1), ont été utilisés pour le tableau de données et 8 x HGST Ultrastar SSD800MH.B, HUSMH8010BSS200, 100 Go, SAS 12Gb/s en tant que cache.

2 volumes ont été créés : un pour chaque serveur.

Test 1. Cache SSD en mode lecture seule avec 1-8 SSD

Cache SSD

  • Type d'I/O : Personnalisation
  • Taille de bloc du cache : 4 Mo
  • Seuil de peuplement lors de la lecture : 1
  • Seuil de peuplement lors de l'écriture : 0

Modèle d'I/O

  • Outil : IOmeter V1.1.0
  • Travailleurs : 1
  • En attente (Profondeur de la file) : 128
  • Spécifications d'accès : 4 Ko, 100% Lecture, 100% Aléatoire

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

En théorie, plus il y a de SSD dans le pool de cache, meilleure est la performance. Cela s'est également confirmé dans la pratique. Cependant, une augmentation significative du nombre de SSD avec peu de volumes ne produit pas d'effet explosif.

Test 2. Cache SSD en mode lecture + écriture avec 2-8 SSD

Cache SSD

  • Type d'I/O : Personnalisation
  • Taille de bloc du cache : 4 Mo
  • Seuil de peuplement lors de la lecture : 1
  • Seuil de peuplement lors de l'écriture : 1

Modèle d'I/O

  • Outil : IOmeter V1.1.0
  • Travailleurs : 1
  • En attente (Profondeur de la file) : 128
  • Spécifications d'accès : 4 Ko, 100% Écriture, 100% Aléatoire

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Le même résultat : une augmentation explosive des performances et un scalabilité avec l'augmentation du nombre de SSD.

Dans les deux tests, le volume des données de travail était inférieur au volume total du cache. Ainsi, avec le temps, tous les blocs ont été copiés dans le cache. Le travail s'est donc finalement effectué sur les SSD, sans presque toucher aux disques durs. Ces tests visaient à démontrer visuellement l'efficacité du préchauffage du cache et la scalabilité de ses performances en fonction du nombre de SSD.

Revenons maintenant sur terre et examinons une situation plus réaliste où le volume de données dépasse la taille du cache. Afin que le test se déroule dans un temps raisonnable (le temps de « préchauffage » du cache augmente considérablement avec la taille du volume), nous nous limiterons à une taille de volume de 120 Go.

Test 3. Simulation de fonctionnement de base de données

Cache SSD

  • Type d'I/O : Base de données
  • Taille de bloc du cache : 1 Mo
  • Seuil de peuplement lors de la lecture : 2
  • Seuil de peuplement lors de l'écriture : 1

Modèle d'I/O

  • Outil : IOmeter V1.1.0
  • Travailleurs : 1
  • En attente (Profondeur de la file) : 128
  • Spécifications d'accès : 8 Ko, 67% Lecture, 100% Aléatoire

Implémentation du caching SSD dans le SAN QSAN XCubeSAN

Verdict

En conclusion évidente, on peut constater une bonne efficacité de l'utilisation du cache SSD pour améliorer les performances de tout SAN. Applicablement à QSAN XCubeSAN Cette affirmation s'applique pleinement : la fonction de mise en cache SSD est réalisée de manière excellente. Cela concerne le support des modes de lecture et de lecture + écriture, la configuration flexible pour tous les scénarios d'utilisation, ainsi que la performance globale du système. Par conséquent, pour un coût très raisonnable (le prix de la licence est comparable à celui de 1 à 2 SSD), il est possible d'augmenter considérablement la performance générale.

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster