Remplacer un NAS propriétaire

Qu'est-ce qu'un NAS? C'est un serveur de fichiers qui permet l'accès et le stockage de données en réseau.

L'idée d'installer ce type de matériel provient chez moi de la volonté d'accéder à des fichiers (documents, photos, vidéos, musique) depuis n'importe quel poste, ordinateur fixe, portable, tablette, depuis le réseau Ethernet ou Wifi.

On évite ainsi les multiples copies, coûteuses en stockage, ou pire, d'avoir des copies différentes en versions.

Toutefois attention, à centraliser les données, on peut également toutes les perdre ou se les faire dérober depuis un point central : il font donc veiller à une sécurité d'accès et une redondance suffisante pour être serein.

La démocratisation du Wifi, du nombre d'équipements portables, de normes qui permettent la lecture de contenu depuis des plateformes différentes (téléviseur connecté, smartphones, ordinateurs) font que beaucoup de foyers font le pas d'achat de cet équipement.

Peut-être un jour que le cloud et le streaming surpassera le NAS domestique… en attendant, je préfère le stockage des données personnelles chez moi, avec une indépendance de fournisseurs matériels et logiciels, et surtout un respect de la vie privée !

On notera également qu'en 2012, le très haut débit n'est pas légion dans toute la France, et que l'accès des données dans son NAS privé reste la solution la plus performante.

Voici ma matrice de réflexion… ne représente pas forcément la réalité !

Plug'n play Liberté logicielle Liberté matérielle Performances Sécurité (authentification, chiffrement) Services additionnels Coût
Modem-routeur FAI (type Freebox) @palegreen:simple @red:aucun changement possible @red:aucun changement ou ajout de disques internes (possible via USB) @orange:acceptable @red:Minimale pour l'authentification, pas de chiffrement @red:Aucun @palegreen:Gratuit, hormis l'abonnement FAI
NAS propriétaire (type Synology) @orange:accessible sur la configuration de base @orange:système de plugins @palegreen:possible sur les disques durs @orange:dépend de la gamme d'achat @orange:Bonnes possibilités de sécurisation, mais sensible aux attaques @palegreen:Beaucoup de plugins @red:plutôt cher (300€) sur les modèles performants
NAS fait-maison @red:compliqué :) @palegreen:tout est possible ! @palegreen:possible @palegreen:très bon, meilleur rapport qualité/prix @palegreen:Très bonnes si bien configuré @orange:Possibilités illimitées, mais nécessite de mettre en place ou de développer @palegreen:fourchette large, mais meilleur rapport qualité/prix
Stockage Cloud (type Dropbox) @palegreen:simple @red:aucun changement possible @orange:aucune maîtrise, mais service assuré @red:dépendant du débit Internet @red:Bonnes possibilités de sécurisation, mais sensible aux attaques et aux questions sur la vie privée @red:Possibilités limitées dans un LAN, mais plutôt bonnes sur l'accès distant @red:cher sur le long terme, au mieux équivalent à un NAS propriétaire

La configuration ne me faisant pas peur… la maîtrise technologique et la maîtrise des données personnelles m'intéressant beaucoup, j'ai naturellement choisi le “NAS fait-maison”…!

J'ai fait le choix en 2011, d'un serveur surdimensionné en puissance matérielle, dans l'éventualité (avérée par la suite) de fournir des services additionnels qui nécessiterait cette puissance, tout en ayant une consommation electrique maitrisée :

  • Processeur Intel Core i3-2120T CPU @ 2.60GHz (TDP max 35W)
  • Mémoire DDR3 2 x 4Go
  • Disque dur 2 x 1.5 To, 5400t/min
  • Carte Ethernet Gigabit intégrée
  • Alimentation 60W

Solution logicielle “Linux” classique :

  • Système d'exploitation Linux Gentoo (choisi par connaissance et affinité)
  • RAID 1 logique (LVM)
  • Serveur Samba de partage de fichiers
  • Serveur SSH
  • Installation du logiciel “powertop” qui permet de vérifier un certain nombre de points connus
  • Installation du système d'exploitation et de la partition système sur une clé USB ou un SSD, afin de ne réveiller les disques dur à plateau que lors d'un accès à un fichier, et non sur une connexion SSH ou l'usage d'un autre service
  • Activer les options de gestion d'alimentation dans le BIOS, dans le noyau linux, ainsi que dans les options de pilotes de périphériques
  • Dans le fichier /etc/sysctl.conf,

vm.swappiness=0
vm.vfs_cache_pressure=50
vm.dirty_writeback_centisecs=1500
vm.laptop_mode=5

  • Ecrire des règles UDEV

# PCI runtime power management
ACTION==“add”, SUBSYSTEM==“pci”, ATTR{power/control}=“auto”
# USB autosuspend
ACTION==“add”, SUBSYSTEM==“usb”, ATTR{power/control}=“auto”
ACTION==“add”, SUBSYSTEM==“usb”, TEST==“power/autosuspend” ATTR{power/autosuspend}=“60”
# SATA active link power management
SUBSYSTEM==“scsi_host”, KERNEL==“host*”, ATTR{link_power_management_policy}=“min_power”
# Disable wake-on-LAN
ACTION==“add”, SUBSYSTEM==“net”, KERNEL==“eth*” RUN+=“/usr/sbin/ethtool -s %k wol d”
# HDPARM
ACTION==“add”, SUBSYSTEM==“block”, KERNEL==“sda”, RUN+=“/usr/bin/hdparm -S 3 /dev/sda”
ACTION==“add”, SUBSYSTEM==“block”, KERNEL==“sdb”, RUN+=“/usr/bin/hdparm -S 3 /dev/sdb”

  • Configuration IP du fichier /etc/sysctl.conf (passé de 150Mb/s à 900Mb/s) :

net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
#net.ipv4.tcp_rmem = 4096 87380 33554432
#net.ipv4.tcp_wmem = 4096 65536 33554432
net.ipv4.tcp_rmem = 4096 131072 33554432
net.ipv4.tcp_wmem = 4096 131072 33554432

  • Configuration Samba dans /etc/samba/smb.conf :

read raw = Yes
write raw = Yes
strict locking = No
min receivefile size = 16384
use sendfile = Yes
aio read size = 16384
aio write size = 16384

La surveillance du serveur de fichiers s'effectue via des scripts qui vont regarder:

  • l'état de santé des disques dur (via SMART et le logiciel smartmontools)
  • l'état du système RAID 1
  • l'usage du système de fichiers

Ces scripts envoient de manière journalière ou sur événement, un e-mail avertissant de l'état.

Le fonctionnement est très similaire des fonctionnalités proposés par les NAS commerciaux.

  • Streaming DLNA pour téléviseur connecté, avec transcodage de format vidéo et audio, grâce au logiciel Mediatomb et VLC
  • Serveur d'impression CUPS
  • Serveur d'impression Google Cloud Print (Impression depuis Internet avec Android)
  • Gestion d'un réseau Wifi Invité à la demande
  • Automatisation de recherche des sous-titres via opensubtitles.org
  • Serveur de métrologie et de surveillance pour certains équipements (serveur syslog par exemple)
  • Serveur SSH pour transfert de fichier et SSH-Forwarding
  • Service de remplacement à Dyndns
  • Dernières versions de Chrome et de Youtube pour remplacer un téléviseur connecté (via port HDMI du serveur)
  • Visioconférence sur le téléviseur grâce à Skype et une Webcam HD

Fabriquer un NAS libre, open source et dépendant le moins possible de fournisseurs est possible…! Si l'on se contente d'implémenter la fonctionnalité serveur de fichiers, il est très facile d'atteindre le niveau de redondance et de service attendu avec un NAS propriétaire.

A noter qu'il existe des distributions Linux, tel que FreeNAS qui permettent d'améliorer les phases d'installations et de configuration.