Le Blog Utux

HTTP 200 GET /

Monter ses partages à la demande avec Autofs

Rédigé par uTux 4 commentaires

Je me connecte régulièrement avec mon laptop à des partages Samba/CIFS de mon NAS. Pour cela j'utilise la commande suivante à chaque démarrage:

$ sudo mount -t cifs //192.168.1.1/partage /mnt/partage/ -o user=utux

J'aimerai que ce soit automatique. Le problème est que je ne peux pas utiliser le /etc/fstab car au moment où il est exécuté le réseau n'est pas prêt (wifi ou client openvpn). Il existe bien l'option _netdev mais elle n'a jamais fonctionné pour moi. Ce cas d'usage montre bien les limites des montages Linux qui ne sont pas adaptés à la mobilité et aux environnements dynamiques.

Bonne nouvelle, il existe une alternative: autofs qui s'appuie sur automount. Contrairement à mount, il connecte le partage lorsqu'on y accède (et pas au démarrage) et le déconnecte si on ne l'utilise pas. Il a aussi de nombreuses autres fonctionnalités:

  • Un système de templates utile quand on a de nombreux partages.
  • Support de plusieurs protocoles (cifs, nfs, raw...).
  • Auto-découverte des partages.
  • Consommation de ressources moindre (déconnecte les partages non utilisés)
  • Meilleure tolérance aux coupures réseau.

Installation sous Debian / Ubuntu:

$ sudo apt install autofs

Créer/éditer le /etc/auto.master:

/mnt	/etc/auto.nas --timeout 300 --browse

Créer/éditer le /etc/auto.nas:

partage -fstype=cifs,credentials=/home/utux/.autofs_creds,user=utux,uid=utux,rsize=8192,wsize=8192 ://192.168.1.1/partage

Créer le fichier /home/utux/.autofs_creds:

username=utux
password=secret

Mettre le /home/utux/.autofs_creds en chmod 0600:

$ chmod 0600 /home/utux/.autofs_creds

Mettre le /etc/auto.nas en chmod 0644

$ sudo chmod 0644 /etc/auto.nas

Démarrer le service:

$ sudo systemctl start autofs

Tester:

$ ls /mnt/partage

Si cela ne fonctionne pas:

$ sudo systemctl stop autofs
$ sudo automount -f –v

Notez que cela ne fonctionnera pas si le /etc/auto.nas est exécutable:

$ sudo chmod -x /etc/auto.nas

Autofs est génial et solutionne mes problèmes de montage de partages en mobilité.

EDIT 15/03/2020: Smb version 4, ajout uid pour corriger des problèmes de droits.

ENLARGE YOUR HP PROLIANT MICROSERVER GEN8 - épisode 1

Rédigé par uTux 2 commentaires

Je possède depuis plus de 2 ans un HP ProLiant MicroServer Gen8 qui tourne sous FreeNAS et fait office de NAS comme son nom l'indique. Équipé d'un Celeron G1610T, il tourne sous FreeNAS a offert des performances correctes jusqu'à ce que je décide un jour d'activer le chiffrement des disques. Ce processeur ne supporte pas les instructions AES-NI, donc le chiffrement et déchiffrement sont fait de manière logicielle, c'est lourd.

Pour y remédier il est possible de changer le CPU et se tourner vers des Xeon un peu plus costauds. J'ai donc commandé un E3-1260L (4c/8t @2.40Ghz). Niveau TDP on passe de 35W pour le Celeron à 45W ce qui reste correct pour le refroidissement semi-passif, surtout que le CPU ne tourne pas à 100% en permanence. Ce CPU offre 8 cœurs logiques, le turbo, et les instructions AES-NI ce qui devrait booster FreeNAS et les jails FreeBSD que je lui fais supporter.

En attente de réception du CPU !

Backuppc : attention aux exclusions

Rédigé par uTux 3 commentaires

J'utilise backuppc sur mon NAS à la maison pour sauvegarder mes VPS. J'aime cet outil car il est assez simple et s'appuie sur SSH + rsync des logiciels connus.

Pour un serveur Linux avec rsync, backuppc va tout sauvegarder à partir de /, ce qui est bien mais il y a des répertoires qu'on a pas forcément envie d'inclure, par exemple /tmp et /run qui sont volatiles ou /mnt qui est utilisé comme point de montage.

Avant je faisais comme ça :

Sauf qu'il s'avère que cette exclusion est un peu violente puisqu'elle ne va pas s'appliquer qu'aux répertoires situés à la racine, mais à tous. Et donc j'ai eu des surprises en constatant que dans ma sauvegarde, /var/www/dokuwiki/data/media était lui aussi exclu, ainsi que /var/www/dokuwiki/data/tmp.

Bon cette fois ce n'était pas méchant, mais voici la bonne pratique pour les exclusions, utiliser des chemins absolus :

Et voilà.

HP ProLiant MicroServer Gen8 : mon NAS homemade

Rédigé par uTux 10 commentaires

Le HP Proliant Gen8 G1610T format micro tour est un petit serveur en forme de cube ayant la particularité d'offrir 4 baies de disque. Il est totalement silencieux avec une consommation électrique maîtrisée et est proposé à un prix abordable. Il existe en version Intel Celeron ou Intel Xeon, la première étant trouvable à moins de 300 euros (j'ai eu le miens à 226€ neuf chez Amazon en Septembre). Ce n'est pas si cher si on le compare à un NAS Synlogy d'autant qu'on a droit à du hardware beaucoup plus intéressant :

  • CPU Intel Celeron G1610T (double cœur, 64 bits, virtualisation)
  • 2GB de RAM ECC (extensible)
  • 2 cartes réseau gigabit
  • iLo (KVM IP)
  • Un emplacement PCI Express 16x format low profile.
  • Consommation en idle et sans disques de ~30W
  • Silencieux
Lien vers la fiche constructeur.

On a donc un vrai serveur sur lequel on peut mettre l'OS de son choix et faire de la virtualisation.

Après avoir mis 8GB de RAM ECC ainsi que 4 disques de 1To dans les baies, j'ai installé FreeNAS sur une clé USB. Au démarrage le ventilateur souffle fort (puisqu'on a affaire à un vrai serveur) mais il ralenti progressivement pour devenir quasiment inaudible. C'est simple : ce serveur fait moins de bruit qu'une Bbox Sensation fibre.

Les disques en cours d'ajout dans les baies.

Je connaissais déjà un peu FreeNAS mais il y a quelques années encore je n'étais pas très familier avec ZFS et FreeBSD. Aujourd'hui je le suis beaucoup plus et je découvre donc à quel point ce produit est bon. Quelle joie d'avoir à portée de main les outils pour gérer un zpool, programmer des scrub périodiques, des snapshots avec durée de rétention, des dataset, des périphériques block...

Bien entendu FreeNAS est orienté NAS donc au delà de ZFS on a les fonctionnalités de partage Windows, UNIX et Apple ainsi qu'une gestion complète des utilisateurs (intégration LDAP ou AD possible).

Les sysadmin FreeBSD seront ravis de noter la présence des jails. Si vous voulez que votre NAS fasse office de serveur DNS, il suffit de créer une jail qui tournera sur FreeBSD 9.3 et dans laquelle vous pourrez configurer named. Backuppc ? Idem, une jail avec les ports qui vont bien (ou pkg).

Mes jails sur FreeNAS.

Pour le stockage j'ai testé deux configurations :

  • 4 disques en raidz-1, similaire à du RAID5 : 3TB utiles
  • 2 disques en mirror + 2 disques en mirror, similaire à du RAID10 : 2TB utiles.

La première configuration semble la plus avantageuse car elle offre la plus grosse capacité de stockage mais souffre de mauvaises performances en écriture sans que je comprenne réellement pourquoi (bloqué à 30Mo/s). Refaire le zpool avec 3 disques + 1 spare règle le problème mais c'est dommage d'avoir un disque inutilisé. Il faut noter aussi que beaucoup de sysadmin déconseillent le raidz-1/RAID5 en raison de la reconstruction stressante en cas de changement de disque. Cet excellent article résume la situation. La deuxième configuration en mirror+mirror n'offre que 2TB de stockage (50%) mais fonctionne mieux et la maintenance est facilitée. Voici mon zpool de stockage "data" :


[root@freenas] ~# zpool status
  pool: data
 state: ONLINE
  scan: scrub repaired 0 in 1h38m with 0 errors on Wed Jan 20 03:38:41 2016
config:

	NAME                                            STATE     READ WRITE CKSUM
	data                                            ONLINE       0     0     0
	  mirror-0                                      ONLINE       0     0     0
	    gptid/094171e0-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	    gptid/0a481bb7-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	  mirror-1                                      ONLINE       0     0     0
	    gptid/0b1b6253-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	    gptid/0bf02931-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0

errors: No known data errors

Explication : le zpool data est composé de deux vdev additionnés : mirror-0 et mirror-1. Chaque mirror est composé de deux disques qui, comme leur nom l'indique, sont en miroir (comme du RAID1). Notez qu'il n'y a pas de "stripping" comme dans le RAID10 entre mirror-0 et mirror-1, les données sont écrites là où il y a de la place. L'avantage est qu'on peut avoir deux vdev de taille différente. Par exemple mirror-0 pourrait faire 1TB et mirror-1 faire 2TB, le zpool aurait donc une taille de 1+2 = 3TB là où un RAID10 s'alignerait sur le plus petit et n'aurait donc que 2TB disponibles. ZFS permet aussi de remplacer les disques au fur et à mesure et augmenter la taille du stockage, le tout à chaud. Pour la petite histoire, je l'ai déjà fait sur un serveur de production en remplaçant des disques de 2TB par des 4TB, le zpool est passé de 4 à 6 puis à 8TB.

La compression lz4 est activée par défaut dans FreeNAS car avantageuse en terme de stockage mais aussi de performances. En effet le coût CPU est faible et la réduction du nombre de blocs physiquement écrits et lus améliore la rapidité.

En conclusion le HP Proliant G1610T est le serveur que j'attendais depuis des années. Silencieux, peu gourmand mais néanmoins véloce, il a tout d'un grand surtout les baies de disque qui permettent de faire du stockage. Associé à FreeNAS, il bat toutes les solutions propriétaires du marché et se révèle beaucoup plus souple pour un sysadmin comme moi qui ne jure que par les produits qui offrent un vrai accès root.

Fil RSS des articles de ce mot clé