L'idée peut paraître folle, mais l'équipe de Free a tout de même décidé de se lancer : il est désormais possible de gérer des machines virtuelles depuis le boîtier Server de la Freebox Delta, à travers la mise à jour 4.1 de Freebox OS. Quels choix ont été faits pour rendre cela possible ? Nous avons posé nos questions à l'équipe du FAI.
Cela fait quelques mois que les rumeurs se multiplient autour de l'arrivée d'une gestion des machines virtuelles au sein de la Freebox Delta. On était quasiment assuré que cela finirait par arriver, des captures d'écran ayant été diffusées. Nous avions d'ailleurs évoqué notre scepticisme sur le sujet en juillet dernier.
C'est désormais chose faite, avec la mise à jour 4.1 de Freebox OS diffusée aujourd'hui. En amont de cette annonce, nous avons pu échanger avec l'équipe de Free, et tester cette fonctionnalité sur notre Freebox Delta. L'occasion de comprendre l'objectif de ce nouveau service, mais aussi de voir comment il fonctionne en détail.
Un ordinateur dans la Freebox, une vieille idée
« Si on avait un emplacement vide dans de précédentes Freebox, c'était au départ pour pouvoir y intégrer un PC complet » nous répond Maxime Bizon, en charge du développement logiciel des boîtiers de Free, dans la maison depuis plus de 15 ans. Une réponse assez étonnante pour qu'on lui demande s'il s'agit ou non d'une blague. Ce n'est pas le cas.
Si le projet n'a jamais vu le jour, c'est finalement à travers des machines virtuelles que l'on peut désormais utiliser le boîtier Server de la Freebox Delta comme un ordinateur où l'on peut installer tout ce que l'on souhaite... dans la limite des performances de la machine. Pour l'utilisateur, la différence principale entre les deux approches est là.
Comme nous l'avions vu lors de notre analyse du boîtier, il intègre en effet un simple SoC à quatre cœurs ARMv8, l'Armada 8040 (88F8040) à base de Cortex-A72, gravé en 28 nm. Il est accompagné de 2 Go de DDR4 ECC, soit cinq puces de 512 Mo Samsung K4A4G165WE-BCRC à 2 400 MHz (timings 17-17-17) basse consommation (1,2 V).
C'est performant pour un boîtier de ce genre, mais on se retrouve avec l'équivalent d'un Raspberry Pi 4 qui intègre lui aussi un SoC à quatre cœurs Cortex-A72, jusqu'à 4 Go de mémoire et un lecteur microSD pour le stockage. L'un des intérêts de l'approche de Free est là : l'accès au stockage local de la Delta, jusqu'à quatre HDD/SSD en RAID.
- Freebox Delta Server : intégration de quatre HDD, mise à jour de la mémoire et surprise sur le Wi-Fi
Mémoire amovible
Autre bonne idée des concepteurs de cette box : avoir misé sur une barrette de mémoire amovible au format SO-DIMM. Elle peut donc être aisément remplacée par un modèle de 4, 8 ou 16 Go, pas forcément ECC. Attention, « ce n’est ni recommandé, ni supporté par Free, aucun SAV n’étant possible en cas de modification du matériel » prévient le FAI.
De quoi ne pas être limité par cette caractéristique technique. Surtout qu'1 Go sont réservés au système, nous confirme Anisse Astier, ingénieur logiciel ayant récemment rejoint l'équipe de Free notamment pour travailler sur ce projet. Autre avantage, la distribution Linux développée par Free pour ses box gère le 64 bits et donc 4 Go de mémoire ou plus, ce qui est donc également le cas de son service de gestion des VM, là où Raspbian est encore limité au 32 bits.
« On sait que c'est un avantage qui ne durera qu'un temps, surtout que des OS pour Raspberry Pi gèrent déjà le 64 bits » nous confie l'ingénieur, qui a tout de même réalisé quelques tests affichant de bons résultats sous Sysbench avec son équipe. Intégrer un RPi 4 dans la Freebox Delta sans surcoût, tel était donc le projet.
De notre côté nous avons effectués quelques relevés via OpenSSL (RSA 4096 bits) :
openssl speed rsa4096
openssl speed --multi $(nproc) rsa4096
Sur la Freebox Delta, nous avons utilisé l'image Cloud de Debian 10 (Buster), configurée avec le maximum de CPU et de mémoire possible par défaut :
- Freebox Delta (64 bits) - 1 CPU :
- 32 signatures/s
- 2 169 vérifications/s
- Freebox Delta (64 bits) - 2 CPU :
- 63 signatures/s
- 4 314 vérifications/s
Comparons à une instance virtualisée de type ARM64-2GB proposée par Scaleway pour 2,99 euros par mois. Pour rappel, elle propose quatre cœurs, 2 Go de mémoire et 50 Go de stockage, se reposant sur des processeurs Cavium ThunderX 88XX de Marvell. Nous avons configuré l'instance sous Debian 10 (Buster) dans son édition 64 bits :
- Scaleway ARM64-2GB (64 bits) - 1 CPU :
- 41 signatures/s
- 2 810 vérifications/s
- Scaleway ARM64-2GB (64 bits) - 4 CPU :
- 164 signatures/s
- 11 246 vérifications/s
Si l'on passe maintenant à un produit physique sans virtualisation, tel qu'un Raspberry Pi 4 sous Raspbian Buster qui se limite à 32 bits :
- Raspberry Pi 4 (32 bits) - 1 CPU :
- 10 signatures/s
- 653 vérifications/s
- Raspberry Pi 4 (32 bits) - 4 CPU :
- 38 signatures/s
- 2 618 vérifications/s
Enfin, effectuons un test avec un NAS DS416play de Synology à base de Celeron N3060 à deux cœurs, afin de voir ce que la Freebox Delta vaut par rapport à un NAS complet :
- Synology DS416play (64 bits) - 1 CPU :
- 29 signatures/s
- 1 925 vérifications/s
- Synology DS416play (64 bits) - 2 CPU :
- 57 signatures/s
- 3 763 vérifications/s
La solution de Free est donc en l'état plus intéressant qu'un Raspberry Pi en 32 bits, au niveau d'un NAS correct et sous les performances de la plus petite instance proposée par Scaleway, sans surcoût. Ceux ayant besoin de plus de puissance auront donc toujours intérêt à se tourner vers un hébergeur tiers, mais c'est une bonne entrée en matière.
Quelques limitations « by design »
Les cas d'usages évoqués par Free pour cette fonctionnalité sont divers : héberger des systèmes de Cloud personnel tels que Yunohost ou Cozy Cloud, des serveurs multimédia comme Plex, pour Minecraft, des pages web, de la domotique maison via Jeedom, ou tout simplement découvrir le monde Linux à travers un petit serveur.
Il ne faut en effet pas espérer monter une machine pour du rendu 3D ou trop multiplier les serveurs, mais bien disposer d'un système minimal pour des usages légers, sans avoir à trouver une place pour un micro PC tel qu'un Raspberry Pi. Il sera effet intégré dans le Server de la Freebox Delta, déjà présent sur le réseau local et allumé 24/7.
- Machines virtuelles et Freebox Delta : création et hébergement de votre première page web
- Freebox OS 4.1 : accédez aux données de la box depuis une machine virtuelle
L'équipe a néanmoins fait des choix afin de limiter les problèmes potentiels. Outre les 1 Go de mémoire réservés au système, prioritaire en termes de performances, cette fonctionnalité ne permet pour le moment que de gérer trois cœurs virtuels pour l'ensemble des VM active, deux par VM.
« Des chiffres qui pourront évoluer par la suite » nous confie Anisse Astier. L'équipe de Free semble vouloir avancer pas-à-pas, en fonction de la manière dont la communauté s'emparera de cette fonctionnalité et des premières demandes qui seront faites par les clients au sein du bug tracker maison.
Autre choix qui a des implications lourdes : seules des images ARM64 (AARCH64) gérant l'EFI (Extensible Firmware Interface) peuvent être utilisées. Ainsi, ne comptez pas y installer votre ISO Windows 10 classique. Ce serait à la limite possible avec celle pour sa déclinaison destinée aux machines ARM, comme cela a été fait pour les Raspberry Pi, mais il faudrait y intégrer tous les éléments annexes comme les pilotes VirtIO... pour un résultat forcément décevant.
Bonne nouvelle pour ses adeptes : FreeBSD 13 fonctionne.
Machines virtuelles, un choix « plus souple »
Au cœur de cette fonctionnalité, on retrouve l'habituel duo KVM/QEMU avec EDK II pour la partie firmware. Les systèmes préinstallés proposés par Free sont ainsi des images ARM64 « Cloud » au format Qcow2 qu'il suffit de télécharger et d'utiliser comme périphérique de stockage. L'utilisateur peut les redimensionner comme il le souhaite dès leur mise en place.
C'est ce qui explique que certains OS comme Debian, Fedora, Jeedom ou Ubuntu sont présents, mais pas d'autre. Leurs images sont stockées sur les serveurs de Free et téléchargées à chaque installation, ce qui ne sera pas sans peine pour ceux ayant de petites connexions qui auront plutôt intérêt à gérer leurs images localement.
Les fonctionnalités sont nombreuses, le FAI ayant voulu jouer la touche « geek » à fond les manettes sur ce service, qui est au final assez bien pensé et pratique à prendre en main lorsque l'on a déjà touché à une interface de gestion de machines virtuelles. On peut ainsi accéder à celles actives à travers la console ou un affichage de type bureau distant dans l'interface web (Xterm.js/NoVNC), mais aussi via un client SSH comme celui intégré à votre OS (Windows 10 compris), utiliser un script cloud-init maison, les ports USB de la Freebox, rediriger facilement ses ports pour un accès depuis l'extérieur, etc.
On aurait presque envie de voir Free s'associer avec ses cousins de chez Scaleway pour proposer une interface de gestion commune : soit des VM locales dans la Freebox Delta, soit dans les serveurs de l'hébergeur.
Lorsque nous avions analysé la venue de cette fonctionnalité, nous nous étions demandé pourquoi Free miserait sur une gestion de machines virtuelles, forcément assez complexe, plutôt que des conteneurs qui peuvent être installés et gérés de manière plus simple pour peu que la bonne interface soit mise en place.
« Pour cela nous aurions de toute façon dû isoler l'OS avec les conteneurs dans une machine virtuelle » nous confie Anisse Astier, évoquant des questions de sécurité qui nous paraissent légitimes. Le choix a donc été fait de proposer une gestion de machines virtuelles, où ceux qui le souhaitent peuvent mettre en place Docker ou Kubernetes s'ils le souhaitent. Et pourquoi pas des images communautaires intégrant nativement ces services ? Une piste à creuser.