Fusionner domotique et IA dans un même Home Lab en 2024

Ces derniers jours, j’ai été un peu occupé par des problèmes de tuyauteries extérieures et je n’ai pas eu le temps de me consacrer à mes geekeries. Bien que je considère mes expérimentations sanitaires un peu comme des geekeries… Mais je ne pense pas que la tranchée que j’ai creusée dans le jardin, ni les tuyaux que j’ai enterrés dedans vous intéresse… Encore moins le fait que quand j’ai mis ma nouvelle installation sous pression ça fuyait de partout et que je vais devoir tout démonter pour remplacer la bande Teflon par de fil de chanvre et de la graisse… Bref, je sais que ça ne vous intéresse pas, alors je n’en parlerais aucunement !

Donc, la grande question du jour étant de savoir quelle plateforme mettre en place comme laboratoire de virtualisation pour la maison. Récemment, j’ai été un peu challengé sur différents sujets, mais je n’ai pas encore pris le temps d’approfondir. Afin de mieux les creuser, j’avais l’envie de monter à nouveau un “home lab” comme diraient nos confrères d’outre-Manche ou outre-Atlantique (c’est vous qui choisissez, c’est cool hein, ça devient interactif).

Bref, j’avais dans le coin de mes notes de me (re)mettre à Home Assistant et de voir dans quelle mesure on pouvait en faire un gestionnaire d’énergie intéressant pour la maison

Plus motivé que jamais, j’avais en travers de la gorge encore mes essais d’il y a quelques années. Ceux-ci n’avaient pas débouché sur des choses folichonnes et j’avais même été un peu déçu (j’étais jeune et sans ambition, même pas 40 ans à l’époque !). Le moment semble donc opportun pour remettre le pied à l’étrier sachant que la solution a beaucoup évolué depuis !

En parallèle de ça, je me suis beaucoup amusé avec les outils d’intelligence artificielle. En dehors du classique ChatGPT, j’ai porté mon dévolu sur des solutions comme d’IA générative et surtout Fooocus (sur la base de Stable Diffusion) pour la création d’images réalistes. Je vous en avais d’ailleurs rapidement parlé dans un précédent article à découvrir ici.

Ces essais m’ont ouvert les chakras et donné l’envie de tester plus en profondeur les solutions open source existantes et me former un peu sur ce qu’on appelle la GenIA.

Partant de ces deux besoins de base, je devais donc trouver une chose peu courante : un mini serveur pour la maison qui pouvait me servir de laboratoire (jusqu’ici facile), mais qui possédait une carte graphique Nvidia pour la partie IA (tout de suite moins facile). Si vous suivez mes articles, vous avez remarqué que j’apprécie par trop trop beaucoup de laisser tourner des choses qui consomment beaucoup d’électricité dans le vide à mon domicile. Ce qui excluait d’office un certain nombre de solutions.

Un peu longue cette introduction vous me direz ? C’est clair ! Alors, départ, on attaque…

Quelle base matérielle ?

Tout d’abord, j’ai passé un peu de temps à chercher, sans vraiment chercher les différentes solutions matérielles possibles. Vous êtes prêts à partir dans un voyage aux confins de mon cerveau ? C’est parti, voilà où celui-ci a été se promener :

Un NAS Synology

Pour ceux qui ont manqué 2-3 épisodes au cours des dernières années, il faut savoir que les NAS Synology disposent depuis quelque temps d’un système de virtualisation intégré. Oh, non vous n’allez pas pouvoir faire ça sur le petit NAS bon marché de votre maison, il faut tabler sur certains modèles seulement qui possèdent des processus de type x86.

Sinology Virtual Machine Manager

Sur ces modèles, il est relativement facile de faire tourner des machines virtuelles et/ou des containers. Cependant, le prix d’entrée devient vite élevé si l’intérêt de base n’est pas le stockage. Ce qui n’est clairement pas mon cas ici… Et il va sans dire que j’oublie l’intégration d’une carte de type Nvidia RTX donc exit l’IA. Donc pour un amateur éclairé qui ne désire pas d’une carte graphique, un NAS Synology un poil costaud peut déjà répondre à beaucoup de besoins (c’est toujours bien de le savoir).

Un Raspberry Pi

Il faut savoir que j’ai réinstallé un Home Assistant tout d’abord un Raspberry Pi 4. Honnêtement, cela fonctionne très bien, mais le démarrage et certaines opérations sont très lents de par les limitations de la plateforme. J’avais donc l’envie de quelque chose un peu plus costaude et qui pourrait convenir à plus que Home Assistant. Donc exit les Raspberry de toutes les couleurs qu’ils soient… (comprendra qui pourra).

Le nouveau Raspberry Pi 5

Ils conviennent très bien pour un besoin simple avec Home Assistant uniquement, mais absolument pas à tout le reste de mes ambitions comme la génération d’image avec Foocus.

Un PC “standard”

L’une des possibilités relativement simple à exploiter et facile à maintenir serait d’utiliser une poste de travail standard et d’y installer un outil de virtualisation (on verra ça plus bas). Cependant, j’ai deux critères importants : la consommation d’énergie et la taille. La consommation d’énergie c’est un peu mon dada et je n’ai pas l’envie de laisser tourner un gros truc tout le temps pour m’amuser quelques heures dans la semaine. Le second point étant d’éviter d’avoir quelque chose d’encombrant, car loin de moi l’envie de devoir encore me justifier auprès du gouvernement de ma petite femme d’amour sur un énième truc moche et bruyant qui m’amusera trois jours et qui finira à la cave.

Néanmoins, un mini boitier permet déjà de faire un certain nombre de choses intéressantes. C’est d’ailleurs de loin la solution la plus facile pour greffer une carte Nvidia dedans afin de profiter de sa puissance de calcul pour l’IA. Pour le moment, je garde cette idée dans un coin et je reviendrais dessus si nécessaire…

Un PC “barebone”

Autre gamme de PC, les barebones sont des PC relativement standards, mais dans un format réduit. Ils sont généralement favorisés pour le faible encombrement et la faible consommation électrique, mais possèdent une plus grande limitation dans les capacités d’évolution. En général, un baronne n’a souvent qu’une vie et il ne peut pas beaucoup évoluer.

Ce type de PC se rapproche déjà plus de ma cible. Il existe une multitude de modèles différents et de fabricants différents. Les plus connus étant les NUC d’Intel qui ont été depuis repris par Asus. Dans les gammes historiques d’Intel, un produit en particulier a attiré mon attention. Il s’agit d’un NUC possédant une carte graphique RTX 2060 mobile. La question que je me suis posée à ce moment-là, étant de savoir si une RTX 2060 allait suffire pour mes amusements avec l’IA générative.

Pour en avoir le cœur net, j’ai utilisé des comparateurs de carte graphique à disposition sur Internet. Actuellement, j’utilise le service Google Collab qui met à disposition des cartes graphiques pour faire tourner du code Python. Dans mon cas, j’utilise en principe comme carte graphique la Nvidia Tesla T4 et je suis satisfait des performances. Les différents comparateurs montrent que clairement la RTX 2060 est une carte d’ancienne génération, mais qu’elle est toujours plus performante que la Tesla T4. Ici, par exemple, un extrait du comparateur Versus.com :

RTX 2060 vs Tesla T4

En résumé…

Un petit tableau qui résume chacune des technologies et ses possibilités pour couvrir mes besoins :

PROCESSEURMEMOIRE VIVESTOCKAGECARTE VIDÉODIMENSIONCONSOMMATION ELECTRIQUE
NAS SYNOLOGY+++ + ++ ++1
RASPBERRY PI– – –+ + ++ + +
PC STANDARD+ + ++ + ++ ++ + +
PC BAREBONE+ ++ ++ ++ ++ +++
1 Variable en fonction des disques et modèles

C’est clair qu’à partir de ce moment-là, j’ai fait mon choix. On va trouver le moyen de mettre la main sur un Intel NUC possédant une carte graphique RTX 2060… Ah ben tiens, en fait c’est fait et il est à côté de moi.

Quelle base logicielle ?

Maintenant que j’ai une idée de la base matérielle avec laquelle je vais monter un nouveau laboratoire à la maison, il fallait encore choisir sur quelle base logicielle partir. Il y a quelques semaines encore, je n’aurai pas hésité une seule seconde et j’aurais installé VMware ESXi avec la licence gratuite. Mais Broadcom étant passé par là depuis, la version gratuite a été mise à la poubelle… Pas très motivant pour la suite. Bref, il ne restait à mon avis que trois grandes possibilités :

Windows 11 Professionnel

Partant d’un bon sentiment alors que je n’aurais jamais pensé dire ça avant, je me suis dit pourquoi ne pas tester une installation de Windows 11 Professionnel. Il faut savoir que ce dernier embarque Hyper-V et qu’il est facile d’utiliser des machines virtuelles directement sans outil supplémentaire.

Windows 11 au taquet

Par contre, dans mes critères, je désire pouvoir utiliser la carte graphique directement dans une machine virtuelle. Aux nombreuses recherches que j’ai effectuées et grâce à l’aide de mon nouvel ami ChatGPT cela semble bien compromis. Techniquement, cela serait possible, mais il n’y a aucune facilité pour le faire et la configuration semble bien complexe. Je suis motivé, mais… pas tant que ça en fait.

Une alternative viable serait de faire tourner un Windows relativement standard pour utiliser Fooocus par exemple et d’utiliser des machines virtuelles pour le reste… Je conserve ça dans un coin de ma tête, mais pour le moment je vais voir plus loin.

Harvester

Harvester est un projet open source qui fonctionne avec Kubernetes, un système pour automatiser l’utilisation des conteneurs (Docker ça vous parle ?). Il vise à mettre à disposition de tout le monde d’un HCI (Infrastructure hyperconvergée). Harvester permet de gérer à la fois des machines virtuelles et des conteneurs sur des serveurs physiques, rendant le tout plus facile à utiliser dans un même ensemble.

Dashboard du projet Harvester

Harvester aide à regrouper le stockage, la mise en réseau et la virtualisation dans un seul système, ce qui peut simplifier la technologie pour différents types de projets… tout particulièrement pour un laboratoire à la maison !

Dès le moment ou j’ai constaté qu’il savait gérer les cartes graphiques mêmes en mode “Expérimental”, je me suis dit que cela ne me coutait pas grand-chose d’essayer… Au moment, où j’écris ces lignes, Harvester est installé et configuré et les premiers essais sont en cours… C’était d’une incroyable facilité et rapidité. Par contre, il a une fâcheuse tendance à faire planter complètement mon Intel NUC du chapitre précédent. Donc je suis contraint de le mettre de côté pour le moment et d’envisager encore autre chose.

Proxmox

Encore une solution viable, Proxmox est souvent mis en avant comme alternative à l’environnement VMware vSphere. Cependant, je n’ai jamais été suffisamment emballé jusqu’ici pour le tester alors qu’il possède vraiment une très bonne presse. Proxmox est open source et s’appuie sur tes technologies standards comme KVM pour les machines virtuelles et LXC pour les containers. Cerise sur le gâteau, il sait aussi gérer les cartes graphiques ! Je ne sais pas pourquoi, mais le fait que VMware dégage l’ESXi gratuit me motive à tester cette fois 😁.

Proxmox

La solution est assez avancée et offre une gestion intégrée de clusters, de stockage réseau, et de sauvegarde/restauration, le tout accessible via une interface web (un peu vieillotte quand même). Après l’échec d’Harvester, je n’ai pas d’autre solution que de me lancer !

Je ne vous mens pas, la clé est là je vous dis !

Conclusionnage

Comme on dit… la suite au prochain épisode ! Pour le moment la clé d’installation pour Proxmox est en cours et je n’ai pas d’autre choix que d’attendre pour vous livrer la finalité de tout ça dans un prochain article. Mais soyez confiant, on va trouver un moyen plus simple sympa qu’un Raspberry pour faire tourner Home Assistant !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *