Blog d'Olivier Raulin

Un peu de technique ...

Installation de Proxmox sur mon NAS Debian

Jusqu’à peu, j’avais chez moi un NAS, qui ne me servait qu’à stocker des fichiers, et un serveur basé sur une carte-mère Mini-ITX et un Athlon 3800+, épaulé de 2 Gio de RAM.
Lors de mes différentes reviews de CPU, j’ai remarqué que le CPU de mon NAS (un APU AMD) avait un score supérieur de deux fois à mon Athlon 3800+ … avec un TDP trois fois moindre.

Il ne m’a pas fallu longtemps pour me dire que je gaspillais de l’électricité et du temps d’attente à laisser ces machines séparées.
Rapidement cependant, je me suis rendu compte que l’actuel serveur était jonché de tests divers et variés, avec des services pas réellement utilisés qui étaient lancés, des bouts de configuration par-ci par-là … bref, une plate-forme de test.
Je voulais faire quelque chose de plus propre à cette occasion, et la virtualisation m’a permis de répondre à cette problématique.

Pourquoi virtualiser ?

La virtualisation, on en parle beaucoup : c’est vrai que c’est très pratique, on peut lancer plusieurs systèmes sur sa machine de bureau par exemple, en même temps. Sur un serveur, c’est globalement le même principe : on lance plusieurs machines distinctes les unes des autres.

Nous avons, au choix, dans la virtualisation, deux types de technologies : la virtualisation complète, ou bien la para-virtualisation par conteneurs.
Dans le premier cas, le système virtualisé (invité) a conscience qu’il est virtualisé : ses composants portent bien souvent la marque du distributeur (de la solution de virtualisation), et les pilotes sont spécifiques. Charge à l’hyperviseur de transformer tout ça vers le système hôte par la suite.
Si cette option est indispensable pour faire tourner des systèmes différents (Linux / Windows, Windows / Unix, Linux / Unix, etc.) elle a l’inconvénient qu’on perd un peu en performances dans la “conversion”.

N’ayant que peu le besoin d’avoir d’autres systèmes que ma Debian préférée, je pouvais passer via une solution type OpenVZ, qui utilise des conteneurs afin de virtualiser (on partage le noyau avec la machine et on lance ses processus dans son coin). J’ai quand même décidé de me laisser une porte de sortie vers KVM, et me suis tourné vers Proxmox, qui propose assez simplement une interface web pour gérer ses machines.

Ainsi, j’ai donc la possibilité de créer de nouveaux conteneurs ou bien de nouvelles machines virtuelles.

Dans la pratique : Le NAS tourne sous Debian.

La question suivante, c’était que mon NAS tournait sous Debian, et que je n’avais pas envie de le réinstaller. Fort heureusement, Proxmox est basée sur Debian également, et l’installation de quelques packages et d’un noyau personnalisé suffisent à transformer une Debian en une Proxmox !
J’ai cependant rencontré quelques soucis de dépendances, j’ai du bidouiller un peu pour que cela se fasse bien (jouer entre apt-get et aptitude, par exemple !).

Au bout de quelques minutes (ou heures, je ne sais plus :) ) ma Proxmox était opérationnelle ! J’ai donc commencé à créer un conteneur par service : – Owncloud (permet de remplacer Google Drive et Dropbox) – SabNZBd (outil en Python pour Usenet) – Sickbeard (outil en Python pour suivre ses séries) – Couchpotato (outil en Python également, mais pour les films) – ZNC (bouncer IRC pour rester connecté aux salons que je fréquente même mon PC fixe éteint) – Jabber (serveur XMPP) – Transmission, en version web (client Torrent) – Headphones (outil en Python permettant la gestion de librairie musicale) – un serveur DNS (pour usage futur, donc éteint pour le moment)

Chaque machine est indépendante des autres, et utilise la mémoire et les ressources CPU dont ses applications a besoin. J’ai une vue directe sur le réseau, le CPU , la RAM utilisée … par chaque machine. Je peux ainsi couper l’une ou l’autre en fonction des besoins.

Il reste sur l’hôte la gestion du serveur NFS, ainsi que du RAID logiciel. Huit machines lancées, plus l’hôte, consomment à peine 1 Gio de RAM, sur les 8 que propose mon NAS.

Bilan

Je suis entièrement satisfait de cette migration : elle ne change rien à la gestion de mes fichiers, elle me permet de séparer les services que j’utilise, je gère le NAT sur ma freebox de façon simplifiée (j’ai une IP interne par service, qui tourne sur un port plus “classique”), le tout en consommant moins …

Et pour ce qui est de l’accessibilité de l’extérieur, j’ai toujours un reverse proxy sur mon Raspberry Pi qui me permet d’accéder, par noms, aux différentes machines.