Dans notre article précédent, nous avons partagé nos mesures des performances de l'hyperviseur après avoir installé des correctifs contre les vulnérabilités Meltdown et Spectre. Aujourd'hui, il est temps de parler des performances de l'entrepôt de données.
Grâce aux optimisations de VzKernel et à sa recompilation avec l'option «Retpoline», nous avons remplacé les séquences de code machine vulnérables et avons pu éliminer presque complètement les problèmes de performances dus à la nécessité de protéger l'hyperviseur des vulnérabilités des processeurs Intel. En conséquence, la diminution de la productivité a été réduite à 1-2%. Cependant, dans ce contexte, beaucoup ont des questions sur le fonctionnement de l'entrepôt de données. Et cela n'est pas surprenant, car dans les environnements hyperconvergés, le stockage de données réparties joue un rôle fondamental et, avec un stockage lent, tous les avantages de performances des machines virtuelles et des conteneurs peuvent être vains.
Aujourd'hui, nous voulons partager avec vous deux tests de démonstration qui ont été effectués pour évaluer les performances des machines virtuelles et la densité des données dans le stockage distribué VZ Storage, qui est intégré à la famille de produits Virtuozzo 7. Un cluster de 6 nœuds a été utilisé comme banc de test, avec stockage direct des données seuls 5 d'entre eux étaient occupés et sur le nœud restant, les machines virtuelles étaient localisées.
Chaque nœud avait la configuration suivante:
- Processeur: 2 x Intel Xeon E5-2620 v4 @ 2,1 GHz
- RAM: 64 Go DDR4 2133 MHz
- NET: 2 x 10 Gb / s - deux sous-réseaux séparés pour séparer le trafic de test et le trafic de stockage de données réparti
- Capacités:
- Disque dur: 8 x 1 To à 7200 tr / min - dont 7 disques durs pour serveurs en morceaux (CS)
- SSD: 400 Go Intel DC P3600 PCIe - pour les métadonnées (MDS), la journalisation et le cache client
Un des disques sur chaque nœud a été alloué pour le système et les 7 restants pour le serveur de blocs (CS) pour le stockage des données. En conséquence, le cluster s'est avéré être 42 serveurs de blocs. Pour gérer cette économie, nous avons lancé 3 serveurs de métadonnées (MDS). La réplication des données a été mise en œuvre selon le schéma 3: 2, qui peut être considéré comme une solution standard pour la plupart des tâches typiques.
Selon les résultats du test WebBench, où nous avons évalué les performances et la densité des machines virtuelles avec Windows Server 2012 R2, le nombre de demandes de stockage virtuel dans VZ7 est beaucoup plus élevé, et les performances globales sont 30% supérieures aux résultats de la génération de stockage précédente fournie avec VZ6 . Dans le même temps, VZ Storage et l'hyperviseur Virtuozzo 7 peuvent prendre en charge le fonctionnement simultané de plus de 100 machines virtuelles sur un cluster de cette taille, leur offrant des performances acceptables.
WebBench: VM de densité Windows 2012 R2 basé sur VStorage
Le deuxième test a été effectué à l'aide de l'utilitaire SysBench et n'a pas émulé les requêtes OLTP, mais les transactions OLTP. Nous avons chargé les mêmes machines virtuelles avec Microsoft Windows Server 2012 R2 sur le même cluster et avons obtenu des résultats encore plus intéressants. En plus de l'avantage de performance avec des VM à partir de 30 pièces, VZ7 a montré une densité de distribution plus élevée, faisant face au fonctionnement simultané de plus de 100 machines virtuelles. Dans le même temps, un stockage obsolète sur VZ6 présente des performances acceptables pour un maximum de 60 machines virtuelles sur un cluster réduit.
SysBench: densité de machine virtuelle Windows 2012 R2 basée sur VStorage

Et un peu plus sur le codage d'effacement
En plus de tout ce qui précède, Virtuozzo reste un partisan de l'utilisation des technologies de compression basées sur les codes Reed-Solomon ou Erasure Coding. Malgré une large discussion sur cette technologie, beaucoup préfèrent encore utiliser des copies directes et stocker jusqu'à 3 copies de données sur leur réseau. Cependant, comme la pratique l'a montré, cette approche réduit les performances du réseau et ralentit le processus de sauvegarde.
Pour vérifier ce fait, nous avons assemblé deux clusters, 6 nœuds chacun. Les deux clusters ont lancé 3 serveurs de métadonnées (MDS) et 66 serveurs de blocs (CS) pour stocker les données sur des disques SAS 15K. L'un des clusters a été utilisé pour héberger des machines virtuelles et l'autre pour la sauvegarde. Nous avons essayé deux façons de placer des sauvegardes: EC en mode 3 + 2 (deux sommes de hachage pour trois données) et une sauvegarde complète 3: 2 (deux copies complètes des données sont stockées sur le réseau). Du point de vue de la protection des données, les configurations sont identiques - elles permettent de récupérer toutes les informations même lorsque deux points de défaillance se produisent. Cependant, en termes de performances, la CE affiche de bien meilleurs résultats.
Codage d'effacement et réplication de données dans un script de sauvegarde de machine virtuelle parallèle
L'abscisse indique le nombre de machines virtuelles impliquées simultanément dans les processus de sauvegarde. Et le long de l'axe des ordonnées se trouve la vitesse de sauvegarde moyenne en Mo / s. La vitesse est calculée par nœud, de sorte que le débit total et les performances du cluster sont beaucoup plus élevés, un multiple du nombre de nœuds. Le graphique montre qu'avec une sauvegarde simultanée de 15 machines virtuelles à partir de chaque nœud, le gain de performances dû à l'utilisation d'EC est au niveau de 10%.
Conclusion
Ces tests montrent les avantages de l'architecture mise à jour et du fonctionnement amélioré du stockage VZ lorsque vous travaillez avec des machines virtuelles MS Windows, qui sont traditionnellement plus difficiles à optimiser et compactes que les machines virtuelles avec Linux invité, qui peuvent généralement être converties en conteneurs système. Dans ce test, nous avons utilisé des disques durs SAS 15K, pas des disques SSD, pour lesquels les résultats seraient encore plus élevés en raison d'une augmentation du temps de réponse global et de la vitesse du sous-système de stockage.