Déployer un NAS Synology dans une infrastructure VMWare

Table des matières

Dans cette publication, je partage mes notes de déploiement d’un NAS Synology DS620Slim dans une infrastructure VMWare en vue d’étendre mes capacités de stockage.

Mais pour quoi faire ?

Pour expérimenter et apprendre !

Mon Lab actuel tournant à base de NUC les capacités d’extension d’espace disque sont relativement limitées et couteuses, cette espace supplémentaire permettra de travailler sur des machines temporaires et des projets nécéssitant de l’espace disque …

Premiers paramètrages

Unboxing

Commençons par une revue de la solution retenue …

Dans le monde des “homelab”, les deux principaux constructeurs de NAS généralement rencontrés sont QNAP et Synology.

Pour ma part, pour des raisons de budget (et d’une belle promo) mais aussi de “form factor”, j’ai choisi d’investir dans la gamme Slim de Synology.

alt

L’encombrement est faible :

  • Largeur 150 mm
  • Hauteur 120 mm
  • Profondeur 175 mm

Pour ce qui est des caractéristiques techniques :

  • 6 emplacements 2.5"
  • processeur: Intel Celeron J3355 (Dual-Core 2 GHz / 2.5 GHz en burst avec cache 2 Mo).
  • deux ports Giga (ce qui nous permettra d’exploiter le multipath NFS …)
  • RAM : 2Go (extensible à 6Go)
alt

Mise en route

Après avoir monté les disques et la barette de RAM supplémentaire, je raccorde au réseau (on commence par une seule interface).

Le NAS est configuré nativement en DHCP plutôt que d’installer une application de découverte, un contrôle dans les journaux du serveur DHCP permet de retrouver rapidement l’IP affecté :

May 25 20:03:02 domosrv dhcpd: DHCPACK on 192.168.x.x to 00:11:32:xx:xx:xx (SynologyNAS) via eth0

Connexion à l’interface Web pour dérouler l’assistant de configuration

alt

alt
alt
alt

On mettra de côté la capacité d’être accessible depuis l’extérieur (surtout qu’ici il s’agit d’utiliser en intégralité le protocole de communication de l’éditeur), de toute façon il sera bloqué côté Firewall…

alt

Configuration du stockage

Je dispose de 4 disques SSD de 1To, le meilleur compromis est de mettre en place un RAID5 (tolérance de perte de 1 disque mais avec un impact sur les performances) l’idéal aurait été un RAID10 mais l’immobilisation de 2 disques c’est un peu trop …

alt

alt
alt
alt
alt
alt
alt
alt
alt
alt

Configuration de l’adresse IP

alt

Configuration des alertes email

Déclaration du serveur de messagerie pour recevoir les alertes.

alt

Modification du serveur de temps

qui pointe par défaut chez Google …

alt

Désactivation des services inutiles

alt
alt

Pour aller un peu plus loin dans le ménage, je me connecte en SSH et je consulte les packages installés :

admin@NAS-VM:/$ synopkg list

SynoFinder-1.4.1-0282: Synology Universal Search is a powerful search tool for your Synology NAS. In one search, you can find matched items from photos to notes. You can also index folders to provide precise and prompt search results by filename or file content. With Synology Universal Search, everything on your Synology NAS is just a few clicks away.

OAuthService-1.0.4-0030: OAuth Service is an open standard protocol for account authorization and authentication. It allows resource owners to authorize third-party access to their server resources without sharing their credentials. The package adopts OAuth 2.0 standard.

FileStation-1.2.6-0282: File Station is the centralized file management tool for your Synology NAS. Through File Station, you can manage and search files/folders, view files of various types, share private files with external users, mount remote folders and virtual drives for access, and do much more!

Les deux premiers packages ne font pas sens dans mon architecture et pour le premier il pourrait même engendrer un impact sur les performances …

Donc on fait le ménage :

admin@NAS-VM:/$ sudo synopkg uninstall SynoFinder
Password:
admin@NAS-VM:/$ sudo synopkg uninstall OAuthService
admin@NAS-VM:/$ synopkg list
FileStation-1.2.6-0282: File Station is the centralized file management tool for your Synology NAS. Through File Station, you can manage and search files/folders, view files of various types, share private files with external users, mount remote folders and virtual drives for access, and do much more!

Un petit coup d’oeil sur les process :

admin@NAS-VM:/$ ps aux  |grep thum
root     12643  0.0  0.1 517528  7572 ?        Ssl  May26   0:01 /var/packages/FileStation/target/sbin/thumbd
root     12646  0.0  0.0 443796  3236 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12648  0.0  0.0 443796  3236 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12897  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12898  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12899  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12900  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12901  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12902  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12903  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd
root     12904  0.0  0.0 517528  3268 ?        Ss   May26   0:00 /var/packages/FileStation/target/sbin/thumbd

En remontant à la source on comprend qu’il s’agit de processus associés à FileStation (que je ne souhaite pas désinstaller pour le moment) en charge de générer des vignettes.

Pour lequel la configuration se trouve ici :

/var/packages/FileStation/target/etc/conf/thumbd.conf

{
      "sock_type": "domain",
      "pid_path": "/run/filestation/thumbd.pid",
      "sock_path": "/run/filestation/thumbd.sock",
      "mode": "prefork",
      "min_worker": 2,
      "max_worker": 64,
      "min_free_worker": 10,
      "max_free_worker": 20
}

Neutralisation de ce processus inutile :

admin@NAS-VM:/$ sudo mv /var/packages/FileStation/target/sbin/thumbd /var/packages/FileStation/target/sbin/thumbd.old
admin@NAS-VM:/$ cat <<EOF >>/var/packages/FileStation/target/sbin/thumbd
#!/bin/sh
touch /tmp/toto
EOF

admin@NAS-VM:/$ sudo chmod +x /var/packages/FileStation/target/sbin/thumbd

Après un reboot du NAS, les processus ne sont plus lancés et … l’application FileStation marche toujours.

Un petit tour dans les services activés :

admin@NAS-VM:/$ sudo synoservice --status |grep enable
Service [dc-output] status=[enable]
Service [scemd] status=[enable]
Service [synocrond] status=[enable]
Service [iscsitrg] status=[enable]
Service [ssh-shell] status=[enable]
Service [synogpoclient] status=[enable]
Service [synobackupd] status=[enable]
Service [synoconfd] status=[enable]
Service [synovpnclient] status=[enable]
Service [pgsql] status=[enable]
Service [pkgctl-FileStation] status=[enable]
Service [DSM] status=[enable]
Service [hotplugd] status=[enable]
Service [dbus] status=[enable]
Service [synologanalyzer] status=[enable]
Service [syslog-notify] status=[enable]
Service [synocgid] status=[enable]
Service [snmp] status=[enable]
Service [syslog-ng] status=[enable]
Service [synomount] status=[enable]
Service [s2s_daemon] status=[enable]
Service [crond] status=[enable]
Service [synosnmpcd] status=[enable]
Service [synocachepinfiletool] status=[enable]
Service [syslog-acc] status=[enable]
Service [synostoraged] status=[enable]
Service [nginx] status=[enable]
Service [ntpd-client] status=[enable]
Service [scsi_plugin_server] status=[enable]
Service [synologrotate] status=[enable]
Service [findhost] status=[enable]
Service [synonetd] status=[enable]
Service [nfsd] status=[enable]
Service [nmbd] status=[enable]
Service [apparmor] status=[enable]
Service [synocacheclient] status=[enable]
Service [pppoerelay] status=[enable]

Je désactive les services qui ne me semble pas pertinent :

admin@NAS-VM:/$ sudo synoservice --disable synovpnclient
warn: The runkey of service [synovpnclient] has been set to "No"
admin@NAS-VM:/$ sudo synoservice --disable pppoerelay
warn: The runkey of service [pppoerelay] has been set to "No"

A ce stade nous avons un NAS qui est prêt pour son intégration dans l’infrastructure VMWare !

Intégration au sein de l’infrastructure

Choix du protocole de stockage

Il existe deux possibilités pour intégrer l’espace de stockage à notre infrastucture VMware :

  • iSCSI
  • NFS

J’ai décidé de m’orienter vers NFS pour plusieurs raisons :

  • De nombreux posts relatent des problèmes sur l’iSCSI avec DSM (l’OS de Synology)
  • L’absence de puce hardware dédiée (impact sur les performaces)
  • La complexité de configuration
  • L’absence de réel différenciant fonctionnel
  • Le support du NFS 4.1 (et donc du multipath - via configuration de 2 IPs dans 2 sous-réseau différents)
  • Le support de VAAI sur le stockage NFS du NAS via un plugin mis à disposition par Synology
En quelques mots, les primitives VAAI permettent de déléguer les manipulations de stockage vers la baie donc de soulager l’hyperviseur en CPU et bande passante.

Configuration du NFS sur le NAS

alt

alt
alt
alt
alt

Installation du plugin VAAI sur les ESXi

La méthode retenue est le mode ligne de commande !

Activation de SSH sur l’Esx :

alt
  • Téléchargement et transfert sur l’ESX du plugin
➜ 21:30 eric /tmp wget https://global.download.synology.com/download/Tools/NFSVAAIPlugin/1.2-1008/VMware_ESXi/synology-nfs-vaai-plugin-1.2-1008.zip
--2020-05-26 21:30:20--  https://global.download.synology.com/download/Tools/NFSVAAIPlugin/1.2-1008/VMware_ESXi/synology-nfs-vaai-plugin-1.2-1008.zip
[...]
2020-05-26 21:30:22 (120 KB/s) - ‘synology-nfs-vaai-plugin-1.2-1008.zip’ saved [140040/140040]

➜ 21:30 eric /tmp scp synology-nfs-vaai-plugin-1.2-1008.zip root@192.168.2.61:/tmp
  • Connexion sur l’ESX et installation du plugin
➜ 21:31 eric /tmp ssh root@192.168.2.61

The time and date of this login have been sent to the system logs.

WARNING:
   All commands run on the ESXi shell are logged and may be included in
   support bundles. Do not provide passwords directly on the command line.
   Most tools can prompt for secrets or accept them from standard input.

VMware offers supported, powerful system administration tools.  Please
see www.vmware.com/go/sysadmintools for details.

The ESXi Shell can be disabled by an administrative user. See the
vSphere Security documentation for more information. 

[root@localhost:/tmp] unzip synology-nfs-vaai-plugin-1.2-1008.zip
Archive:  synology-nfs-vaai-plugin-1.2-1008.zip
  inflating: index.xml
  inflating: vendor-index.xml
  inflating: metadata.zip
  inflating: synology-nfs-vaai-plugin-1.2-1008.vib
  
[root@localhost:/tmp] esxcli software vib install -v /tmp/synology-nfs-vaai-plugin-1.2-1008.vib  --no-sig-check
Installation Result
   Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
   Reboot Required: true
   VIBs Installed: Synology_bootbank_synology-nfs-vaai-plugin_1.2-1008
   VIBs Removed:
   VIBs Skipped:
  • Rédémarrer l’hote ESXi

Une fois le redémarrage terminé, on valide la bonne prise en compte du plugin :

[root@localhost:~] esxcli software vib list | grep nfs
synology-nfs-vaai-plugin       1.2-1008                              Synology  VMwareAccepted    2020-05-26
A noter qu’il était possible d’utiliser une méthode moins “manuel” en passant par l’update manager !

Création du datastore

Passons sur la console VSphere pour configurer notre nouveau datastore…

alt

alt
alt
alt

L’adresse du volume est récupéré sur le NAS ici :

alt
alt

On choisit les hôtes qui pourront exploiter le datastore :

alt
alt

Et voilà notre première machine exploitant ce nouvel espace est prête à démarrer.

alt

La prochaine étape sera la mise en place du multipath …

Related