Voilà dans un article publié la semaine dernière, je vous exposais mon plan minutieusement préparé pour tenter d’utiliser le même “mini serveur” à la maison pour répondre à plusieurs de mes besoins. Je ne vous ferais pas poireauter, clairement ça n’a pas fonctionné tout comme je le souhaitais et je vais vous expliquer tout de même pourquoi. Il y a du positif quand même 😊 !
Alors, quelle couche logicielle pour finir ?
Comme expliqué dans le premier article, j’ai testé différents moyens pour obtenir une couche de “virtualisation” de base pour mon home lab. Le but étant de pouvoir facilement construire et détruire différents systèmes avec lesquels je m’amuse un moment donné (des machines virtuelles). En parallèle, je désirais laisser celui-ci tourner pour mes futurs articles en préparation sur Home Assistant et les outils d’IA générative comme Fooocus.
Harvester ❌
Donc, si je résume Harvester, une couche d’Hyper Convergence, m’a posé quelques soucis de stabilité sur mon Intel NUC Enthusiast. Ce dernier avait une fâcheuse tendance à crasher dès que je déployais des machines virtuelles Ubuntu pour pouvoir continuer mes tests… Ne désirant pas perdre de temps pour analyser la source du problème et voyant l’ampleur des efforts que j’allais devoir encore fournir pour faire fonctionner l’utilisation du GPU (carte graphique)1, je l’ai rapidement mis au placard pour tester ensuite la solution Proxmox.
Cependant, un point très important étant qu’Harvester semble être une véritable pépite qui mériterait un lab dédié. Surtout à l’heure où beaucoup d’entreprises cherchent des alternatives viables aux produits VMware rachetés par Broadcom. J’ai été très surpris (pour ne pas dire halluciné) avec quelle facilité j’ai pu déployer un cluster hyper convergé à la maison. Ça ne vous parle pas ? Ce n’est pas grave, les trois pelés et un tondu qui savent ce que c’est seront peut-être intéressé.
Proxmox ❌
Déçu de ma piètre performance avec Harvester, je me suis lancé, fier comme un paon, dans l’installation de Proxmox en étant certain qu’il répondrait à tous mes besoins. La partie “PCI Passthrough” étant largement documentée contrairement à Harvester, mais je n’étais pas arrivé jusque-là. Vous ne savez pas de quoi je parle ? C’est un peu ce que j’expliquais plus haut avec Harvester pour gérer les cartes graphiques à des fins de calculs. La différence étant que sur Proxmox c’est un peu plus courant… selon Internet.
Proxmox s’est très facilement installé et déployé aussi sur mon NUC Enthusiast. J’étais même surpris en bien de l’outil et assez bluffé par le niveau de finition de ce dernier. Néanmoins, car forcément il y a un “mais”, le fait d’utiliser la carte graphique au sein d’une machine virtuelle tournant sur Proxmox ne se fait pas en 3 cliques au travers d’un assistant bien convivial comme je l’avais un peu trop imaginé…
Donc en partant de la documentation et des articles de référence mentionnés, il faut (vous êtes prêts…) :
- Vérifier la compatibilité matérielle, car cela ne fonctionne pas avec tout ;
- modifier le fichier de configuration de GRUB (un outil pour gérer le multiboot Linux) ;
- réaliser un blacklisting de toute une série de pilotes de carte graphique (principalement pour éviter les conflits) ;
- créer une série de fichiers spécifiques pour la configuration de VFIO (un module du noyau Linux permettant de réaliser le PCI passthrough)
- créer un machine virtuelle avec des réglages très spécifiques ainsi qu’avec la configuration de carte graphique à dédier ;
- dans certain cas, il est nécessaire de télécharger le BIOS de la carte graphique pour l’ajouter à la machine virtuelle ;
- …
Bref vous l’avez compris, si je me fie à la configuration de base présentée sur le site de Proxmox, c’est clairement un départ vers l’inconnu avec un certain nombre de problèmes qu’il faudra gérer au jour le jour. Il est d’ailleurs indiqué que certaines mises à jour peuvent détruire ces réglages et qu’il faudra alors les refaire. Désolé, mais là tout de suite, je n’ai juste pas le courage 😅. Fin de l’aventure pour Proxmox…
Windows 11 Pro ✅
Solution de la honte, clairement 🫣. Mais l’idée étant d’utiliser les outils de GenAI directement sur Windows 11 et de mettre les autres choses dans des machines virtuelles Hyper-V. Windows pouvant naturellement accéder aux cartes graphiques avec les meilleurs outils à disposition pour les piloter. Hyper-V étant quant à lui la solution de virtualisation de Microsoft qui est intégrée à ses serveurs, mais aussi disponible sur quelques éditions moins courantes de Windows. Par contre, l’inverse n’est pas possible, Hyper-V ne gère pas l’intégration de périphérique externe, pas même l’USB (donc exit les dongles Zigbee/Z-Wave avec Home Assistant, mais je ne les utilise pas dans mon cas).
Alors, pour commencer, il m’a bien gonflé… Comment en 2024, je peux encore me retrouver face à un assistant d’installation qui me réclame des pilotes … Ubuntu, Harvester et Proxmox passent comme une lettre à la poste alors qu’il s’agit de projets Open Source, mais Windows 11 me demande les drivers Intel pour gérer les disques M2 du NUC… Bref, passons…
Sinon la grande surprise : Windows 11, c’est chouette ! Étant historiquement un utilisateur de produits marqués d’une pomme, je ne m’étais jamais intéressé à Windows 11. Au quotidien, je travaille sur Windows 10 et disons que ça reste… un produit Microsoft. Je ne m’attendais donc pas à grand-chose de la version suivante. Cependant, Windows 11 est beaucoup plus sexy et agréable à l’utilisation. Toutes les options trop détaillées sont désormais habilement masquées et disponibles uniquement par des menus avancés, j’ai vraiment le sentiment que l’entreprise a fait un sérieux saut en avant dans l’ergonomie et le confort utilisateur. Ce qui est drôle, c’est que par moment j’ai le sentiment d’être dans une surcouche d’interface utilisateur Linux comme GNOME ou KDE.
Au final, Hyper-V est déployé et Home Assistant tourne à merveille dans une machine virtuelle avec une vitesse d’exécution qui n’a rien à voir avec le Raspberry Pi 4 ! C’est rapide, hyper rapide ! Du côté de Fooocus que j’utilise comme référence pour les performances sur la partie IA, ça tourne plutôt bien avec une petite RTX 2060 Mobile, quelques secondes pour générer des images, mais un poil plus lent que Google Collab. Pour comparaison sur mon Mac avec un Intel Corel i9, mais sans carte graphique Nvidia bourrée de CUDA ben, ça n’avance pas malgré un Turbo Booster à 4.8GHz… Il faut des heures parfois pour créer des images de qualités et une poignée de secondes sur le NUC 11.
Alors ça me fait très mal de le dire, mais finalement la solution idéale serait donc de passer par un Windows Pro avec un Hyper-V en inversant la problématique. Au moment où j’écris ces lignes, je me dis qu’on pourrait tenter la même expérience avec un Ubuntu et comparer les performances avec Windows… Mais, j’ai dépensé assez d’énergie là-dessus pour l’heure…
Alors c’est parfait, tu es enfin content ?
Question entièrement pertinente mon très cher ami, ben en fait c’est la grande hésitation… Oh, je vous entends déjà vous marrer et vous moquer de moi avec mes âneries geekeries. Le NUC 11, aussi mignon soit-il, il consomme… Certes, il consomme peu d’électricité comparé à un PC traditionnel, mais il consomme beaucoup d’énergie comparé à un Raspberry Pi !
Dans mes différents scénarii de tests, j’ai réussi à limiter au maximum la consommation comme je vous explique dans le précédent article. Mais dans ce cas, je n’arrive pas vraiment à descendre en dessous de 15 Wh en essayant d’optimiser au mieux les réglages d’énergie. Si je ne fais pas tourner l’application Fooocus (qui utilise Python 3 pour l’exécution), je descends un peu en dessous aux environs de 10-12 Wh. C’est-à-dire qu’à ce moment-là, je ne conserve que Hyper-V pour mes machines virtuelles de test et Home Assistant itself.
Ça semble peu vous allez me dire ? Mais de mon point de vue très conservateur, pas tellement… Petites cours de math ?! C’est parti ! Dans une année, nous avons 8’760 heures et le NUC 11 consomme 14 Wh quand il ne fait rien (au repos/idle). Donc nous pouvons prendre ces chiffres comme référence et réaliser un petit calcul :
Impensable pour moi de laisser tourner un mini PC en permanence dans un coin pour utiliser des outils uniquement de temps en temps à 122 kilowatts par année ! Ça ne vous semble pas grand-chose ? Alors, faisons le même calcul avec Home Assistant sur un Raspberry Pi 4. Au relevé du compteur, avec un Home Assistant qui ne fait “rien”, je tourne à 2-3 Wh. Même calcul, c’est parti :
Là, vous comprenez mieux ? Pratiquement 100 kilowatts de différence par année lorsqu’il est occupé à… ne rien faire. Pour toutes les personnes qui possèdent une installation solaire, il sera peut-être plus facile de se rendre compte à quel point cela se mérite 100 kilowatts par année ! Pour comparaison, une belle production solaire de notre domicile en janvier, c‘est environ 30 kilowatts (et notre installation n’est pas petite). Est-ce que dans ce cas, j’ai l’envie de dédier plus de 3 jours de notre production solaire d’hiver pour faire tourner un mini PC dans le vide ? Ben, clairement non…
Entre-temps, le dernier Raspberry Pi 5 est de sortie et Home Assistant annonce déjà que les performances sont sensiblement meilleures avec ce dernier. L’autre avantage étant que les données peuvent désormais être stockées sur un disque type NVMe via le nouveau bus PCIe et la carte SD n’est utilisée alors que pour le démarrage. Donc des performances décuplées en gros !
Est-ce que je vais garder le NUC 11 Enthusiast ? Alors oui, clairement ! Les performances sont bonnes et il me sera très utile pour la partie IA générative que je ne peux pas faire fonctionner convenablement sur mon Mac. Mais Home Assistant clairement va déménager à nouveau sur le Raspberry… Et le NUC 11 va découvrir le monde merveilleux de la veille profonde 💤 !