Les Mac et les cartes Ethernet à 25 Gb/s

Saviez-vous que macOS prenait en charge les cartes Ethernet à 25 Gb/s et même 40 Gb/s ? Depuis un moment maintenant, macOS (et iPadOS) intègrent en effet un DEXT (une extension DriverKit) pour les cartes Mellanox ConnectX et il est assez simple d’en intégrer une en interne (dans un Mac Pro) ou en Thunderbolt.

Le fonctionnement est le même qu’avec les cartes 10 Gb/s Intel : il y a un pilote standardisé pour les cartes de la famille ConnectX, à partir des cartes ConnectX-4. Comme les Mac n’ont pas de PCI-Express (sauf les Mac Pro), il faut évidemment un boîtier Thunderbolt qui accepte les cartes d’extension (on peut bidouiller avec un boîtier prévu pour un SSD externe). La norme permet des débits théoriques de 40 Gb/s, mais en pratique on a seulement 32 Gb/s (sauf en USB4) et un débit réel plutôt compris entre 25 et 30 Gb/s.

Une des cartes

En clair, même s’il existe des cartes à 40 ou 100 Gb/s (et qu’elles fonctionnent probablement, je n’ai pas testé), la limite réelle actuellement est plutôt 25 Gb/s. Si vous avez du budget, Sonnet vend son adaptateur pour 1 266 €, mais comme j’ai des boîtiers externes, j’ai opté pour deux Mellanox ConnectX-4 (MCX4121A-ACAT) d’occasion. On peut en trouver neuve pour 250 €, mais sur eBay, ça se négocie sous les 65 $ pièce.

Deux prises SFP28


Le pilote mlx5 d’Apple

Les cartes utilisent un connecteur qui s’appelle SFP28, qui est différent du SFP+ qu’on a habituellement dans les cartes à 10 Gb/s. Enfin, c’est compatible physiquement, mais mon câble Direct Attach à 10 Gb/s reste bloqué à 10 Gb/s. Pour faire du 25 Gb/s, il y a essentiellement deux solutions en connexion directe. Comme j’ai abandonné l’idée de mettre un switch, c’est hors de prix, j’ai testé avec du Direct Attach. C’est une liaison directe avec des câbles de cuivre, sur une distance courte (3 mètres) avec une prise SFP28 de chaque côté. L’avantage, c’est le prix : 27 € pour 3 mètres. L’autre solution, c’est un câble AOC (Active Optical Cable) : on a toujours des prises SFP28 fixes, mais c’est de la fibre optique avec des distances un peu plus grandes. On peut monter à 20 mètres pour une soixantaine d’euros. Au passage, les ConnectX-4 en 10 Gb/s marchent aussi et ce n’est pas très cher si vous avez un boîtier externe.

Un câble Direct Attach de 3 mètres


Une liaison à 25 Gb/s


25GBase-CR

Parlons performances

Les performances vont dépendre de l’OS, du Mac – c’est plus lent sur un MacBook Pro 2017 avec un vieux contrôleur Thunderbolt Alpine Ridge – et de tout ce qu’il y a en face. Comme pour une liaison Thunderbolt, la liaison directe amène directement un souci : il faudra mettre en place un serveur DHCP ou fixer les adresse, avec éventuellement un routage via une autre connexion. Pour les premiers essais, j’ai relié un Mac mini 2018 (contrôleur Titan Ridge) à un NAS haut de gamme que j’avais en prêt (un TVS-h874T, testé sur MacG et ici). Il a l’avantage d’avoir un emplacement PCI-Express, d’accepter les cartes tierces (une de mes Mellanox) et d’intégrer des emplacements pour des SSD (ici deux Crucial P3 en RAID 0). Dans ce cas de figure, on peut atteindre environ 16,5 Gb/s du NAS vers le Mac, ce qui est correct, sans plus. En débit pratique, on a ~1 750 Mo/s en lecture depuis le NAS, et un peu plus de 900 Mo/s en écriture.

Mac mini 2018 (Intel)


De bons débits vers le NAS


Du côté du NAS

Avec un Mac mini M1, c’est très nettement plus rapide sur les débits bruts (avec iPerf) : 19 Gb/s. C’est aussi surtout nettement plus rapide qu’il y a quelques mois avec Ventura sur MacG, probablement grâce à macOS Sonoma et à des optimisations pour les puces ARM. Dans les essais pratiques, on peut lire à plus de 2 400 Mo/s mais le Mac mini M1 écrit (beaucoup) moins vite que le Mac mini 2018 : à peine 400 Mo/s. Je ne connais pas la raison, mais j’avais déjà eu le problème avec une liaison Thunderbolt.

Le Mac mini M1 avec le même boîtier


Nettement plus rapide en lecture, nettement plus lent en écriture

J’ai ensuite testé un truc un peu bizarre : un adaptateur USB4. J’en ai parlé sur MacG et c’est un bricolage que je détaillerais, mais en gros, c’est un peu plus rapide. On gagne quelques centaines de mégabits/s en mode Thunderbolt 3 et environ 1 Gb/s en mode USB4 – qui nécessite un câble USB4 -. Dans les tests pratiques, on peut atteindre 2,6 Go/s en lecture et 600 Mo/s en écriture, ce qui est bien mais pas top (le Mac mini Intel reste plus rapide).

Mode USB4


20 Gb/s


2,6 Go/s en lecture

Dernier essai, parce que pourquoi pas, du NAS vers un iPad Pro M2. En effet, la tablette d’Apple est compatible USB4 et Thunderbolt 3 et Apple a installé le pilote avec iPadOS. On est limité à 16,7 Gb/s, mais je ne sais pas si c’est parce que l’iPad Pro a seulement 2 lignes PCI-Express ou si c’est juste une limitation d’une tablette.

16 Gb/s sur l’iPad


iPadOS voit bien la carte


Entre deux Mac

Entre mes deux Mac mini (un M1 et un 2018, Intel), c’est par contre assez lent : environ 10,6 Gb/s. La liaison est bien à 25 Gb/s mais il y a un truc qui limite (aucune idée de ce que c’est). Ceci dit, je l’avais montré sur MacG, le problème est probablement macOS : avec un PC, ça va plus vite. Il y a aussi le fait que le pilote de macOS limite la taille des paquets à 2 304 octets (il n’y a pas de jumbo frame) mais je ne sais pas si ça joue.

Entre deux Mac


La taille de paquets ne peut pas dépasser 2 304 octets

Dans tous les cas, l’Ethernet à 25 Gb/s fonctionne bien sous macOS avec les cartes les plus courantes. Le seul défaut, en réalité, c’est qu’il faut du Thunderbolt, ce qui alourdit le prix. Sur PC, on peut s’en tirer pour moins de 200 € pour relier deux ordinateurs de bureau avec une liaision rapide, alors que sur Mac, il faut dans pratiquement tous les cas un boîtier Thunderbolt.