Remote Direct Memory Access, RDMA en abrégé et en français « Accès direct à la mémoire à distance », permet d’envoyer ra­pi­de­ment et fa­ci­le­ment des données de la mémoire prin­ci­pale d’un système in­for­ma­tique à la mémoire prin­ci­pale d’un autre or­di­na­teur. Cette tech­no­lo­gie est par­ti­cu­liè­re­ment utile lorsqu’il s’agit de traiter de grands ensembles de données ou des processus complexes, tels que ceux né­ces­saires à l’ap­pren­tis­sage machine. Mais qu’est-ce exac­te­ment que la tech­no­lo­gie RDMA et comment fonc­tionne-t-elle ?

Remote Direct Memory Access (RDMA) : dé­fi­ni­tion

Comme pour l’accès direct à la mémoire (DMA), l’accès direct à distance à la mémoire (ou RDMA) permet de trans­fé­rer des données di­rec­te­ment de la mémoire prin­ci­pale d’un or­di­na­teur à la mémoire d’un autre système. Dans ce cas, les systèmes d’ex­ploi­ta­tion, l’unité centrale ou le cache sont com­plè­te­ment laissés de côté, de sorte que moins de res­sources ma­té­rielles sont utilisées. Pour cela, le transfert de mémoire avec RDMA passe par sa propre mémoire tampon, dans laquelle l’uti­li­sa­teur transfère ses données. La tech­no­lo­gie accède à la carte réseau d’un système, la trans­mis­sion s’ef­fec­tuant en standard via Ethernet ou In­fi­ni­Band.

Dé­fi­ni­tion

Remote Direct Memory Access est une tech­no­lo­gie basée sur le Direct Memory Access (accès direct à la mémoire). Il permet de trans­fé­rer des données de la mémoire de travail d’un or­di­na­teur à la mémoire de travail d’un autre système sans imposer de charge aux systèmes d'ex­ploi­ta­tion, au cache ou au CPU.

La tech­no­lo­gie RDMA est déjà supportée par de nombreux produits dif­fé­rents (hardware et software). Il s’agit, par exemple, des solutions suivantes :

  • Apache Hadoop
  • Spark
  • Baidu Paddle
  • Serveur Dell EMC PowerEdge
  • Pro­ces­seur Intel Xeon Scalable
  • Serveur Microsoft Windows (2012 et plus récents)

Comment fonc­tionne la tech­no­lo­gie RDMA ?

Pour que l’échange de données via la RDMA puisse fonc­tion­ner, il est tout d’abord né­ces­saire de disposer d’un ensemble de pro­to­coles ap­pro­priés dans la carte réseau. En général, le protocole TCP/IP est utilisé comme base. En effet, ce n’est qu’avec un protocole de transport approprié que la tech­no­lo­gie peut prendre en charge, par exemple, le « Zero Copy Net­wor­king » - un processus qui n’utilise pas le pro­ces­seur de l’or­di­na­teur. Lorsque les deux systèmes peuvent utiliser la tech­no­lo­gie Remote Direct Memory Access, le transfert de données entre eux est nettement plus rapide qu’entre des or­di­na­teurs sans le support RDMA.

Note

Remote Direct Memory Access est par­ti­cu­liè­re­ment utile pour les processus pa­ral­lèles avec des or­di­na­teurs à haute per­for­mance.

Les tech­no­lo­gies de réseau et les in­ter­faces suivantes offrent les meil­leures con­di­tions pour un transfert sans problèmes avec RDMA :

  • RDMA over Converged Ethernet (RoCE) : RoCE permet le RDMA sur une connexion Ethernet.
  • Internet Wide Area RDMA Protocol (IWARP) : pour le transfert de données, l’IWARP accède au protocole de transport TCP ou, en al­ter­na­tive, au streaming TCP. L’IWARP a été créé par l’Internet En­gi­nee­ring Task Force (IETF) pour écrire des tâches et des processus di­rec­te­ment dans des ap­pli­ca­tions d’un autre système.
  • In­fi­ni­Band : In­fi­ni­Band est un standard de com­mu­ni­ca­tion pour les or­di­na­teurs à haute per­for­mance per­met­tant de trans­fé­rer des fichiers avec une faible latence. Il est souvent utilisé dans les centres de données pour relier les clusters d’or­di­na­teurs entre eux. RDMA via In­fi­ni­Band est l’une des méthodes les plus po­pu­laires pour l’échange rapide de données.

Remote Direct Memory Access peut également être utilisé en com­bi­nai­son avec des supports Flash ou SSD et des NVDIMM (Non-Volatile Dual In-line Memory Modules).

Le dé­ve­lop­pe­ment de la tech­no­lo­gie RDMA est encore en plein essor, car avec RDMA over Fabrics la prochaine pos­si­bi­lité d’ap­pli­ca­tion est déjà en route : Fabric (ou fibre) est utilisé pour désigner les ar­chi­tec­tures entre plusieurs serveurs et or­di­na­teurs. Celles-ci prennent ensuite en charge le transfert de données via les réseaux Fibre Channel (réseaux de stockage) et PCI Express (Standard pour les con­nexions à haute per­for­mance).

Quels sont les avantages et les in­con­vé­nients du Remote Direct Memory Access?

L’un des prin­ci­paux avantages du RDMA est sa vitesse su­pé­rieure à celle d’autres tech­no­lo­gies et pro­to­coles de transfert de données tels que iSCSI (protocole SCSI sur TCP), Fibre Channel (FC) ou Fibre Channel sur Ethernet (FCoE). Toutefois, la vitesse réelle de l’échange de données dépend aussi de la variante RDMA utilisée. Ethernet et In­fi­ni­Band sont par­ti­cu­liè­re­ment po­pu­laires, car ils per­met­tent des vitesses de transfert de 10 à 100 gigabits par seconde. Cela convient donc par­ti­cu­liè­re­ment aux ap­pli­ca­tions qui né­ces­si­tent une grande puissance de calcul, telles que les bases de données dis­tri­buées, l’analyse de données vo­lu­mi­neuses ou encore les in­ter­ven­tions dans les centres de données.

Toutefois, RDMA présente également des in­con­vé­nients par rapport aux Fibre Channels, qui sont encore utilisés par de nom­breuses en­tre­prises. Pour intégrer et mettre en place la RDMA, les en­tre­prises doivent en effet faire des in­ves­tis­se­ments élevés, car la tech­no­lo­gie nécessite l’achat de nouveaux matériels et de nouveaux com­po­sants de protocole. Les coûts pour le Remote Direct Memory Access sont donc parfois con­si­dé­ra­ble­ment plus élevés que ceux de la FC ou du FCoE. Enfin, l’échange rapide de données avec RDMA ne fonc­tionne que si tous les systèmes sont équipés et pilotés grâce à cette tech­no­lo­gie.

Aller au menu principal