Contrairement au Remote Direct Memory Access (RDMA) traditionnel, l'eRDMA (elastic RDMA) s'applique à un large éventail de scénarios, tels que les bases de données en cache basées sur Redis, l'analytique des mégadonnées basée sur Spark, le modèle Weather Research and Forecasting (WRF) dans le domaine du calcul haute performance (HPC) et l'entraînement de l'IA. Utilisez l'eRDMA pour déployer des applications HPC dans le cloud afin de constituer des clusters d'applications hautes performances dotés d'une grande élasticité à moindre coût. Vous pouvez également remplacer un VPC par un réseau eRDMA pour accélérer vos applications.
Qu'est-ce que l'eRDMA ?
L'eRDMA est un réseau Remote Direct Memory Access (RDMA) élastique développé par Alibaba Cloud pour le cloud. L'eRDMA réutilise les Virtual Private Clouds (VPC) comme liaison sous-jacente et s'appuie sur un algorithme de contrôle de la congestion (CC) développé par Alibaba Cloud. Grâce à la prise en charge du RDMA, l'eRDMA offre un débit élevé et une faible latence. Contrairement au RDMA, l'eRDMA permet de mettre en place un maillage RDMA à grande échelle en quelques secondes. L'eRDMA prend en charge les applications HPC traditionnelles, les applications d'IA et les applications Transmission Control Protocol/Internet Protocol (TCP/IP).
Pourquoi choisir l'eRDMA ?
La pile de protocoles TCP/IP fournit les protocoles de communication réseau dominants, sur lesquels reposent de nombreuses applications. Avec le développement des activités liées aux centres de données, les exigences en matière de performances réseau se sont accrues, notamment en ce qui concerne la réduction de la latence et l'augmentation du débit. En raison de contraintes telles que des coûts de copie élevés, un traitement transversal de la pile de protocoles, un algorithme CC complexe et des changements de contexte fréquents, TCP/IP est devenu un goulot d'étranglement qui limite les performances des réseaux de communication.
Le RDMA permet de résoudre les problèmes mentionnés ci-dessus. Le RDMA propose des fonctionnalités telles que le zéro copie et le contournement du noyau, qui évitent les surcoûts liés à la copie des données et aux changements de contexte fréquents. Par rapport à la communication TCP/IP, le RDMA se caractérise par une faible latence, un débit élevé et une faible utilisation du CPU. Toutefois, le RDMA présente peu de scénarios d'utilisation en raison de ses prix élevés et de ses coûts d'exploitation et de maintenance.
L'eRDMA d'Alibaba Cloud est conçu pour offrir une compatibilité inclusive avec divers environnements cloud. L'eRDMA réduit la latence et diminue les exigences d'adaptation d'un large éventail d'applications aux environnements cloud, améliorant ainsi leurs performances.
Avantages de l'eRDMA
-
Hautes performances
Le RDMA contourne la pile du noyau pour transférer les données des programmes en mode utilisateur vers l'adaptateur de canal hôte (HCA) pour la transmission réseau. Cela réduit considérablement la charge du CPU et la latence. L'eRDMA offre les avantages des interfaces RDMA traditionnelles et applique le RDMA aux VPC. L'eRDMA bénéficie de la latence ultra-faible que le RDMA apporte aux réseaux cloud.
RemarqueUn HCA est une carte d'interface réseau (NIC) matérielle qui connecte un serveur à un réseau et prend en charge le RDMA.
L'eRDMA prend en charge la communication inter-zones. Dans les scénarios inter-zones, la latence réseau augmente considérablement pour atteindre un niveau comparable à celui des VPC. Si vos charges de travail nécessitent des réseaux à faible latence avec une forte cohérence, évitez le déploiement inter-zones.
-
Inclusivité
Vous pouvez activer l'eRDMA gratuitement. Pour activer l'eRDMA, il vous suffit de sélectionner l'option Elastic RDMA Interface lors de l'achat d'une instance ECS.
-
Déploiement à grande échelle
Le RDMA traditionnel repose sur des réseaux sans perte. Cela rend le déploiement à grande échelle coûteux et difficile. L'eRDMA utilise l'algorithme CC développé par Alibaba Cloud pour contrôler la qualité de la transmission dans les VPC, tels que la latence et la perte de paquets. L'eRDMA offre de bonnes performances dans les réseaux avec perte.
-
Évolutivité
Contrairement au RDMA qui nécessite une NIC matérielle distincte, l'eRDMA utilise une carte HCA RDMA dotée d'attributs cloud basée sur l'architecture Shenlong. L'eRDMA peut ajouter dynamiquement des appareils lorsque vous utilisez ECS et prend en charge la migration à chaud, ce qui permet un déploiement flexible.
-
VPC partagés
L'eRDMA dépend des interfaces réseau élastiques (ENI) et réutilise les réseaux auxquels appartiennent les ENI. Cela vous permet d'activer la fonctionnalité RDMA dans les réseaux hérités sans avoir à modifier la mise en réseau des services.
Mettre en œuvre la communication eRDMA
Activer l'eRDMA pour les instances Elastic Compute Service (ECS) : Alibaba Cloud propose des options de configuration flexibles et pratiques qui vous permettent de configurer rapidement l'eRDMA pour les instances ECS, d'activer la fonctionnalité RDMA dans les VPC et d'établir des connexions RDMA pour la communication. Pour activer l'eRDMA sur une instance ECS, sélectionnez un type d'instance compatible avec l'eRDMA, installez le pilote eRDMA sur l'instance et liez des interfaces elastic RDMA (ERI) à l'instance. Pour plus d'informations, consultez Activer l'eRDMA sur une instance ECS.
Adapter rapidement les applications à l'eRDMA : Si vous souhaitez implémenter et configurer la logique liée au RDMA dans vos applications pour répondre aux exigences de faible latence, de bande passante élevée et de faible utilisation du CPU, utilisez Network Accelerator (NetACC) ou Server Migration Center (SMC) pour adapter vos applications. Pour plus d'informations, consultez Adapter l'eRDMA et les applications.
Capacités de base et spécifications de l'eRDMA
Dans la communication réseau RDMA, Queue Pair (QP), Completion Queue (CQ), Memory Region (MR) et verbs Opcode sont les composants centraux. Ils jouent un rôle important dans la communication RDMA et garantissent l'efficacité et la faible latence de la communication réseau RDMA.
Cette section décrit les spécifications de l'eRDMA. Lorsque vous utilisez l'eRDMA, assurez-vous que les exigences de spécification du service sont respectées. Sinon, vos applications risquent de ne pas fonctionner comme prévu.
QP
Une QP est une entité de communication de base dans le RDMA. Elle se compose d'une Send Queue (SQ) et d'une Receive Queue (RQ). La QP est utilisée pour gérer les données envoyées et reçues.
Fonctionnalités : La QP permet aux applications d'envoyer et de recevoir des données. Elle constitue le cœur de la communication RDMA. La machine d'états de la QP gère l'état des connexions, de l'initialisation à la terminaison.
-
Spécifications QP eRDMA :
Élément
Spécifications
Description
Méthode d'établissement de la connexion
RDMA_CM
-
RDMA_CM est utilisé pour gérer l'établissement, la maintenance et la fermeture des connexions RDMA. Il simplifie le processus de gestion des connexions RDMA et facilite l'utilisation de la fonctionnalité RDMA par les applications. Il est couramment utilisé dans des scénarios tels que Message Passing Interface (MPI), Shared Memory Communications over Remote Direct Memory Access (SMC-R) et PolarDB SCC. Pour plus d'informations, consultez Linux rdma_cm.
ImportantPar défaut, les familles d'instances basées sur CPU qui prennent en charge l'eRDMA installent le pilote eRDMA en mode noyau en mode Standard. Dans ce mode, seule la méthode d'établissement de connexion RDMA_CM est prise en charge.
-
L'eRDMA propose le mode Compat pour les applications dans des scénarios hors bande (OOB), tels que TensorFlow, NVIDIA Collective Communications Library (NCCL) et better Remote Procedure Call (bRPC).
Important-
Par défaut, les familles d'instances basées sur GPU qui prennent en charge l'eRDMA installent le pilote eRDMA en mode noyau en mode Compat. Dans ce mode, les méthodes d'établissement de connexion RDMA_CM et OOB sont prises en charge.
-
Vous pouvez utiliser la CLI pour activer la compatibilité entre les méthodes d'établissement de connexion RDMA_CM et OOB. Pour plus d'informations, consultez Modifier le mode d'établissement de connexion de l'eRDMA pour qu'il soit compatible avec bRPC.
-
En mode Compat, 16 ports TCP supplémentaires dans la plage de 30608 à 30623 sont occupés.
-
Types de QP
RC
Les QP de type RC fournissent des services de connexion fiables. Une QP de type RC prend en charge les opérations d'envoi, les opérations d'écriture RDMA, les opérations de lecture RDMA et les opérations atomiques.
Shared Receive Queue (SRQ)
Non pris en charge.
Aucun.
Nombre maximal de QP (max_qp_num)
Ce paramètre varie selon la famille d'instances. Jusqu'à 131 071 QP peuvent être créés.
-
Le nombre maximal de QP pouvant être créés sur un périphérique ou une interface réseau RDMA.
-
Ce paramètre détermine le nombre maximal de connexions simultanées pouvant être créées dans un réseau RDMA, ce qui affecte l'extensibilité et les capacités de traitement simultané du réseau.
Profondeur maximale de la Work Request (WR) d'envoi (max_send_wr)
8 192
-
Le nombre maximal de work requests d'une file d'attente d'envoi QP.
-
Ce paramètre détermine le nombre d'opérations de transmission que la QP peut initier simultanément, ce qui affecte les performances de transmission et le débit de la QP.
Profondeur maximale de la WR de réception (max_recv_wr)
32 768
-
Le nombre maximal de work requests dans une file d'attente de réception QP.
-
Ce paramètre détermine le nombre d'opérations de réception que la QP peut gérer simultanément, ce qui affecte les performances de réception et le débit de la QP.
Nombre maximal de SGE dans une WR d'envoi (max_send_sge)
Remarque6
-
Le nombre maximal d'éléments scatter-gather (SGE) dans une WR d'envoi.
-
Ce paramètre détermine le nombre maximal de segments de mémoire qu'une QP peut gérer lors d'une seule opération d'envoi, ce qui affecte l'efficacité et la flexibilité des transferts de données.
Nombre maximal de SGE dans une WR de réception (max_recv_sge)
1
-
Le nombre maximal de SGE dans une WR de réception.
-
Ce paramètre détermine le nombre maximal de segments de mémoire qu'une QP peut traiter lors d'une opération de réception, ce qui affecte l'efficacité et la flexibilité de la réception des données.
-
CQ
La CQ est utilisée pour notifier à une application l'achèvement d'une WR. Lorsqu'une opération RDMA, telle que l'envoi ou la réception de données, est terminée, les informations d'achèvement correspondantes sont placées dans la CQ.
Fonctionnalités : La CQ est la clé de la notification asynchrone d'achèvement des opérations dans le RDMA. La CQ aide les applications à gérer les événements asynchrones et à traiter les erreurs. La CQ fournit un mécanisme permettant de notifier aux applications quelles opérations sont terminées, ce qui est essentiel pour la gestion des opérations asynchrones.
-
Spécifications CQ eRDMA :
Élément
Spécifications
Description
CQ
Le nombre de CQ varie selon le type d'instance. Le nombre maximal de CQ est deux fois supérieur au nombre de QP.
Aucun.
Vecteurs dans une CQ (vector_num)
Le nombre de vecteurs dans une CQ varie selon le type d'instance. Le nombre maximal de vecteurs dans une CQ est de 31. Le nombre de CPU est lié au nombre de QP.
-
Chaque vecteur correspond à une interruption matérielle. En utilisation réelle, chaque CPU peut être configuré avec un seul vecteur au maximum pour répondre aux exigences de communication.
-
Chaque vecteur est associé à une file d'attente d'événements d'achèvement (CEQ) dans l'eRDMA.
Profondeur maximale de la CEQ
4 096
-
La profondeur maximale de la CEQ est de 256 dans la version 0.2.34.
-
En mode événement, nous vous recommandons de ne pas lier plus de 4 096 CQ à chaque vecteur. Sinon, un débordement de la CEQ peut se produire.
Profondeur maximale de la CQ
1 048 576
Aucun.
-
Gestion de la mémoire RDMA
MR et Memory Window (MW) sont des concepts importants pour la gestion de la mémoire dans le RDMA.
-
MR : spécifie une zone de mémoire accessible par le RDMA. Après avoir enregistré la MR, une application peut accorder au matériel RDMA un accès direct à cette zone de mémoire.
Fonctionnalités : La MR permet au RDMA d'effectuer directement des opérations, telles que des lectures et des écritures, sur la mémoire d'un hôte distant. C'est la base de la fonctionnalité zéro copie du RDMA.
-
Spécifications MR eRDMA :
Élément
Spécifications
MR
Le nombre de MR varie selon le type d'instance. Le nombre maximal de MR est deux fois supérieur au nombre de QP.
Taille maximale de la MR
La taille des MR varie selon le matériel sous-jacent. La taille minimale de MR prise en charge est de 2 Go et la taille maximale de MR prise en charge est de 64 Go.
MW : Alibaba Cloud ne prend pas en charge les MW.
Interfaces verbs
verbs constitue la base de la programmation RDMA, qui définit un ensemble d'interfaces pour contrôler le comportement des périphériques RDMA. Opcode est le code utilisé dans ces interfaces pour spécifier un type d'opération spécifique.
Fonctionnalités : Opcode définit les types d'opérations RDMA, telles que l'envoi (SEND), la réception (RECEIVE), la lecture (READ) et l'écriture (WRITE). Opcode donne des instructions spécifiques au matériel RDMA à exécuter, permettant aux applications d'interagir directement avec le matériel RDMA pour des transferts de données efficaces.
-
Prise en charge d'Opcode :
Opcode
L'opération est-elle prise en charge ?
RDMA Write
Pris en charge
RDMA Write with Immediate
Pris en charge
RDMA Read
Pris en charge
Send
Pris en charge
Send with Invalidate
Pris en charge
Send with Immediate
Pris en charge
Send with Solicited Event
Pris en charge
Local Invalidate
Pris en charge
Atomic Operation
Pris en charge