RDMA - Technologie clé pour les réseaux arithmétiques

Le réseau arithmétique doit résoudre le problème de la fourniture de puissance arithmétique, et plusieurs technologies clés de puissance arithmétique, dont l'accès direct aux données à distance (RDMA), sont étroitement liées aux indicateurs de performance du réseau.

RDMA est l'abréviation de Remote Direct Memory Access, qui est créée pour résoudre le retard de traitement des données côté serveur dans la transmission réseau.

RDMA transfère les données directement dans la zone de stockage d'un ordinateur sur le réseau, déplaçant rapidement les données d'un système vers la mémoire du système distant sans aucun impact sur le système d'exploitation, de sorte qu'il n'est pas nécessaire d'utiliser de nombreuses fonctions de traitement informatique. Il élimine la surcharge de la réplication de la mémoire externe et de la commutation de contexte, libérant ainsi de la bande passante mémoire et des cycles CPU pour améliorer les performances du système d'application.

DMA au sens traditionnel

L'accès direct à la mémoire (DMA) est un mode de fonctionnement dans lequel l'échange d'E/S est entièrement effectué par le matériel. Dans ce mode, le contrôleur DMA prend le contrôle complet du bus depuis le CPU, et l'échange de données s'effectue directement entre la mémoire et les périphériques IO sans passer par le CPU. Le contrôleur DMA envoie des signaux d'adresse et de contrôle à la mémoire, modifie l'adresse, compte le nombre de mots transférés et signale la fin de l'opération de transfert à la CPU dans une interruption.

Le but de l'utilisation de la méthode DMA est de réduire la surcharge du processeur lors de transferts de données volumineux en utilisant un contrôleur DMA dédié (DMAC) pour générer des adresses d'accès et contrôler le processus d'accès. Les avantages sont que les opérations sont mises en œuvre par des circuits matériels, la vitesse de transfert est rapide, le CPU n'interfère pas, mais ne participe qu'à l'initialisation et à la terminaison, et le CPU fonctionne en parallèle avec les périphériques pour une efficacité élevée.

DMA au sens traditionnel

Principe de fonctionnement de RDMA

Les cartes réseau ordinaires intègrent la prise en charge de la vérification du matériel et des améliorations logicielles pour réduire le nombre de copies des données envoyées, mais pas le nombre de copies des données reçues, ce qui nécessite un grand nombre de cycles de calcul du processeur.

Le processus de travail d'une carte réseau normale

  1. L'expéditeur des données doit copier les données du tampon de l'espace utilisateur vers le tampon du socket dans l'espace du noyau.
  2. L'expéditeur des données doit ajouter des en-têtes de paquet dans l'espace du noyau pour l'encapsulation des données.
  3. Les données sont copiées du tampon de socket dans l'espace noyau vers le tampon NIC pour la transmission réseau.
  4. Le récepteur de données reçoit le paquet envoyé par la machine distante et copie le paquet du NIC Buffer vers le Socket Buffer dans l'espace noyau.
  5. Après une série de protocoles réseau multicouches pour analyser les paquets, les données analysées sont copiées de l'espace noyau Socket Buffer vers l'espace utilisateur Buffer.
  6. A ce stade, le changement de contexte système est effectué et l'application utilisateur est invoquée.

Les paquets reçus sont d'abord mis en cache sur le système, où ils sont traités et les données correspondantes sont affectées à une connexion TCP. Le système récepteur associe ensuite les données TCP non sollicitées à l'application correspondante et copie les données du tampon système vers l'adresse de stockage de destination. Ainsi, des contraintes de vitesse du réseau émergent : l'intensité croissante de la communication applicative et la lourde tâche du CPU hôte dans le traitement des données entre le noyau et la mémoire de l'application obligent le système à ajouter en permanence des ressources CPU hôte, à configurer des logiciels efficaces et à améliorer la gestion de la charge du système.

La clé du problème est d'éliminer les transferts de données inutiles et fréquents dans le processeur hôte et de réduire la latence des messages inter-systèmes.

RDMA est le transfert direct d'informations dans le stockage de l'ordinateur sur le réseau, déplaçant rapidement les données d'un système vers la mémoire du système distant sans aucun impact sur le système d'exploitation, de sorte qu'une grande partie de la puissance de traitement de l'ordinateur n'est pas utilisée. Il élimine les opérations de copie de mémoire externe et d'échange de texte, libérant ainsi de l'espace sur le bus et des cycles CPU pour améliorer les performances des applications. La pratique courante exige que le système analyse et marque les informations entrantes avant de les stocker dans la zone appropriée.

Le processus de travail de RDMA

  • Lorsqu'une application effectue une requête de lecture ou d'écriture RDMA, elle n'effectue aucune réplication de données. Sans aucune implication de la mémoire du noyau, la requête RDMA est envoyée depuis l'application exécutée dans l'espace utilisateur vers la carte réseau locale ( NIC=Carte d'interface de réseau).
  • La carte réseau lit le contenu du tampon et le transmet sur le réseau à la carte réseau distante.
  • Les informations RDMA transmises sur le réseau contiennent l'adresse virtuelle cible, la clé mémoire et les données elles-mêmes. L'achèvement de la demande peut être entièrement géré dans l'espace utilisateur (en interrogeant l'alignement d'achèvement au niveau de l'utilisateur) ou via la mémoire du noyau si l'application dort jusqu'à ce que la demande soit terminée. Les opérations RDMA permettent à l'application de lire ou d'écrire des données dans la mémoire d'une application distante.
  • La carte réseau cible reconnaît la clé de mémoire et écrit les données directement dans le cache de l'application. L'adresse de mémoire virtuelle distante utilisée pour l'opération est contenue dans les informations RDMA.

Technologie zéro copie dans RDMA

La technologie réseau sans copie permet à la carte réseau de transférer des données directement vers et depuis la mémoire de l'application, éliminant ainsi le besoin de copier des données entre la mémoire de l'application et la mémoire du noyau. Le contournement de la mémoire du noyau permet aux applications d'envoyer des commandes à la carte réseau sans exécuter d'appels de mémoire du noyau. Sans aucune implication de la mémoire du noyau, les requêtes RDMA sont envoyées de l'espace utilisateur à la carte réseau locale et sur le réseau à la carte réseau distante, ce qui réduit le nombre de commutateurs d'environnement entre l'espace mémoire du noyau et l'espace utilisateur lors du traitement des flux de transfert réseau.

Technologie zéro copie dans RDMA

Sur le côté gauche, nous pouvons voir le protocole TCP/IP traditionnel et le processus de communication effectué par une carte réseau normale. De toute évidence, lorsque la couche application veut obtenir le message de données de la carte réseau, elle doit passer par deux tampons et la pile de protocoles TCP/IP normale, où l'interruption logicielle est responsable de la lecture du message de données à partir du premier tampon de file d'attente de réception, puis en le copiant dans MSGBuff, et enfin la couche d'application lit le message de données à l'état de l'utilisateur via un appel système. D'autre part, le côté droit est un processus sans copie utilisant RDMA avec les règles suivantes.

1) RDMA et son LLP (Lower Layer Protocol) peuvent être implémentés sur le NIC appelé RNIC (RNIC est RDMA Network Interface Card).

2) Les deux implémentations mentionnées en 1) passent toutes les deux par les étapes suivantes : les données envoyées et reçues sont mises en cache dans un espace mémoire marqué, puis cet espace mémoire est directement mappé sur l'espace applicatif selon les règles négociées entre les deux parties de LLP et RDMA, réduisant ainsi au moins deux copies de mémoire dans la méthode de mise en œuvre traditionnelle, c'est-à-dire la réalisation de zéro copie. La ligne fine indique la direction du flux de données, en fait, le cache de marqueur est mappé directement sur l'espace de cache utilisateur via RDMA.

Composition de RDMA

RDMA est implémenté par trois protocoles, RDMA, DDP et MPA, qui constituent la famille de protocoles iWARP et sont utilisés pour assurer l'interopérabilité des réseaux à haut débit. Le DDP doit encapsuler les messages RDMA dans des paquets DDP et les transmettre à la couche inférieure basée sur les marqueurs, Protocol-data-unit-aligned (MPA), qui insère l'identifiant, la longueur et les contrôles CRC dans les paquets DDP pour former les données MPA segment. La couche IP ajoute les données de routage réseau nécessaires au paquet.

Méthodes d'exploitation des données

Le protocole RDMA fournit sept types d'opérations de contrôle pour la mémoire tampon de données directes à distance. Chaque opération de contrôle RDMA, à l'exception de l'opération de lecture de tampon à distance, génère un seul message RDMA correspondant.

  1. Envoyer : l'opération Envoyer utilise le message Envoyer pour envoyer les données de l'application émettrice directement vers un tampon qui n'a pas été explicitement déclaré par l'application réceptrice de données. Par conséquent, le message d'envoi utilise le modèle de transfert de données de tampon non balisé DDP pour transférer le message d'application supérieur vers le tampon en file d'attente métabalisé de l'application réceptrice.
  2. Envoyer avec Invalider : Ajoutez un cerf à envoyer. Une fois que le message est mis en cache dans le tampon d'application homologue spécifié par le Stag et que la notification d'arrivée du message est communiquée à l'application réceptrice, l'application réceptrice n'autorise pas l'application émettrice à accéder au tampon tant que l'application réceptrice n'a pas déclaré à nouveau le tampon disponible. pour que l'application émettrice continue à l'utiliser.
  3. Envoyer avec événement sollicité (Envoyer avec SE) : ce message est utilisé pour envoyer les données de l'application émettrice directement vers le tampon en file d'attente non étiqueté de l'application réceptrice de données, avec toutes les fonctionnalités d'envoi et un retour d'informations ajouté au message.
  4. Send with Solicited Event and Invalidate (Send with SE and Invalidate) : L'action correspondant à ce message est d'envoyer les données de l'application émettrice directement dans le buffer non encore explicitement déclaré par l'application réceptrice de données, qui possède toutes les fonctions de Send avec SE et ajoute une rétroaction au message. Il possède toutes les fonctionnalités de Send with SE et ajoute des commentaires au message.
  5. Écriture d'accès direct à la mémoire à distance : correspond à l'opération d'écriture RDMA et est utilisée pour transmettre les données de l'application émettrice au tampon déclaré par l'application réceptrice. Dans cette opération, l'application réceptrice doit avoir alloué à l'avance un tampon de réception d'application marqué et permettre à l'application émettrice d'effectuer directement l'écriture du tampon. Dans le même temps, l'application émettrice obtient également les informations sur l'emplacement, la taille et le Stag correspondant dudit tampon dans la déclaration. L'application émettrice lance alors une opération d'écriture RDMA, qui utilise le modèle de transfert de données du tampon étiqueté du DDP pour transférer le message de l'application émettrice directement vers le tampon étiqueté déclaré par l'application réceptrice.
  6. Lecture d'accès direct à la mémoire à distance : correspond à l'opération de lecture RDMA, qui transmet les données du tampon d'application marqué du côté opposé (correspondant à la source de données) au tampon d'application marqué du côté local (correspondant au récepteur de données). L'application de couche supérieure de la source de données doit d'abord allouer à l'avance le tampon d'application étiqueté et permettre des opérations de lecture directe sur le contenu de ce tampon. Dans le même temps, l'application de couche supérieure de la source de données doit transmettre les informations telles que l'emplacement, la taille et le Stag correspondant du tampon de source de données à déclarer à l'application de couche supérieure locale. Après avoir obtenu la déclaration ci-dessus, l'application supérieure du récepteur de données alloue le tampon d'application étiqueté correspondant et commence à lire les données de l'autre côté.
  7. Terminer : l'opération de terminaison utilise un message Terminate pour notifier à l'application locale le message d'erreur qui s'est produit pour mettre fin à l'opération de cache direct des données en cours. L'opération Terminate utilise le modèle de tampon méta-balisé de DDP pour transmettre Terminate au tampon non balisé de l'autre côté.

Processus de transmission de données RDMA

Applications de RDMA

RDMA a l'avantage d'utiliser du matériel réseau traditionnel pour construire Internet en utilisant les normes TCP/IP et Ethernet et sera utilisé pour connecter de petits serveurs dans un cluster capable de gérer les grandes bases de données que les serveurs haut de gamme d'aujourd'hui avec plus d'une douzaine de processeurs peuvent gérer. Lorsque vous mettez RDMA, TOE et Ethernet 10 Go ensemble, c'est une technologie assez impressionnante.

ORTEIL (TCP Offmoteur de chargement, traitement du protocole TCP/IP du CPU vers le NIC)

Pendant la communication de l'hôte sur le réseau, le processeur doit consacrer beaucoup de ressources au traitement des paquets des protocoles réseau multicouches, y compris la réplication des données, le traitement des protocoles et le traitement des interruptions. La technologie TOE libère le CPU de ces opérations et transfère le travail mentionné ci-dessus du processeur hôte vers le NIC. La technologie TOE nécessite une carte réseau spécifique prenant en charge Offchargement, qui est capable d'encapsuler des paquets de protocoles réseau multicouches. Alors que les cartes réseau ordinaires déclenchent une interruption pour chaque paquet, les cartes réseau TOE permettent à chaque application de terminer un processus complet de traitement des données avant de déclencher une interruption, ce qui réduit considérablement la charge de réponse du serveur aux interruptions.

Le TOE NIC effectue le traitement du protocole au sein du NIC lorsqu'il reçoit des données. Par conséquent, il n'est pas nécessaire de copier les données dans le tampon d'espace du noyau, mais directement dans le tampon d'espace utilisateur. Cette approche « zéro copie » évite les allers-retours inutiles de copie de données entre la carte réseau et le serveur.

RDMA natif

Le RDMA devient rapidement une caractéristique fondamentale des clusters à haut débit et des réseaux de serveurs. Les réseaux InfiniBand et les réseaux basés sur l'architecture d'interface virtuelle prennent en charge RDMA, tandis que RDMA sur TCP/IP pour une utilisation avec le transport offcartes réseau du moteur de chargement est actuellement en cours de développement. Les protocoles qui prennent en charge des performances élevées à l'aide de RDMA incluent le protocole Sockets Direct, le protocole SCSI RDMA (SRP) et le système de fichiers à accès direct (DAFS). Les bibliothèques de communication qui utilisent RDMA incluent Direct Access Provider Library (DAPL), Message Passing Interface (MPI) et Virtual Interface Provider Library (VIPL). Les clusters exécutant des applications distribuées sont l'un des domaines dans lesquels RDMA peut exceller, car il peut fournir des performances plus élevées et une meilleure évolutivité par rapport aux autres premières applications RDMA avec le même nombre de nœuds lorsqu'il est utilisé avec DAPL ou VIPL et un logiciel de base de données exécuté sur le cluster. De plus, la technologie RDMA devient rapidement une caractéristique fondamentale des systèmes de cluster à haut débit et des réseaux de stockage, où iWARP/RDMA est un élément de base. iWARP (Internet Wide Area RDMA Protocol) est une technologie RDMA basée sur le protocole TCP/IP, qui implémente la technologie RDMA au-dessus de la pile de protocoles TCP/IP existante en ajoutant une couche de DDP au-dessus de TCP. Il prend en charge l'utilisation de la technologie RDMA sur une infrastructure Ethernet standard sans nécessiter de transmission Ethernet sans perte prise en charge par des commutateurs, mais les serveurs doivent utiliser des cartes réseau prenant en charge iWARP. Cependant, ses performances sont légèrement inférieures en raison de l'influence de TCP. De plus, iSER, une extension iSCSI pour RDMA, utilise pleinement les capacités RDMA. Les premières applications RDMA incluent l'accès au serveur de fichiers à distance via DAFS et l'accès au périphérique de stockage via SRP. Le RDMA devient rapidement une caractéristique fondamentale des clusters à haut débit et des réseaux de serveurs.

Applications en NAS et SAN

Le stockage en attachement direct (DAS) traditionnel est une structure de stockage centrée sur le serveur avec des limitations telles que des contraintes de capacité, des distances de connexion limitées et des difficultés de partage et de gestion. Il ne peut pas répondre aux besoins applicatifs de l'ère du réseau. L'arrivée de l'ère du réseau a entraîné d'énormes changements dans la technologie de stockage. Le stockage en réseau (NAS) et les réseaux de stockage (SAN) peuvent fournir des ressources de stockage riches, rapides et pratiques pour les systèmes d'application sur le réseau tout en permettant des ressources de stockage partagées et une gestion centralisée, devenant aujourd'hui un modèle idéal de gestion du stockage et d'application. Cependant, les structures NAS présentent des problèmes difficiles à résoudre, tels qu'une capacité de transfert limitée, une évolutivité limitée, des capacités de sauvegarde limitées et une prise en charge inefficace des services de base de données. DAFS intègre les avantages des capacités de stockage RDMA et NAS, avec toutes les opérations de lecture et d'écriture directement exécutées par le pilote RDMA, réduisant ainsi la charge système causée par les protocoles de fichiers réseau. À l'avenir, les systèmes de stockage NAS adopteront la technologie DAFS pour améliorer les performances du système et rivaliser fortement avec les systèmes de stockage SAN en termes de performances et de prix.

Infinibande

Les quatre principaux avantages d'InfiniBand reposent sur des protocoles standard, des performances de 10 Go/s, le RDMA et le transport offcharger. Son avantage réside dans la transmission à grande vitesse de RDMA et de transport offmoteurs de charge. Les réseaux InfiniBand et les réseaux basés sur l'architecture d'interface virtuelle prennent en charge l'utilisation de RDMA, tandis que RDMA sur TCP/IP avec transport offLes cartes réseau du moteur de charge prennent en charge les serveurs InfiniBand. Les adaptateurs de canal hôte (HCA) convertissent les protocoles vers le bus PCI-X ou PCI-Express interne du serveur, et les HCA avec fonctionnalité RDMA sont parfois appelés contournement du noyau. InfiniBand (IB) est une technologie RDMA basée sur le InfiniBand architecture qui nécessite des cartes réseau IB dédiées et des commutateurs IB. En termes de performances, les réseaux InfiniBand sont clairement les meilleurs, mais les prix des cartes réseau et des commutateurs sont également très élevés.

RoCE, ou RDMA over Ethernet, est une technologie RDMA basée sur Ethernet et a également été proposée par l'IBTA. RoCE prend en charge l'utilisation de la technologie RDMA sur une infrastructure Ethernet standard, mais nécessite la prise en charge de commutateurs pour une transmission Ethernet sans perte, et les cartes réseau doivent être des cartes réseau spéciales prenant en charge RoCE.

À mesure que la technologie continue d'évoluer, les technologies RDMA courantes peuvent être divisées en deux camps : la technologie IB et IBoE, ou IB sur Ethernet, qui prend en charge les technologies RDMA basées sur Ethernet. RoCE et iWARP appartiennent à cette technologie. IBoE, ou IB over Ethernet, peut être propagé sur Ethernet et utilisé avec des commutateurs Ethernet, tandis que le protocole IB nécessite du matériel et des routeurs dédiés.

Avec le développement continu des réseaux de puissance de calcul, la technologie DMA utilisée à l'origine pour des applications mono-machine ou locales sera appliquée à des espaces à plus grande échelle et deviendra une technologie clé dans les réseaux de puissance de calcul.

RDMA

Laisser un commentaire

Remonter en haut