RDMA (Remote Direct Memory Access) est une technologie de communication réseau dérivée du DMA (Direct Memory Access). Elle permet aux applications utilisateur de contourner le noyau du système d'exploitation (CPU) et d'interagir directement avec les cartes d'interface réseau (NIC) pour la transmission des données, offrant ainsi une bande passante très élevée et une latence très faible. Initialement développé pour l'informatique de haute performance (HPC), RDMA est maintenant largement adopté dans les centres de données。.
Le principe de base de RDMA consiste à exploiter le matériel spécialisé des adaptateurs de réseau (par exemple, les moteurs RDMA des cartes d'interface réseau) pour contourner le noyau du système d'exploitation et effectuer des transferts de mémoire directs en dessous de la couche de transport du réseau. Ce mécanisme minimise la latence et les frais généraux de l'unité centrale tout en améliorant l'efficacité du réseau。
En RDMA, la communication entre l'expéditeur et le destinataire s'effectue par l'intermédiaire de l'adaptateur RDMA. Tout d'abord, l'expéditeur enregistre le tampon de données à envoyer dans la mémoire de l'adaptateur RDMA et envoie son descripteur (contenant l'adresse, la taille et d'autres informations sur les données) au récepteur. Le récepteur enregistre le tampon de réception auprès de l'adaptateur RDMA et l'informe de l'adresse du tampon de réception. Ensuite, l'expéditeur transfère les données directement du tampon d'envoi au tampon de réception par l'intermédiaire de l'adaptateur RDMA sans l'intervention du système d'exploitation. Ce processus est appelé opération d'écriture RDMA. Le récepteur peut également lire les données directement à partir de la mémoire de l'émetteur par le biais d'une opération de lecture RDMA.
RDMA prend en charge trois types d'opérations de base : les opérations d'écriture, les opérations de lecture et les opérations atomiques. Les opérations d'écriture permettent à un nœud d'écrire des données directement dans la mémoire d'un autre nœud. Les opérations de lecture permettent à un nœud de lire directement des données dans la mémoire d'un autre nœud. Les opérations atomiques sont des opérations spéciales qui peuvent effectuer certaines opérations atomiques sur des nœuds distants, telles que la comparaison et l'échange (CAS).
Le principe de fonctionnement de RDMA consiste principalement à réduire le délai de transmission des données et la charge de l'unité centrale grâce à l'accès direct à la mémoire au niveau du matériel. Par rapport à la méthode de communication TCP/IP traditionnelle, RDMA n'a pas besoin d'établir une connexion entre l'expéditeur et le destinataire, ni d'effectuer un traitement complexe du protocole, ce qui lui permet d'être plus performant et de réduire le temps de latence. En outre, RDMA prend également en charge des fonctions telles que la copie zéro et le contournement du noyau, qui peuvent encore améliorer l'efficacité de la transmission des données.
En général, le principe technique de RDMA est d'utiliser du matériel dédié sur la carte réseau via un accès direct à la mémoire, de contourner le noyau du système d'exploitation et de réaliser une communication réseau efficace, à faible latence et à faible occupation de l'unité centrale.
2. Les caractéristiques techniques de RDMA comprennent principalement les aspects suivants :
* Aucune intervention de l'unité centrale n'est nécessaire : L'une des principales caractéristiques de la technologie RDMA est qu'elle ne nécessite pas d'intervention de l'unité centrale. Les applications peuvent accéder directement à la mémoire de l'hôte distant sans consommer de ressources CPU dans l'hôte distant. Cela réduit considérablement le délai et l'occupation de l'unité centrale pendant la transmission des données et améliore les performances globales.
* Contournement du noyau : RDMA prend en charge la technologie de contournement du noyau, c'est-à-dire que les applications peuvent directement effectuer la transmission de données en mode utilisateur sans passer du mode noyau au mode utilisateur. Cela permet de réduire davantage le délai de transmission des données et d'améliorer l'efficacité.
* Copie zéro : La technologie RDMA présente la caractéristique de la copie zéro, qui évite le processus de copie des données d'un stockage à l'autre par l'unité centrale. Dans la communication TCP/IP, la transmission de données entre les hôtes nécessite de fréquentes opérations de copie, et RDMA réduit ces opérations de copie inutiles grâce à l'accès direct à la mémoire, améliorant ainsi l'efficacité de la transmission de données.
* Largeur de bande élevée et faible latence : Comme RDMA contourne la pile de protocoles fournie par le système d'exploitation et effectue directement la transmission de données sous la couche de transport du réseau, il offre une meilleure utilisation de la bande passante et un temps de latence plus faible. RDMA convient donc parfaitement aux scénarios de communication réseau qui nécessitent des performances élevées et une faible latence.
* Support matériel : RDMA nécessite un support matériel spécifique de la carte réseau, qui dispose généralement d'un moteur RDMA dédié au traitement des communications RDMA. Ce support matériel permet à RDMA d'atteindre ses caractéristiques de haute performance et de faible latence.
En général, les caractéristiques techniques de RDMA comprennent l'absence d'intervention de l'unité centrale, le contournement du noyau, la copie zéro, une bande passante élevée et une faible latence, ainsi que la prise en charge du matériel. Ces caractéristiques font de RDMA une technologie de communication réseau efficace et à faible latence, particulièrement adaptée aux scénarios qui nécessitent le traitement de grandes quantités de données et des communications réseau de haute performance.
3. Scénarios d'application de RDMA
Les scénarios d'application de la technologie RDMA sont très vastes. Voici quelques-uns des principaux scénarios d'application :
* Centre de données : Dans un centre de données, les serveurs doivent fréquemment transmettre et échanger de grandes quantités de données. Les performances élevées et la faible latence de RDMA en font un outil très adapté aux communications réseau dans les centres de données, ce qui permet d'améliorer l'efficacité de la transmission des données, de réduire la latence et d'améliorer les performances globales.
* Le calcul de haute performance (HPC) : Le domaine de l'informatique de haute performance nécessite le traitement de grandes quantités de données et l'exécution de calculs complexes. L'accès direct à la mémoire et la technologie "zéro copie" de RDMA permettent de réduire les frais de transmission des données et d'améliorer l'efficacité des calculs. En même temps, RDMA prend en charge le traitement parallèle à grande échelle et convient parfaitement au calcul parallèle multi-nœuds dans les environnements HPC.
* Système de stockage distribué : Dans un système de stockage distribué, les nœuds doivent fréquemment effectuer des opérations de lecture et d'écriture de données. Les caractéristiques de transmission efficace des données et d'accès direct à la mémoire de RDMA peuvent améliorer l'efficacité de la lecture et de l'écriture des données entre les nœuds et améliorer les performances globales des systèmes de stockage distribués.
* L'informatique en nuage : Dans un environnement d'informatique en nuage, la communication et la transmission de données entre les machines virtuelles (VM) sont des exigences courantes. RDMA peut être utilisé pour assurer une communication efficace entre les machines virtuelles et améliorer les performances globales de l'environnement informatique en nuage.
En général, bien que RDMA présente certaines lacunes et limitations, il reste une technologie de communication réseau très efficace dans de nombreux scénarios de haute performance et de faible latence. Lorsque vous décidez d'utiliser RDMA, vous devez évaluer son applicabilité et ses performances en fonction des exigences et des environnements spécifiques de l'application.