Homelab: Mon serveur 2U sur base d'Ampere Altra (architecture ARM64)

En mars de cette année, j’ai décidé de trouver un nouveau serveur pour héberger les données de la famille (Jellyfin, Nextcloud, etc.), piloter la maison avec Home Assistant et faire tourner les VM dont j’ai besoin pour mon travail. Dans cet article, je détaille mes contraintes et la construction de ce serveur, sur base d’un CPU Ampere Altra (architecture ARM64).

Existant

J’héberge actuellement mes services sur un serveur HP DL20 Gen9, acheté d’occasion en juin 2021 pour 640 €.

Ce serveur HP DL20 Gen9 est équipé de :

Le serveur HP DL20 Gen9 existant.
Le serveur HP DL20 Gen9 existant.

Ce serveur est actuellement racké dans une baie informatique de 7U de haut, faible profondeur, au sous-sol de la maison et il fait actuellement tourner CentOS Stream 8 que j’ai configuré en routeur (voir Fibre Orange : Remplacer sa Livebox par un routeur CentOS Stream 8 ) et hyperviseur (avec libvirt).

L’hyperviseur fait tourner plusieurs VM :

Limitations du matériel existant et besoins futurs

Entre le moment où j’ai acheté ce HP DL20 Gen9 et maintenant, mes besoins ont évolué et le contexte technologique a également évolué.

Je n’avais pas anticipé le nombre de services que je ferais tourner dans mon Kubernetes. J’ai à ce jour 54 pods répartis dans 35 namespaces.

À l’époque, j’étais parti sur un Kubernetes vanilla mais le temps qui passe m’a prouvé qu’un Kubernetes vanilla demande plus de temps et d’énergie à administrer au quotidien que je n’en ai à offrir. Je cherche donc à migrer tous mes services sur OpenShift.

Les performances des disques durs 3.5" deviennent pénalisants sur les gros transferts de fichier. La mémoire cache de la carte RAID se remplit rapidement et je plafonne alors au débit famélique des disques durs 3,5" 7200 Tr/min : ~187 Mo/s.

Le CPU, bien que performant à l’époque, ne tient plus la comparaison. Le CPU AMD Ryzen 7 7840U de mon Framework Laptop 13 a des performances de calcul en virgule flottante 64 % plus élevées que le Intel Xeon E3-1270 v6 du serveur HP DL20 Gen9.

Les 48 Go de RAM actuellement installés me permettent de faire tourner mes services actuels mais pas les services que j’envisage (OpenShift notamment).

Les capacités d’expansion du HP DL20 Gen9 sont bien limitées : 2 emplacements PCIe x8. L’emplacement pleine hauteur est pris par le contrôleur RAID et l’emplacement demi hauteur est pris par la carte réseau 4 ports GbE.

Dernier point, et non des moindres, la carte mère et le CPU du HP DL20 Gen9 ne supportent pas le SR-IOV. Ça m’oblige actuellement à faire tourner les fonctions de routage réseau directement sur l’hyperviseur. La fonction SR-IOV me permettrait de mettre le routeur CentOS Stream dans une VM sans perte de performance.

En résumé, j’ai besoin de :

Facteur de forme

Ce que j’ai aimé dans le HP DL20 Gen9, c’est le facteur de forme : 1U faible profondeur. C’est pratique à stocker dans une armoire informatique fixée au mur et ça ne prend pas de place au sol. En revanche, pour y mettre tout ce dont j’ai besoin, il faut que je vise un peu plus grand : format 2U.

Et c’est sur cette idée que je me suis mis à la recherche du Saint-Graal du Edge Computing : un boîtier 2U, short depth, front IO, NVMe backplane et alimentation CRPS.

Après autant d’acronymes et de buzzwords, quelques explications s’imposent :

Au sous-sol de la maison, j’ai une armoire informatique de 60 cm de profondeur (Digitus DN-19 07U-6/6-EC-SW) dont seulement 45,9 cm sont exploitables pour y loger un serveur.

Je me suis donc mis en quête d’un serveur short depth, front IO, avec un NVMe backplane et une alimentation CRPS !

Carte mère ASRock Rack ALTRAD8UD-1L2T

En décembre 2023, Asrock Rack a sorti une carte mère serveur supportant les CPU Ampere Altra : la ALTRAD8UD-1L2T. Cette carte mère a fait sensation dans la presse spécialisée. Patrick Kennedy allant jusqu’à titrer “ASRock Rack ALTRAD8UD-1L2T: C’est la carte Ampere ARM que vous voulez !”.

En soit, la carte a tout pour plaire :

Première difficulté : la carte est au format Deep Micro-ATX. C’est un format un peu hors norme, ça ressemble à du Micro-ATX, mais avec 2,3 cm de plus en profondeur. Évidemment, les constructeurs de boîtier n’annoncent pas leur compatibilité avec ce format Deep Micro-ATX, car… il n’est pas standard ! 😡

La difficulté, c’est ensuite de se procurer le processeur qui va avec ! Les CPU Ampere Altra sont quasi introuvables sur les sites de vente de matériel high-tech en ligne. 😱

Processeur Ampere Altra Q64-22

Fort heureusement, Asrock Rack, Ampere Computing et Newegg (comme LDLC mais aux États-Unis ?) se sont associés pour rendre tout cela possible pour la communauté “Homelab”.

Newegg propose deux bundles sur son site :

Et les deux bundles incluent le dissipateur thermique compatible avec les boitiers 2U. 🥳

J’ai choisi le Ampere Altra Q64-22 car il me permet de ne pas faire exploser le budget. Et je me dis que quand j’aurai utilisé les 64 cœurs du CPU, de l’eau aura coulé sous les ponts et on trouvera peut-être des Ampere Altra Max à 128 cœurs sur eBay pour un prix raisonnable. Il sera alors toujours temps de passer sur un CPU plus puissant.

Le CPU Ampere Altra Q64-22 a un TDP de 69 W d’après la fiche technique Ampere Altra.

Le CPU Ampere Altra Q64-22, monté sur la carte mère ASRock Rack ALTRAD8UD-1L2T
Le CPU Ampere Altra Q64-22, monté sur la carte mère ASRock Rack ALTRAD8UD-1L2T

Autre difficulté, c’est que j’habite en France et Newegg ne livre pas en France… J’ai donc dû passer par un reshipper : une entreprise aux États-Unis qui réceptionne les colis et les réexpédie partout dans le monde.

Le reshipper, un intermédiaire incontournable

Je suis passé par Ship7 qui m’avait l’air d’être honnête et pas trop cher. Ce qui va bien sans dire va toujours mieux quand on le dit : entre le coût de Ship7, le coût du transporteur qui va acheminer le colis jusqu’en France et les taxes pour passer la douane, il est illusoire de faire son shopping aux US en imaginant payer moins cher qu’en France. C’est tout le contraire ! En revanche, pour du matériel introuvable de ce côté de l’atlantique, ça dépanne bien !

La procédure pour utiliser le service du reshipper est plutôt simple :

Il est à noter que Ship7 s’occupe d’imprimer les documents pour la douane mais j’ai dû déclarer le montant exact des objets contenus dans le colis. À cette étape, il faut faire attention de ne pas se tromper.

Si je ne mets pas le bon prix, le montant des droits de douane ne sera pas le bon :

Boîtier Innovision M24306

Trouver le boîtier a été l’étape la plus chronophage et la plus fastidieuse, et ce pour plusieurs raisons :

Avant de me décider à acheter le boîtier Innovision M24306, j’ai évalué d’autres boîtiers dont je laisse ci-dessous les références au cas où le boîtier que j’ai choisi ne serait plus disponible.

Le boîtier Innovision M24306 est trouvable sur Aliexpress et Alibaba.

Le boîtier Innovision M24306.
Le boîtier Innovision M24306.

Quelques remarques utiles (j’ai demandé des clarifications avant de passer commande) :

Note : la prise VGA que l’on voit sur l’oreille droite du serveur n’est connectée à rien du tout. Mais ce n’est pas gênant dans le sens où le boîtier a ses entrées/sorties sur la face avant donc la prise VGA est déjà sur la face avant et n’a pas besoin d’être déportée.

La prise VGA sur l'oreille droite du boîtier Innovision M24306 n'est pas connectée.
La prise VGA sur l’oreille droite du boîtier Innovision M24306 n’est pas connectée.

Alimentation CRPS FSP

Le boîtier Innovision M24306 a un emplacement prévu pour l’alimentation au format CRPS 1+1. CRPS signifie Common Redundant Power Supply et c’est un standard élaboré par le groupe de travail Modular Hardware System du consortium Open Compute. Il définit, entre autres, les dimensions et les tensions des alimentations redondantes pour serveurs. C’est un standard qui semble relativement récent (la v1.0 date de juillet 2023).

Le terme 1+1 signifie que l’alimentation est redondante et qu’elle peut tolérer la panne d’un équipement sur les deux.

Contrairement aux alimentations ATX qui sont d’un seul bloc, les alimentations CRPS sont composées de trois parties :

Si vous voulez en apprendre plus sur ce standard, je vous invite à lire les spécifications publiées sur le wiki Open Compute.

J’ai identifié deux marques fabriquant des alimentations CRPS et avec un bon réseau de distributeurs : FSP et Athena Power. J’ai choisi la Power Distribution Board FSP-FC210 car c’était le modèle qui avait le plus de chance de rentrer dans le boitier. Et j’ai eu le nez fin ! Le modèle FSP-FC250, un peu plus haut de gamme, a l’avantage d’être modulaire mais il est 4 cm plus profond et ne serait pas rentré dans le boîtier.

J’ai ensuite opté pour le module d’alimentation de la plus petite puissance disponible car 2 x 550W, ça fait déjà beaucoup pour un petit serveur ! C’est le modèle FSP550-20FM.

La composition de l'alimentation CRPS de marque FSP.
La composition de l’alimentation CRPS de marque FSP.

Il est à noter que la Power Distribution Board n’est fixée au boîtier que par deux petites vis. Pour éviter qu’elle ne bouge, j’ai dû la caler avec un morceau de mousse. Une fois tout en place, ça ne se voit pas. 😎

Dans la fiche technique du constructeur, je n’ai pas réussi à trouver le détail des prises connectées à la FSP-FC210. Pour ceux qui se poseraient la question, la Power Distribution Board FSP-FC210 est équipée de :

Câbles SlimSAS PCIe 4.0

Pour relier le backplane NVMe à la carte mère, j’ai dû trouver le câble adéquat. Le connecteur sur la carte mère et sur le backplane sont du même type : SlimSAS / SFF-8654.

La référence CAB-8654/8654-8i-11-P0.5M-85 chez 10Gtek a toutes les caractéristiques requises :

Cheminement des câbles SlimSAS / SFF-8654 dans le boîtier Innovision M24306.
Cheminement des câbles SlimSAS / SFF-8654 dans le boîtier Innovision M24306.

Stockage

Pour le stockage, j’aurais aimé utiliser les 6 emplacements U.2 du backplane NVMe. C’était un de mes critères. Mais acheter 3 à 6 SSD du modèle que je visais (Samsung PM1733) aurait fait exploser mon budget.

J’ai alors décidé de réutiliser 3 SSD NVMe Samsung PM1735, de 6.4 To chacun, que j’avais par ailleurs dans mon homelab. J’avais acheté ces SSD à un époque où ils étaient moins chers qu’actuellement. Ces SSD sont au format Add-in Card (AIC), demi-hauteur, demi-longueur (HHHL), ce qui me prend 3 emplacements PCIe sur les 4 que possède la carte mère. Mais dans l’immédiat, ça me permet d’avancer. Et si je trouve une enchère eBay avec un lot de SSD Samsung PM1733 à bon prix, je n’aurais qu’à transférer les données sur les nouveaux SSD pour récupérer 3 emplacements PCIe.

Trois SSD Samsung PM1735 et un SSD Samsung 980 PRO installés dans le boîtier.
Trois SSD Samsung PM1735 et un SSD Samsung 980 PRO installés dans le boîtier.

Il est à noter que les SSD Samsung PM1733A ont été testés par la société Ampere Computing et ont montré de bonnes performances avec leur CPU ! Voir Samsung FIO Performance - Solution Brief.

J’ai ajouté à cela un SSD NVMe au format M.2 pour héberger le système d’exploitation : un Samsung SSD 980 PRO (équipé d’un dissipateur thermique).

Par soucis du détail, j’ai quand même testé 6 SSD NVMe au format U.2 (PCIe 3.0) sur le backplane NVMe du boîtier. Ça fonctionne ! En revanche, je n’ai pas testé le branchage/débranchage à chaud (hotplug) car je ne pense pas que le backplane de ce boîtier ait implémenté la fonctionnalité.

Six SSD NVMe de plus, pour un total de 26.4 To de stockage NVMe !
Six SSD NVMe de plus, pour un total de 26.4 To de stockage NVMe !

Nomenclature

Pour qui voudrait se construire un serveur à l’identique, j’ai rassemblé la liste du matériel à acheter. Dans les colonnes “Désignation” et “Distributeur”, j’ai mis les liens vers la fiche technique du fabricant ainsi que le distributeur par lequel je suis passé pour acheter le matériel.

CategorieDésignationDistributeurQuantitéPrix total
Carte mèreASRock Rack ALTRAD8UD-1L2T + Ampere Altra Q64-22 64Newegg11500,00 $
RAMMicron 64GB DDR4 3200 8Gx72 ECC CL22 RDIMMNewegg2310,00 $
BoîtierInnovision M24306 with NVMe backplaneAlibaba1256,00 $
AlimentationFSP FC210 Power Distribution BoardDigikey1145,90 €
AlimentationFSP 550-20FM AC/DC Converter 12V 500WDigikey2277.02 €
Câble10Gtek SFF-8654 8i Cable, SAS 4.0, 85 ohm, 0.5 meter10Gtek389,00 $
CâbleStarTech.com 9 Pin Serial Male to 10 Pin Motherboard Header LP Slot PlateAmazon15,52 €
CâbleMolex to to Dual SATA Power Adapter SplitterAmazon24,99 €
StockageSamsung SSD 980 PRO M.2 PCIe NVMe 2 ToLDLC1196,90 €
StockageSamsung SSD PM1735 6.4 TBeBay31694,00 €

Avec un taux de change à 1 USD = 0,93 EUR, on arrive à un total de 4 328,48 €. Et dans ce prix, je n’ai pas compté les frais de port, les droits de douane, etc. 💸

Refroidissement

Il est à noter que, par défaut, le flux d’air des ventilateurs des alimentations FSP 550-20FM et du boîtier Innovision M24306 sont inversés : les ventilateurs des alimentations soufflent dans le sens avant -> arrière alors que les ventilateurs du boîtier soufflent dans le sens arrière -> avant. Fort heureusement, les ventilateurs du boîtier sont réversibles.

J'ai retourné les quatre ventilateurs du avoir un flux d'air avant -> arrière. Dans cette configuration, les étiquettes des ventilateurs ne sont pas visibles de l'intérieur du boîtier.
J’ai retourné les quatre ventilateurs du avoir un flux d’air avant -> arrière. Dans cette configuration, les étiquettes des ventilateurs ne sont pas visibles de l’intérieur du boîtier.

Je n’ai pas encore fait de test de performance, mais les températures mesurées sont plus basses avec ce flux d’air optimisé. C’est au niveau des 6 SSD NVMe à gauche que l’effet est le plus notable. En effet, ils ne sont refroidis que par les ventilateurs des alimentations.

Le boitier est prévu pour des cartes mères à 7 emplacements PCIe alors que l’ASRock Rack ALTRAD8UD-1L2T n’en a que 4. Les trois emplacements inutilisés peuvent être masqués pour forcer le flux d’air à passer là où il sera plus utile.

Résultat

L’aspect extérieur du produit est plutôt flatteur, presque professionnel.

Serveur 2U basé sur un boîtier Innovision M24306, une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22. Face avant en haut, face arrière en bas.
Serveur 2U basé sur un boîtier Innovision M24306, une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22. Face avant en haut, face arrière en bas.

L’intérieur est moins bien agencé qu’un serveur HP ou Dell mais je saurais m’en satisfaire. 😎

Agencement interne du boîtier Innovision M24306 avec une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22.
Agencement interne du boîtier Innovision M24306 avec une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22.

Dernières photos, cette fois-ci avec le couvercle en place, prêt à être racké ! 🚀

Boîtier Innovision M24306 avec une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22.
Boîtier Innovision M24306 avec une carte mère ASRock Rack ALTRAD8UD-1L2T et un CPU Ampere Altra Q64-22.

Conclusion

Je suis parti sur une architecture ARM64 car elle répondait à mon besoin mais surtout j’avais envie de monter en compétence sur ce sujet. Et clairement je n’ai pas été déçu ! J’ai énormément appris en assemblant ce serveur 2U sur base d’Ampere Altra (architecture ARM64).

Et si vous vous lancez dans l’aventure, venez en discuter sur le forum Ampere Computing !