Les Carnets de Byfeel domotique , Objets connectés , DIY , Programmation, Nouvelles Technologies ….

Virtualisation avec Synology ( Docker ou Virtual Machine ? )

Si vous êtes équipés d’un NAS Synology , et selon le modèle , vous avez la possibilité de mettre en place une solution de virtualisation. Deux solutions possible Docker ou VMM ( Virtuel Machine Manager ) .

Il n’est pas toujours évident de choisir entre une machine virtuelle ou un conteneur docker.

VMM ou Docker ?

Je ne suis pas là , pour vous expliquer les bases de la virtualisation , il y a de nombreux spécialistes sur le net qui seront en mesure de le faire.

Quelques exemples d’articles sur le sujet , je vous laisse choisir :

Selon ma propre expérience de simple utilisateur, je retiens que chaque VM imite intégralement un système (OS , pilotes , bibliothèques , binaires , ainsi que l’application ) . Chaque VM s’exécute sur un hyperviseur , qui s’exécute à son tour sur le système d exploitation hôte. Les VM sont très utiles, dans de nombreux domaines mais peuvent être vite limités par les ressources disponibles sur l’hôte.

Mon NAS étant limité en ressource, j ai tendance à privilégier les conteneurs. Ces derniers virtualisent l’application et partage ses ressources avec le système hôte unique , ils réduisent le gaspillage des ressources et permettent un démarrage plus rapide.

J ai choisi de privilégier les conteneurs sur mon NAS. J’utilise les VM , pour les tests sur différents systèmes.

Listes des NAS synology compatibles :

Tous les NAS synology ne sont pas compatibles avec la virtualisation et il faudra souvent choisir la gamme « Plus » ou au dessus afin de profiter de ces technologies.

solution VMM

  • Série 20:FS6400, FS3400, RS820RP+, RS820+, DS620slim, SA3600, SA3400
  • Série 19:RS1619xs+, RS1219+, DS2419+, DS1819+, DS1019+, DVA3219
  • Série 18:FS1018, RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
  • Série 17:FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xs, DS1817+, DS1517+
  • Série 16:RS18016xs+, RS2416RP+, RS2416+, DS916+
  • Série 15:RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+
  • Série 14:RS3614xs+, RS3614RPxs, RS3614xs
  • Série 13:RS10613xs+, RS3413xs+
  • Série 12:RS3412RPxs, RS3412xs, DS3612xs
  • Série 11:RS3411RPxs, RS3411xs, DS3611xs

Solution Docker

  • 20 series:FS6400, FS3400, RS820RP+, RS820+, DS620slim, SA3600, SA3400
  • 19 series:RS1619xs+, RS1219+, DS2419+, DS1819+, DS1019+, DVA3219
  • 18 series:FS1018, RS3618xs, RS2818RP+, RS2418RP+, RS2418+, RS818RP+, RS818+, DS3018xs, DS1618+, DS918+, DS718+, DS218+
  • 17 series:FS3017, FS2017, RS18017xs+, RS4017xs+, RS3617xs+, RS3617RPxs, RS3617xs, DS3617xs, DS1817+, DS1517+
  • 16 series:RS18016xs+, RS2416RP+, RS2416+, DS916+, DS716+, DS716+II, DS216+, DS216+II
  • 15 series:RS815RP+, RS815+, RC18015xs+, DS3615xs, DS2415+, DS1815+, DS1515+, DS415+
  • 14 series:RS3614xs+, RS3614RPxs, RS3614xs, RS2414RP+, RS2414+, RS814RP+, RS814+
  • 13 series:RS10613xs+, RS3413xs+, DS2413+, DS1813+, DS1513+, DS713+
  • 12 series:RS3412RPxs, RS3412xs, RS2212RP+, RS2212+, RS812RP+, RS812+, DS3612xs, DS1812+, DS1512+, DS712+, DS412+
  • 11 series:RS3411RPxs, RS3411xs, RS2211RP+, RS2211+, DS3611xs, DS2411+, DS1511+, DS411+, DS411+II
  • *10 series:RS810RP+, RS810+, DS1010+, DS710+

Vous avez un NAS compatible ?

Alors, voyons comment mettre cela en place.

Virtual Machine Manager

Installation de VMM

Rien de plus simple dans l’interface de votre Synology, il faut ouvrir le centre de paquets et cliquer sur installation Virtual Machine Manager.

Centre de paquets Synology ( Installation Virtual Machine Manager )

Avant d’installer le paquet Virtual Machine Manager, il faut configurer au moins un volume Btrfs sur votre serveur Synology NAS. Ce volume sera utilisé comme stockage pour les VM.

Création d’une image virtuelle

Il faudra dans un premier temps associé un volume de stockage ( format btrfs ) pour le stockage des images virtuelles.

Pour créer une VM, il suffit de cliquer sur créer et suivre l’assistant :

L’assistant propose de créer soit une VM de type Windows , Linux , Synology Virtual DSM (une licence de DSM est incluse afin de virtualiser un NAS Synology, c’est pratique pour tester certains paquets sur le NAS sans prendre de risque ) et la dernière option Autres qui permet de personnaliser la VM comme on le souhaite.

laissez vous guider par l’assistant.

La documentation Synology explique chaque paramètre en détail . Ne pas hésiter à la lire . Doc VMM Synology

Combien de Machine Virtuelle puis je installer ?


Je vous invite à lire l’article sur synology : Combien de machines virtuelles . Le système DSM se réserve environ 1,5 Go de mémoire , ce qui laisse disponible 2.5 Go sur un NAS de 4 Go pour les applis ou 6,5 Go sur un NAS de 8 Go.

Exemple avec deux types de VM :

  • type 1 : Une VM avec 1 processeur , 1 go de Ram , il faut compter environ 1,24 Go d’occupation mémoire
  • Type 2 : Une VM avec 2 processeur , 2 go de Ram , compter plutôt sur 2,5 Go d’occupation mémoire.

Cela donne la possibilité d’activer deux VM de type 1 ou une VM de type 2 sur NAS 4Go ou 4 Vm de type 1 et 2 VM de type 2 sur un NAS de 8Go.

Il est tout à fait possible d’avoir plusieurs images installées mais il faudra faire attention de ne pas les activer toutes en même temps.

On s’aperçoit rapidement que l’on peut être à l’étroit , d’où l’intérêt de migrer sur Docker , si cela est possible.

Docker

Pour activer Docker sur un Synology compatible , il faut aller dans le centre de paquets et cliquer sur installer.

Au premier lancement de docker , vous aurez un message vous conseillant de lire attentivement la documentation .

Le fichier d’aide est trés bien documenté et il permet de comprendre facilement comment installer son premier conteneur.

Documentation Synology Docker

Création d’un Conteneur

Pour illustrer cet article, je vous propose de mettre en place le conteneur de la solution Domotique NEXTDOM ( Fork de jeedom ) .

Docker utilise des images pour créer ses conteneurs. Ses images sont disponibles sur le docker Hub.

L’application Docker de Synology permet via le menu registre de parcourir les images sur docker hub. Il suffit de renseigner l’image que l’on cherche (ici nextdom).

On sélectionne l’image choisie (ici nextdom-core ) et clique sur télécharger. Vous pouvez vérifier l’avancement du téléchargement dans le menu image.

Une fois l’image téléchargée il est possible de la lancer afin de créer notre premier conteneur. L’assistant de création s’affiche.

Pour l’instant on va l’installer avec les paramètres par défaut : suivant et appliquer . Dans le menu conteneur, on retrouve le conteneur nouvellement créé, il suffit de le lancer afin de vérifier que tout fonctionne.

Je n’ai eu besoin que de quelques minutes pour mettre en place ma solution NEXTDOM , contre beaucoup plus si j’étais passé par une VM (pas loin d’une bonne heure ).

Votre Nextdom est opérationnel !

Mais comment puis-je lancer l’interface nextdom ?
Quel IP ? L’adresse Ip de votre conteneur est la même que celle de votre NAS.
Ok, mais lorsque je renseigne l’adresse de mon NAS , dans mon navigateur , je suis redirigé vers l’interface WEB de ce dernier, je fais quoi ?

Il faut créer une redirection de port. Ces infos sur les ports utilisés sont renseignées en principe sur la page Docker Hub du conteneur. Page Nextdom-core ( Docker Hub ).
Dans le cadre de ce conteneur pas trop d’infos sur la page de présentation mais dans l’onglet du dockerfile (on aura l’occasion d’en reparler dans un autre article ), nous avons le détail de ce qui est installé par cette image :

Fichier Dockerfile
FROM debian:stretch-slim
ENV locale-gen fr_FR.UTF-8
ENV APACHE_PORT 80
ENV APACHE_PORT 443
ENV DEBIAN_FRONTEND noninteractive
RUN echo "127.0.1.1 $HOSTNAME" >> /etc/hosts && \
    apt-get update --yes && \
    apt-get install --yes --no-install-recommends software-properties-common gnupg wget && \
    add-apt-repository non-free
RUN wget -qO - http://debian.nextdom.org/debian/nextdom.gpg.key | apt-key add - && \
    echo "deb http://debian.nextdom.org/debian nextdom main" >/etc/apt/sources.list.d/nextdom.list && \
    apt-get update && \
    apt-get --yes install --no-install-recommends nextdom
RUN rm -fr /var/lib/{apt,dpkg,cache,log}
RUN echo "#!/bin/sh" > /start.sh && \
    echo "service cron start" >> /start.sh && \
    echo "service mysql start" >> /start.sh && \
    echo "service apache2 start" >> /start.sh && \
    echo "while true; do" >> /start.sh && \
    echo "  sleep 100" >> /start.sh && \
    echo "done" >> /start.sh && \
    chmod +x /start.sh
ENTRYPOINT ["/usr/bin/env"]
CMD ["bash", "/start.sh"]

Le service Apache est installé et utilise le port 80 ou 443 ( https ), il suffit donc de créer une règle de redirection sur le port 80, pour se connecter à l’interface web de nextom ou 443 pour se connecter via https ou les deux.

J’arrête le conteneur et clique sur modifier. Onglet paramètres des ports.

Port local : le numéro de port d’entrée du NAS

Port du conteneur interne : le port utilisé par l’application.

par exemple le port 8080 au port 80 et le port 8443 au port 443 .
Il suffira depuis mon navigateur de renseigner l’adresse :
http://IP_NAS:8080 pour accéder à l’interface WEB du conteneur (ici nextdom )
ou https://IP_NAS:8443 pour y accéder via https.

Il existe de nombreux autres paramètres pour vos dockers , mais cela fera l’objet d’un prochain article.

En conclusion …

La page d’accueil de Docker permet de surveiller les différents conteneur actifs et suivre la consommation du système hôte.

J’utilise les dockers pour les services que je laisse tourner en permanence, les VM me servent plus pour des tests.

Par exemple, voici les conteneurs actifs sur mon NAS :

On constate la différence de ressource avec une VM active ou non. Dans cet exemple, ma VM me prenait 38% de ressources CPU et 1,2 Go de Mémoire environ.

J’ai une VM de secours prête à démarrer pour le cas ou mon jeedom de production serait HS, ainsi que d’autres VM qui me servent pour des environnements de test mais je les arrête après utilisation.

Je reviendrai sur l’utilisation avancée des dockers dans un prochain article.

4 commentaires sur “Virtualisation avec Synology ( Docker ou Virtual Machine ? )”

Les commentaires sont fermés.