Installer Virtual DSM avec Docker
Virtual DSM

Installer Virtual DSM avec Docker

Table des matières

GitHub - vdsm/virtual-dsm: Virtual DSM in a Docker container.
Virtual DSM in a Docker container. Contribute to vdsm/virtual-dsm development by creating an account on GitHub.

Je pense que ce tutoriel pourrait en intéresser plus d'un pour virtualiser DSM sans se prendre la tête, c'est d'une facilité extrême.

Virtual DSM permet donc de lancer de manière virtuelle le fameux DSM de Synology.
DSM qui n'est autre que est le système d'exploitation de Synology.

Une fois installé vous pourrez profiter des applications dédiées du Synology et tester DSM comme bon vous semble, à peu de chose près.

Quelles sont les différences par rapport au DSM standard ?


Il n'y a que deux différences mineures : le package Virtual Machine Manager n'est pas disponible et Surveillance Station n'inclura aucune licence gratuite.

Ne soyez pas effrayé par la table de matières, pour une installation simple il suffit de suivre les trois premiers points. Le reste c'est uniquement si vous avez des besoins plus aiguisés.

⚠️
Attention, si vous utilisez cette application sur une VM Proxmox, éditez les options du CPU, et sélectionnez host.

⚡Caractéristiques

  • Supporte plusieurs disques.
  • Accélération KVM.
  • Mises à niveau prises en charge.
  • + évidemment, toutes les fonctions incluses dans DSM 7+.

Si vous avez la moindre difficulté, n'oubliez pas que vous pouvez rejoindre belginux sur Discord et Matrix!


L'installation

  1. Créez votre docker-compose.yml:
sudo nano docker-compose.yml
  1. Collez ça dedans en prenant soin d'adapter le port et les volumes suivant votre configuration:
version: "3"
services:
  dsm:
    container_name: dsm
    image: vdsm/virtual-dsm
    environment:
      DISK_SIZE: "50G"
      RAM_SIZE: "4G"
      CPU_CORES: "4"
    devices:    
      - /dev/kvm
    cap_add:
      - NET_ADMIN
    ports:
      - 5000:5000
    volumes:
      - /srv/appdata/dsm:/storage
    restart: on-failure
    stop_grace_period: 2m

Petite explication. Vous avez le loisir de changer ces paramètres:

  • DISK_SIZE: "50G" => permet de définir la taille du disque virtuel.

  • RAM_SIZE: "4G" => permet de définir la quantité de RAM.

  • CPU_CORES: "4" => permet de définir le nombre de cœur niveau processeur.

Par défaut, si vous supprimer les lignes RAM_SIZE: "8G" & CPU_CORES: "4", vous aurez 1 cœur et 1 Go RAM.

  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi, 5000 par défaut:
http://ip:5000/

Terminer l'installation et la configuration

Maintenant que c'est installé il y a aura quelques informations à compléter, à ce stade DSM se prépare. Il n'y a rien de particulier à faire à part patienter un peu:

Quand le système est prêt, il vous souhaite la bienvenue, cliquez sur Démarrer:

Il est maintenant temps de créer votre compte administrateur en complétant ce formulaire. Une fois que vous avez fini, cliquez sur Suivant:

Laissez comme tel et cliquez sur Suivant:

Ne vous connectez pas, si non Synology va reconnaître que ce n'est pas un Synology valide, cliquez sur Ignorer:

On ne coche rien et on valide avec Soumettre:

Cliquez sur Non merci:

Cliquez sur Non merci également:

Cliquez sur Je ne souhaite pas sécuriser mon compte:

Et on confirme avec OK:

Il ne reste qu'à vous amuser! 😃


Comment ajouter plusieurs disques ?

environment:
  DISK2_SIZE: "32G"
  DISK3_SIZE: "64G"
volumes:
  - /home/example:/storage2
  - /mnt/data/example:/storage3

Comment créer un disque évolutif ?

Par défaut, la totalité de la capacité du disque est réservée à l'avance.

Pour créer un disque évolutif qui alloue uniquement l'espace réellement utilisé, ajoutez la variable d'environnement suivante :

environment:
  DISK_FMT: "qcow2"

Comment pass-through un disque?

Le pass-through permet à une VM d’accéder directement au disque physique de l’hôte sans passer par l’hyperviseur.

environment:
  DEVICE2: "/dev/sda"
  DEVICE3: "/dev/sdb"
devices:
  - /dev/sda
  - /dev/sdb

Comment puis-je vérifier si mon système prend en charge KVM ?

Il suffit d'exécuter ces deux commandes:

sudo apt install cpu-checker
sudo kvm-ok

Si c'est pris en charge, cela renvoie ceci:

Si vous recevez une erreur de kvm-ok indiquant que l'accélération KVM ne peut pas être utilisée, vérifiez les paramètres de virtualisation dans le BIOS.


Comment pass-through le GPU ?

Pour pass-through votre GPU Intel, ajoutez les lignes suivantes à votre fichier docker-compose:

environment:
  GPU: "Y"
devices:
  - /dev/dri

Comment attribuer une adresse IP individuelle au conteneur ?

Par défaut, le conteneur utilise un pont réseau, qui partage l'adresse IP avec l'hôte.

Si vous souhaitez attribuer une adresse IP individuelle au conteneur, vous pouvez créer un réseau macvlan comme suit :

docker network create -d macvlan \
    --subnet=192.168.0.0/24 \
    --gateway=192.168.0.1 \
    --ip-range=192.168.0.100/28 \
    -o parent=eth0 vdsm
💡
Assurez-vous de modifier ces valeurs pour qu'elles correspondent à votre sous-réseau local.


Une fois que vous avez créé le réseau, modifiez votre docker-compose pour qu'il ressemble à ceci :

services:
  dsm:
    container_name: dsm
    ..<snip>..
    networks:
      vdsm:
        ipv4_address: 192.168.0.100

networks:
  vdsm:
    external: true

Comment DSM peut-il acquérir une adresse IP de mon routeur ?

Après avoir configuré le conteneur pour macvlan (voir ci-dessus), il est possible que DSM fasse partie de votre réseau domestique en demandant une IP à votre routeur, tout comme vos autres appareils.

Pour activer ce mode, ajoutez les lignes suivantes à votre fichier de composition :

environment:
  DHCP: "Y"
device_cgroup_rules:
  - 'c *:* rwm'

zarev

->.<-
🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.