Sur les NAS récents de marque QNAP, le sytème QTS 4.x qui tourne sur un noyau Linux proposait déjà une solution de virtualisation basée sur KVM. Il offre aussi l'application Container Station. Cette application prend en charge les containers LXC (Linux Container) et Docker. Cela méritait donc de tenter une installation de SQL Server 2017.

Via l'App Center du QNAP, installons l'application Container Station. Une fois installée, la configuration est extrêmement simple, il suffit de désigner le dossier qui contiendra les images de containers.

A partir de l'interface, il est très simple d'installer des container Docker, cliquer sur "Créer un conteneur" et une liste est proposée. Dans la boîte de recherche, taper microsoft/mssql pour obtenir la liste des images de SQL Server.

Installer l'image microsoft/mssql-server-linux (bouton installer), choisir la dernière version (latest) puis configurer les quelques paramètres nécessaires : d'abord le nom de votre image Docker, et les limites de ressources allouées, CPU et mémoire. Pour la mémoire, 4096 est une valeur minimale : il faut donc que vous ayez un NAS suffisamment équipé en mémoire...

Dans les réglages avancés, saisir 2 variables d'environnement et leur valeur :

  • Variable ACCEPT_EULA , la valeur doit être Y
  • Variable SA_PASSWORD la valeur est le mot de passe du login sa, qui doit être respecter les exigences de complexité (majuscules, minuscules, chiffres, caractères spéciaux)

Toujours dans les réglages avancés, configurez le réseau : vous pouvez choisir le mode bridge (avec une nouvelle adresse sur votre réseau, mappée à la carte réseau du NAS. Saisissez dans ce cas une adresse IP fixe), ou le mode NAT (utilise la même adresse que le NAS avec translation de ports).

Pour que vos fichiers de base de données soient accessibles à l'extérieur du container et durables même en cas de suppression du container, vous pouvez ajouter un volume monté depuis un répertoire partagé du NAS (que vous aurez créé préalablement). Redirigez le répertoire /var/opt/mssql vers le dossier de votre choix.

Puis cliquez sur le bouton "Créer". Il ne reste plus qu'à attendre le téléchargement de l'image (en tâche de fond) puis la création de votre container. Pendant ce temps, si vous le souhaitez, vous pouvez créer un enregistrement DNS pour votre nom de serveur ou un mappage dans le fichier host, ce qui vous permettra par la suite de vous y connecter par son nom au lieu de l'adresse IP.

Une fois l'image créée, vous pouvez voir les messages de console dans la fenêtre du container :

Une fois tout bien démarré, il ne reste plus qu'à vous connecter avec SQL Server Management Studio... Magique, non ? Aviez-vous rêvé un jour de voir SQL Server sous Linux, et qui plus est, installé sur un NAS ?