Qu’est-ce que Remote Direct Memory Access (RDMA) ?

Remote Direct Memory Access, RDMA en abrégé et en français « Accès direct à la mémoire à distance », permet d’envoyer rapidement et facilement des données de la mémoire principale d’un système informatique à la mémoire principale d’un autre ordinateur. Cette technologie est particulièrement utile lorsqu’il s’agit de traiter de grands ensembles de données ou des processus complexes, tels que ceux nécessaires à l’apprentissage machine. Mais qu’est-ce exactement que la technologie RDMA et comment fonctionne-t-elle ?

Remote Direct Memory Access (RDMA) : définition

Comme pour l’accès direct à la mémoire (DMA), l’accès direct à distance à la mémoire (ou RDMA) permet de transférer des données directement de la mémoire principale d’un ordinateur à la mémoire d’un autre système. Dans ce cas, les systèmes d’exploitation, l’unité centrale ou le cache sont complètement laissés de côté, de sorte que moins de ressources matérielles sont utilisées. Pour cela, le transfert de mémoire avec RDMA passe par sa propre mémoire tampon, dans laquelle l’utilisateur transfère ses données. La technologie accède à la carte réseau d’un système, la transmission s’effectuant en standard via Ethernet ou InfiniBand.

Définition

Remote Direct Memory Access est une technologie basée sur le Direct Memory Access (accès direct à la mémoire). Il permet de transférer des données de la mémoire de travail d’un ordinateur à la mémoire de travail d’un autre système sans imposer de charge aux systèmes d'exploitation, au cache ou au CPU.

La technologie RDMA est déjà supportée par de nombreux produits différents (hardware et software). Il s’agit, par exemple, des solutions suivantes :

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

Comment fonctionne la technologie RDMA ?

Pour que l’échange de données via la RDMA puisse fonctionner, il est tout d’abord nécessaire de disposer d’un ensemble de protocoles approprié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 technologie peut prendre en charge, par exemple, le « Zero Copy Networking » - un processus qui n’utilise pas le processeur de l’ordinateur. Lorsque les deux systèmes peuvent utiliser la technologie Remote Direct Memory Access, le transfert de données entre eux est nettement plus rapide qu’entre des ordinateurs sans le support RDMA.

Note

Remote Direct Memory Access est particulièrement utile pour les processus parallèles avec des ordinateurs à haute performance.

Les technologies de réseau et les interfaces suivantes offrent les meilleures conditions 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 alternative, au streaming TCP. L’IWARP a été créé par l’Internet Engineering Task Force (IETF) pour écrire des tâches et des processus directement dans des applications d’un autre système.
  • InfiniBand : InfiniBand est un standard de communication pour les ordinateurs à haute performance permettant de transférer des fichiers avec une faible latence. Il est souvent utilisé dans les centres de données pour relier les clusters d’ordinateurs entre eux. RDMA via InfiniBand est l’une des méthodes les plus populaires pour l’échange rapide de données.

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

Le développement de la technologie RDMA est encore en plein essor, car avec RDMA over Fabrics la prochaine possibilité d’application est déjà en route : Fabric (ou fibre) est utilisé pour désigner les architectures entre plusieurs serveurs et ordinateurs. 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 connexions à haute performance).

Quels sont les avantages et les inconvénients du Remote Direct Memory Access?

L’un des principaux avantages du RDMA est sa vitesse supérieure à celle d’autres technologies et protocoles 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 InfiniBand sont particulièrement populaires, car ils permettent des vitesses de transfert de 10 à 100 gigabits par seconde. Cela convient donc particulièrement aux applications qui nécessitent une grande puissance de calcul, telles que les bases de données distribuées, l’analyse de données volumineuses ou encore les interventions dans les centres de données.

Toutefois, RDMA présente également des inconvénients par rapport aux Fibre Channels, qui sont encore utilisés par de nombreuses entreprises. Pour intégrer et mettre en place la RDMA, les entreprises doivent en effet faire des investissements élevés, car la technologie nécessite l’achat de nouveaux matériels et de nouveaux composants de protocole. Les coûts pour le Remote Direct Memory Access sont donc parfois considérablement plus élevés que ceux de la FC ou du FCoE. Enfin, l’échange rapide de données avec RDMA ne fonctionne que si tous les systèmes sont équipés et pilotés grâce à cette technologie.