Tutoriel configuration de FreeNAS

FreeNAS est un système d’exploitation libre basé sur freeBSD et destiné aux serveurs NAS pour le stockage de données en réseau. Comme j’en ai parlé dans cet article concernant ma stratégie de sauvegarde informatique, je vous propose de suivre dans ce tutoriel l’installation, la configuration et la sécurisation de mon NAS local puis d’un NAS distant avec synchronisation entre les deux systèmes.

Si vous êtes arrivés là vous devez certainement déjà connaitre FreeNAS, si ce n’est pas le cas vous pouvez faire un tour sur le site officiel du projet (en anglais) pour en savoir plus.

Dans cette première partie nous allons voir la configuration de base, les fonctionnalités plus avancées seront développées dans une seconde partie. Pour l’heure, c’est un menu en 12 étapes :

  1. Choix du matériel
  2. Installation de FreeNAS
  3. Intégration du NAS dans le réseau
  4. Configuration du compte administrateur
  5. Configuration système, réseau et email
  6. Place au stockage
  7. Créons des utilisateurs
  8. Division de l’espace et gestion des permissions
  9. Partage pour Windows
  10. Accès aux données à distances via FTP
  11. Les snapshots automatiques
  12. Suivi de la santé du NAS

 

Etape 1 : Choix du matériel

Tout d’abord il faut savoir que FreeNAS n’a pas des besoins matériels énormes pour tourner, tant mieux car le but est aussi de faire dans l’économique. Si vous avez jeté un œil à la documentation officielle vous avez constaté que la RAM mini est conseillée à 6Go, mais ceci est valable uniquement si vous utilisez ZFS comme système de fichier. Si vous ne le connaissez pas encore, je vous conseille d’aller sur la page Wikipedia pour une présentation simple, et nous en reparlerons car j’ai choisi d’utiliser ce système pour ses nombreux avantages.

Pour choisir le matériel il faut commencer par définir et hiérarchiser vos besoins, en ce qui me concerne le système de NAS doit être :

  • Performant
  • Economique, à l’assemblage et à l’usage
  • Facilement évolutif en terme de capacité de stockage
  • Raisonnablement silencieux
  • Sans grosse contrainte d’administration après la mise en place initiale

Et l’écologie dans tout ça ? Ben oui, c’est à la mode en ce moment ! Et bien finalement le fait d’être économe à l’usage et le plus silencieux possible va nécessairement conduire à minimiser la consommation et donc à monter un système le plus écologique possible. Pour le côté économique , n’ayant pas de pièces dispo dans un tiroir c’est principalement sur eBay et leboncoin que je me suis fourni, après 1 mois de fouille voici les achats définitifs :

  • Processeur : AMD Sempron 140 (15€), choisi pour sa faible consommation et sa puissance qui devrait être bien suffisante. Ventilateur fourni avec.
  • Carte mère MSI GF615M-P33 V2 (22€), format Micro-ATX qui est un bon compromis entre l’encombrement et les possibilités d’extensions, 4 ports SATA sur la carte (sur ce point j’aurais préféré une 760GM-p33 pour ses 6 ports mais on ne peux remporter toutes les enchères…), et supporte jusqu’à 16Go de RAM, ce qui à l’avenir pourrait être intéressant car ZFS aime la RAM. Carte vidéo et réseau gigabit intégrés.
  • 4Go de RAM Kingston en une seule barrette (22€ – neuve). Une seule barrette pour évoluer plus facilement ensuite.
  • Un boitier M-Cube de MaxInPower (25€ avec un graveur DVD en plus) : beau boitier, alimentation incluse, pas mal de place disponible pour les disques et un ventilateur 12cm à l’arrière.
  • Une clé USB Sandisk 4Go (8€ – neuve)

Soit un total de tout juste 100€ avec les frais de ports (matériel d’occasion, je le rappelle) sans les disques durs pour cette config. Ce que je trouve plutôt raisonnable. Après assemblage de tout ce petit monde on obtient ça :

La façade du boitier après assemblage du NAS

La face avant du boitier : le graveur ne me sert à rien, je l’enlèverai le jour où j’aurais besoin de la baie pour mettre des disques à la place, le petit écran est un thermomètre avec une sonde dans le boitier qui peut être placée où l’on souhaite. Pratique ! Je n’ai pas branché les ports en façade faute d’utilité et ça limite le nombre de fils à l’intérieur.

Vue sur l'intérieur du boitier

Vue de l’arrière : en haut à gauche, les 2 emplacements interne pour les disques durs, qui seront complétés si besoin par un rack dans les deux emplacements 5,25 pouces et le rack 3,5 pouce juste en dessous, soit au moins 6 disques facilement logeables. En dessous côté façade toujours on voit un emplacement pour un éventuel ventilateur de 8cm et il y a pas mal de place pour ajouter pourquoi pas encore 2 disques durs. A l’arrière le ventilateur de 12cm en extraction et on voit la clé USB qui hébergera le système en place à l’arrière.

 

Etape 2 : Installation de FreeNAS

Le système d’exploitation a besoin de 4 Go pour être installé : en fait il en utilise 2 Go et une seconde partition est réservée pour les mises à jour du système. L’intérêt est de l’installer sur une clé USB si la carte mère sait booter dessus, sinon sur une carte mémoire Compact Flash branchée via un petit adaptateur sur un port IDE. Vous pouvez également l’installer sur un disque dur mais attention : il sera totalement réservé au système, impossible de l’utiliser pour stocker des données ensuite, même sur une partition séparé. Un peu dommage de gaspiller un disque et un port SATA pour si peu…

IMPORTANT : J’ajoute ce petit commentaire car à la lueur de quelques commentaire il y a un point important que je n’ai pas mis en évidence : FreeNAS fonctionne un peu comme un “live-cd” : à la base le système embarqué sur la clé USB est en lecture seule, et les paramètres utilisateurs sont stockés sur la clé sous forme de base de données. Ainsi à chaque démarrage le système est chargé en mémoire, il détecte son environnement matériel et charge les drivers appropriés puis la configuration de la base de données. Tous les paramètres ou fichiers modifiés en dehors de la base de donnée sont donc supprimés à l’arrêt de la machine (y compris les fichiers log du système par exemple). L’avantage de ce système étant la grande flexibilité offerte.

Pour l’installation en elle-même 2 possibilités : télécharger l’image .iso, la graver sur un CD/DVD et installer depuis ce support sur le disque dur, la carte Compact Flash ou la clé USB. La seconde solution dite “installation complète” ne nécessite pas de lecteur CD/DVD dans le NAS : elle consiste à télécharger l’image du système et la transférer directement sur la clé, c’est tout !

Détaillons un petit peu tout cela.

Installation depuis un CDROM :

Note importante (Mise à jour de janvier 2014): La première partie du tuto a été écrite pour la version 8.0.4 de FreeNAS, celle ci est désormais introuvable en téléchargement. La version actuelle (FreeNAS 9.2) est sensiblement différente au niveau interface sur certains points en particulier.

Si vous voulez vous approcher au plus du tutoriel, téléchargez la dernière version de FreeNAS 8 : la 8.3.2, c’est celle qui tourne encore aujourd’hui sur mon NAS, les différences avec les copies d’écran sont minimes.

On commence d’abord par télécharger l’image ISO du système. Voici les liens directs pour télécharger la version 8.3.2 :

Pour les systèmes 32 bits : FreeNAS-8.3.2-RELEASE-x86.iso

Pour les systèmes 64 bits : FreeNAS-8.3.2-RELEASE-x64.iso

On grave ensuite l’iso sur un CD avec n’importe quel logiciel de gravure, je suppose que vous savez faire.

Pour l’installation il nous faut brancher un clavier, un écran, et un lecteur CD sur le NAS, ainsi que le média sur lequel vous souhaiter installer le système. Pour ne pas faire d’erreur, je recommande de ne pas brancher les disques de stockage pour l’instant. Insérez le CD dans le lecteur et on démarre dessus. On arrive sur cette page

Installation de FreeNAS depuis le CD-ROM.

Bien sûr on sélectionne le 1 et on valide OK avec la touche Entrée.S’affiche maintenant la liste des médias détectés sur lesquels on peut installer le système :

Installation de FreeNAS depuis le CD - choix du lecteur

Ici on voit la clé USB de 4Go et 2 disques de test de 20Go. On sélectionne la ligne contenant le lecteur où installer le système, ada0 dans mon cas, et on valide. On valide également le message d’avertissement qui suit.

Installation de FreeNAS depuis le CD - Avertissement

L’installateur fait son boulot et vous informe quand c’est terminé. Il n’y a qu’à retirer le CD du lecteur et à redémarrer la machine. Nous pouvons passer à l’étape suivante.

 

 Installation directement sur clé USB depuis Windows

Cette méthode d’installation est utilisée si vous n’avez pas de lecteur CD dans le NAS ou si comme moi vous êtes trop fainéant pour trouver un CD vierge, graver l’image puis procéder à l’installation. Cette fois on télécharge une image système que l’on va “dépacker” sur la clé USB (ou la carte Compact Flash, ou autre support de votre choix…). Sous Linux cette opération se fait grâce à une commande du système, sous Windows il nous faut un petit utilitaire très léger qui ne nécessite pas d’installation, il s’agit de physdiskwrite et un programme sachant décompresser les archives xz, comme 7zip par exemple. Téléchargeons donc le nécessaire :

Tout d’abord l’image FreeNAS, il s’agit d’un fichier compressé .xz que vous trouverez ici :

Note importante concernant la version : Voir la partie installation sur CD-ROM ci dessus.

Pour les systèmes 32 bits : FreeNAS-8.3.2-RELEASE-x86.img.xz

Pour les systèmes 64 bits : FreeNAS-8.3.2-RELEASE-x64.img.xz

Et on télécharge également l’utilitaire physdiskwrite

Petite préparation : on créé tout d’abord un dossier temporaire de travail que vous nommez comme bon vous semble. On dézipe physdiskwrite dans ce dossier. Avec 7zip on ouvre également l’archive .xz de FreeNAS et l’on décompresse le fichier FreeNAS-8.0.4-RELEASE-x64.img dans notre dossier temporaire. On va également se simplifier la vie en créant un raccourci vers la console exécutée en administrateur (important sinon cela ne fonctionne pas) dans ce même dossier. Si vous ne savez pas comment faire c’est simple :

Menu démarrer, tapez “cmd” dans le champs de recherche, cliquez et glissez cmd.exe vers votre dossier de travail en maintenant la touche Alt enfoncée, cela crée un raccourci. Cliquez avec le bouton droit sur le raccourci et “Propriétés”, dans l’onglet “Compatibilité” on coche “Exécuter ce programme en tant qu’administrateur”.

A ce stade on doit donc se retrouver avec ceci :

Dossier temporaire avant copie avec physdiskwrite

On branche la clé USB, il faut ensuite supprimer toutes les partitions présentent sur la clé : menu démarrer, tapez “gestion” dans le champ Recherche puis “Gestion de l’ordinateur”. Rendez vous dans la rubrique “Gestion des disques”. Dans la partie basse repérez votre clé, clic droit sur la partition correspondante et “Supprimer le volume…”. Validez, après avoir vérifié que vous ne supprimez pas toutes vos données ! On obtient une clé vierge de toute partition :

Suppression de la partition sur la clé USB

Cette fois on va enfin pouvoir mettre notre système sur la clé : rendez-vous dans le dossier temporaire, on lance la console dans laquelle on va taper ceci (bien sûr vous mettrez le nom exact de votre fichier image à la place) :

physdiskwrite -u FreeNAS-8.0.4-RELEASE-X64.img

ATTENTION : l’option -u enlève une sécurité qui évite d’écrire une image sur un disque de plus de 2Go, ne vous trompez donc pas en sélectionnant le mauvais disque à l’étape suivante.

Copie de l'image avec physdiskwrite

Physdiskwrite liste l’ensemble des disques physiques détectés, on ne voit pas les partitions. Les disques sont identifiables par leur taille donnée ici par le nombre de cylindres, ici la clé de 4Go est donc le disque physique numéro 2. On tape le numéro du disque correspondant à la clé et on valide le message d’avertissement par “y” après une dernière vérification. Physdiskwrite nous informe sur l’évolution de la copie. A la fin du processus si tout c’est bien déroulé nous avons FreeNAS d’installé sur la clé USB qu’il nous suffit d’aller brancher sur le NAS avant de le démarrer.

 

Installation sur clé USB depuis Linux

Encore plus simple pour linux, vous téléchargez le même fichier xz que pour l’installation complète sous Windows (cf ci-dessus) puis nous allons utiliser xzcat pour décompresser l’image puis dd pour la copie. Une fois l’archive de l’image téléchargée, d’un petit coup de console on se rend dans le dossier correspondant et l’on va grouper les 2 commandes par :

xzcat FreeNAS-8.0.4-RELEASE-x64.img.xz | dd of=/dev/da0 bs=64k

où of= est le point de montage de la clé usb et bs=64k impose une copie par blocs de 64ko. Patientez environ 5 minutes le temps de la copie.

ATTENTION : La commande dd est très puissante et une erreur dans le point de montage de votre clé peut se transformer en simple destruction de vos données…

 

Etape 3 : Intégration du NAS dans le réseau

Bon, maintenant que FreeNAS est installé, il s’agit de le faire fonctionner ! Si ce n’est pas encore fait il nous faut maintenant brancher sur le NAS un clavier et un écran de façon temporaire ainsi et bien sûr le connecter sur le réseau. Et c’est parti, on allume la machine… le temps du chargement du système et l’on tombe sur le menu du système :

Menu de freeNAS

Il y a ici 2 possibilités :Il y a un serveur DHCP sur votre réseau, et il vient d’attribuer une adresse IP au NAS, c’est mon cas ici et elle apparait si dessus entourée de rouge. Dans ce cas il va falloir configurer le serveur DHCP au niveau de votre routeur ou de votre “box” internet pour attribuer systématiquement au NAS la même adresse IP. Cela nous sera nécessaire par la suite pour mettre en place des redirections de ports et y accéder depuis l’extérieur. Pas vraiment de tuto à ce niveau mais vous devriez trouver des infos sur internet pour faire cela si besoin.

Configuration de l'interface réseau de FreeNASS’il n’y a pas de DHCP sur votre réseau il faut attribuer une adresse IP à notre NAS, pour cela dans le menu console on choisi “Configure Network Interface” en tapant 1 au clavier et en validant.

S’affiche alors une liste des interfaces réseaux présentes dans la machine, sélectionnez celle que vous utilisez, en général il n’y a qu’une carte réseau, donc pas d’autre choix que 1 ! On entre ensuite “n” parce que on ne souhaite pas supprimer une configuration actuelle, on veut au contraire en créer une. Puis à nouveau “n” car on configure en IP statique, pas de DHCP dans notre cas.

Dans l’entrée suivante on saisi “y” pour configurer une IP v4 et l’on peut ensuite donner un petit nom à notre interface (je l’ai bêtement nommée LAN) et enfin saisir l’adresse IP puis le masque de sous réseau. J’ai choisi de ne pas configurer d’IP v6.

Tout est configuré ? Un petit test, sur n’importe quel ordinateur du réseau, tapez l’adresse du NAS dans la barre d’adresse, et l’on doit tomber sur l’interface utilisateur de freeNAS :

Interface web utilisateur de freeNAS

Si c’est bien le cas alors on peut virer le clavier, l’écran et même le lecteur CD du NAS et commencer à configurer le tout !

 

Etape 4 : Configuration du compte administrateur

Nous voilà donc arrivé sur la toute jolie page de notre fringuant NAS tout nouveau, tout beau, mais ?!? “C’est quoi ce #!|&%£”#  de voyant rouge Alert qui clignote en haut à droite ???”

Comme son nom l’indique c’est le système d’alerte du système qui informe sur l’état des disques ou sur les points qui nécessitent une intervention de la part de nous les administrateurs. Un clic dessus donne plus d’info, ici on apprend par exemple qu’il nous serait bien de spécifier un mot de passe pour accéder à l’interface d’administration où nous sommes. Pour cela dans l’arborescence de gauche on va dans Account -> My Account -> Change Admin User. Indiquez ici le nom d’utilisateur de l’administrateur, il sera utilisé uniquement pour vous connecter à l’interface graphique. Seul le champ en gras est obligatoire.

Modification du mot de passe administrateur

On va ensuite changer le mot de passe dans la page Change Password (via la barre d’onglets en haut ou l’arborescence à gauche, c’est pareil !) et on entre un mot de passe pour l’administrateur. Pour la sécurité on choisit bien sûr un mot de passe fort. Je vous conseille de laisser cocher la case Change root password as well, ainsi le mot de passe de l’utilisateur root est le même que celui de l’administrateur via l’interface graphique, ce qui est plus simple. Il faut savoir que l’utilisateur administrateur que vous venez de renommez n’existe que dans l’interface graphique, quand plus tard on se connectera en ssh sur le NAS si l’on a besoin de privilèges important il faudra utiliser root.

Normalement en validant le changement de mot de passe on a dû changer la couleur de notre voyant Alert en vert, ouf ! Tout va bien.

 

Etape 5 : Configuration système, réseau et email

Paramétrage du système

Aller, on continue dans la config : dans l’arborescence de gauche, sous le menu Account on a le menu System on le déroule pour y trouver Reporting, c’est un onglet qui affiche différents graphiques indiquant le trafic sur la carte réseau, l’utilisation du système, etc… ça nous servira plus tard pour contrôler que tout se passe bien.

On va s’intéresser pour l’instant à System -> Settings et on commence avec le sous onglet General :

Freenas, paramètres systèmes généraux

On change Protocol en https, il s’agit du protocole utilisé pour se connecter à l’interface sur laquelle on est. Si vous ne souhaitez pas pouvoir y accéder depuis Internet mais seulement de votre réseau local alors vous pouvez le laisser en http. Pour ma part je trouve pratique de pouvoir surveiller à distance ce qu’il se passe, et comme le but final est d’avoir une synchronisation entre un NAS local et un distant, cela me permettra d’administrer facilement le distant.

Dans la même idée on peut éventuellement spécifier un port particulier dans WebGUI Port. Si vous n’indiquez rien les connections se font sur les ports par défaut (80 en http et 443 en https), mais si votre routeur s’administre également en https depuis l’extérieur vous ne pourrez pas accéder à FreeNAS, on peut donc spécifier un autre port au choix comme 4443 par exemple.

IMPORTANT : pour accéder depuis Internet à votre interface de configuration du NAS il vous faut ajouter dans votre routeur une redirection du port défini ci dessus vers l’adresse de FreeNAS et il est fortement conseillé d’avoir défini un mot de passe très robuste.

Language peut éventuellement être changé en Français, mais tout n’est pas traduit et c’est moins simple de trouver de l’aide ensuite sur les forums par exemple, j’ai choisi de laisser en anglais. Par contre, changez la Timezone vers Europe/Paris pour avoir la bonne heure. Celle ci sera récupérée sur les serveurs de temps défini juste dessous.

Un clic sur Save (et non Save Config) valide le tout… et normalement ça ne fonctionne plus ! En effet on vient de changer le protocole vers https et on est toujours connecté en http. Je vous conseille de fermer votre navigateur et le relancer. Bien sûr n’oubliez pas de préciser le https. Si en plus vous avez changé le port par défaut ça donne par exemple :

https://192.168.0.5:4443

Du coup vous allez vous retrouver avec une page de ce genre (variable selon votre navigateur) :

Freenas : alerte certificat non approuvé

Qu’est ce que c’est que ça !? Il faut savoir que lorsque vous avez demandé à FreeNAS de passer son interface en https il a automatiquement généré lui même un certificat SSL pour chiffrer la connexion, celui ci n’est donc bien sûr pas signé, approuvé, etc… mais il n’y a pas de souci à se faire puisque c’est nous même qui venons de le générer. On peut donc cliquer sur poursuivre et enregistrer le certificat (ou “conserver l’exception de sécurité” avec Firefox) pour ne plus avoir le message à l’avenir.

Encore un peu de configuration pour le réseau

Quelques petits réglages sont encore nécessaires pour parfaire l’intégration du NAS dans le réseau : rendez vous dans le menu de gauche dans Network -> Global Configuration. Ici on choisit un nom pour notre serveur, ce que l’on veut ! Et puis le nom du domaine si vous voulez.

Configuration réseau de FreeNAS

Plus important maintenant dans IPv4 Default Gateway vous allez entrer l’adresse de votre passerelle, en gros de votre routeur ou votre box, pour donner au NAS l’accès à Internet. A quoi cela peut il bien servir vous demandez vous ? Et bien avec un accès au web il va pouvoir envoyer des mails et maintenir sa pendule à jour automatiquement. Pour tout cela il faut également préciser dans les champs Nameserver l’adresse d’au moins un serveur DNS. Celui que vous voulez, ici j’ai mis ceux de Google, les célèbres 8.8.8.8 et 8.8.4.4 mais ceux de votre fournisseur d’accès sont utilisables également. Nous avons terminé avec le réseau.

Envoyons des e-mails maintenant !

Donnons maintenant à notre NAS la possibilité d’envoyer des mails, cela sera utile notamment pour le suivi SMART de la santé des disques et pour recevoir automatiquement le rapport quotidien d’analyse du système. L’envoi d’un mail de test à l’issue de la config se fait à l’utilisateur root, donc on doit déjà paramétrer son adresse. Rendez vous dans Account -> Users -> View All Users puis sur la ligne du username root cliquez sur Change E-mail et renseignez l’adresse que vous souhaitez.

Ajout de l'adresse email au compte root

Maintenant, on retourne dans System -> Settings puis à l’onglet Email cette fois. Et on remplit les champs : From est l’adresse écrite dans l’expéditeur du mail, je vous conseille de mettre la même adresse que votre Username. Renseignez ensuite le serveur smtp dans Outgoing mail server ainsi que le port dans Port to connect to, éventuellement dans TLS/SSL un cryptage en fonction du serveur que vous utilisez, Plain signifie pas de cryptage. Ci dessous un exemple utilisant gmail :

FreeNAS - Configuration de l'envoi des emails

Cette partie de la configuration est très dépendante de votre serveur de messagerie, en général le port est 587 pour du TLS, 465 pour le SSL ou 25 sans sécurisation.

Cochez ensuite la case (il y en a qu’une !) pour pouvoir inscrire votre nom d’utilisateur et 2 fois le mot de passe. Un clic sur Save pour enregistrer le tout puis sur Send Test Mail et vous devriez avoir reçu un mail de test.

Si cela ne fonctionne pas (l’erreur 65 est la plus fréquente): vérifiez que vous avez bien défini une IP pour la passerelle et au moins un serveur DNS (voir la partie ci dessus), vérifiez dans les spams (!), sinon selon votre fournisseur d’accès l’utilisation de serveur smtp autre que ceux du fournisseur est peut être bloqué, c’est notamment le cas chez Free par défaut, dans ce cas enlevez le blocage dans la configuration de votre box ou utilisez le serveur smtp de votre fournisseur.

 

 Etape 6 : Place au stockage !

C’est vrai quoi, on monte un NAS alors maintenant que l’on a configuré tout le bazar il faudrait un petit peu s’occuper de tous  nos disques durs que l’on a mis dans la machine.

Choix du système de fichier

A partir d’ici nous allons peut être avoir des choix différents, en effet la définition de la stratégie de stockage va dépendre en grande partie de votre matériel, notamment le nombre de disques, et le niveau de sécurité dont vous avez besoin. Pour simplifier les choses je vais expliciter mes choix au fur et à mesure de la configuration.

Commençons donc par créer un nouveau volume : dans les menus déroulants on va dans Storage -> Volumes -> Create Volume, la fenêtre qui s’ouvre liste entre autre les disques durs détectés par le système et qui sont disponibles.

Création d'un nouveau volume

 On a ensuite le choix entre deux systèmes de fichiers : UFS et ZFS. J’en ai déjà parlé rapidement en début de page, j’ai choisi d’utiliser ZFS. Tout d’abord parce que ce système n’a aucune limite physiquement atteignable aujourd’hui et pour de nombreuses années encore, pour vous en rendre compte jetez donc un œil sur la petite page de Wikipédia, ensuite car ZFS a de nombreux avantages :

  • Toutes les données écrites puis relues sont vérifiées, validées et éventuellement auto-réparées grâce à l’utilisation d’une checksum. L’intégrité et la protection des données sont les bases des spécifications de ZFS.
  • Gestion native de pools mutli-disques (proche des RAID 0, 1, 5 ou 6)
  • Création instantanée d’images disque (snapshots) grâce au “copy-on-write” : les données sont en fait copiées lors de modifications
  • Compression des données
  • Et bien d’autre encore…

Tout cela pour dire qu’utiliser FreeNAS sans ZFS serait se passer d’un des meilleurs atouts de ce système. Avant de débuter il reste 2 questions essentielles à éclaircir.

 Combien de volumes faut-il créer ?

Contrairement à un NTFS par exemple, il n’y a pas de système de partitions, la philosophie de ZFS est d’utiliser la totalité d’un disque dans un volume (pool) puis de diviser ensuite cet espace entre les utilisateurs. Je vous conseille donc de créer un volume unique pour toutes vos données, on verra la division de l’espace et la gestion des droits plus tard.

Comment grouper les disques dans mon volume ?

Grande question, si les notions de RAID 0, RAID 1, ou RAID 5 ne vous sont pas familières, je vous conseille de lire les rubriques correspondantes ici.

En résumé, le niveau de RAID détermine la façon de répartir les données sur une grappe de disques durs. En RAID 0, aucune protection car la grappe fonctionne comme un gros disque unique mais l’espace est maximisé. En RAID 1, ou miroir, toutes les données sont dupliquées à l’identique sur au moins 2 disques différents, d’où une protection maximale mais un espace d’autant plus réduit. En RAID 5 les données ainsi qu’une somme de contrôle sont réparties sur plusieurs disques, la protection est moyenne (on ne peut perdre qu’un disque à la fois) et l’espace disponible est un bon compromis.

Dans FreeNAS, le RAID 0 est appelé stripe, le RAID 1 est mirror et en ZFS le RAID 5 est un peu amélioré et devient RAID-Z ou RAIDZ1. Le RAID-Z2 est un genre de RAID 6 amélioré et autorise la perte de 2 disques dans la grappe.

Avec 2 disques je vous conseille fortement de créer un miroir (RAID 1) pour sécuriser vos données, avec 3 disques : au choix selon la redondance nécessaire : un miroir de 3 disques ou un RAIDZ. Ici j’utiliserai un RAIDZ car je rappelle que dans le cadre de ce tuto il est prévu à la fin de mettre en place une sauvegarde distante des données. Avec 4 disques, au choix entre un RAIDZ, plus risqué qu’à 3 disques, ou 2 miroirs associés ensuite en stripe… Et oui, c’est possible ! Et même excellent pour la protection des données et les performances. Avec 6 disques, pour la sécurité, le RAIDZ-2 est un excellent choix. Avec encore plusde disques, il vaut mieux créer des petits RAIDZ de 3-4 disques ou RAIDZ2 de 5-6 disques qui sont associés ensuite en stripe, c’est à dire un RAID 0 de RAIDZ plutôt qu’un énorme RAIDZ ou RAIDZ-2. Dans ce schéma on peut perdre un disque dans chaque RAIDZ (ou 2 par RAIDZ2) et les performances de lecture-écritures sont meilleurs

Dites moi si vous voulez plus d’info sur tout cela, je ferai peut être un article spécifique.

Création du volume

C’est parti, cette fois fini de discuter, on y va et on configure, toujours dans la fenêtre de création de volume on choisi un nom pour notre pool de données puis on coche les disques à utiliser. Bien sûr en ZFS et pour ma part je choisi un RAID-Z de 3 disques. Donc il faut cocher les cases des disques à utiliser puis dans Group type choisir RAID-Z.FreeNAS - Création d'un volume

Les options du bas sont spécifiques à ZFS. Je n’utilise pas ces fonctionnalités actuellement mais je vous explique rapidement :

  • Spare permet d’ajouter un disque “de secours” dans le pool, il n’est pas utilisé, aucune donnée n’est stockée dessus mais si l’un des disques du pool rend l’âme, ZFS utilise automatiquement celui ci en remplacement.
  • Cache permet de définir un disque à utiliser pour servir de cache de lecture. ZFS met en cache les fichiers les plus demandés pour accélérer l’accès, le premier cache utilisé est la RAM (d’où la quantité importante conseillée) c’est pourquoi ZFS en utilise le plus possible. Après tout autant que ça serve à quelque chose ! Si vous choisissez d’utiliser en plus un disque de cache il faut donc qu’il soit le plus rapide possible, donc un SSD. C’est plutôt pour accélérer les gros stockages avec de nombreux accès simultanés.
  • Log est un peu similaire à Cache mais il s’agit d’un cache d’écriture. Il est donc extrêmement recommandé d’utiliser 2 disques de Log qui sont automatiquement assemblés en miroir car la perte du disque de log peut entrainer la perte des dernière données écrites dans le pool et pas encore envoyées vers les disques de stockage. Là encore un usage très pro, mais ça démontre la puissance de ZFS.

Un clic sur Add Volume et voilà notre espace de stockage qui est créé. Petite précision tout de même importante : il n’est pas possible d’ajouter par la suite des disques supplémentaires de stockage à un pool RAIDZ existant (hors spare, cache ou log), pour étendre un RAIDZ. Soit vous remplacez un à un les disques par des disques plus gros, le RAID se reconstruisant à chaque remplacement, soit comme dit au dessus vous créez un second RAIDZ avec le même nom que le premier et ils seront associés en stripe.

Vous obtenez alors ceci : une liste avec votre volume et les infos d’espace utilisé (Used), disponible (Available), la taille totale (Size) et l’état du volume. Dans cette même liste on retrouvera plus tard les datasets, mais avant cela nous allons créer des utilisateurs.

Freenas - Liste et status des volumes

 

Etape 7 : Créons des utilisateurs

Avant de commencer à créer des accès à notre tout nouvel espace de stockage il va nous falloir des utilisateurs. En effet la gestion des droits s’effectue avec un système simple style unix. Pour ceux qui ne connaissent pas : chaque personne est identifiée par un nom d’utilisateur et les utilisateurs appartiennent à un ou plusieurs groupes. Tous les fichiers et dossiers sur le système ont un utilisateur propriétaire. A partir de là, pour chaque dossier ou fichier des droits de lecture, d’écriture et d’exécution sont définis pour le propriétaire, pour le groupe du propriétaire et pour les autres utilisateurs. C’est assez simple et ça permet donc de laisser toutes les possibilités de configuration.

A partir de là vous allez pouvoir commencer à réfléchir (et oui, encore !) à l’organisation de vos donnés en fonction des droits d’accès de vos différents utilisateurs. Pour faire simple on ne va créer qu’un utilisateur seul, le système va automatiquement créer un groupe du même nom.

Donc dans le menu de gauche on va dans Account -> Users -> Add User, s’ouvre cette boite de dialogue :

FreeNAS - Ajout d'un utilisateur

 

que l’on commence à remplir : je vous conseille de laisser l’ID (ici 1001) par défaut, le système associe chaque utilisateur à un numéro d’id avec une convention particulière dont on se fiche un peu dans notre cas. On écrit ensuite notre nom d’utilisateur. Pour le menu déroulant Primary Group ID on laisse vide : le système créera automatiquement un groupe du même nom que votre utilisateur et l’ajoutera à ce groupe.

Le Home Directory vous indiquez le dataset, le volume ou un dossier de l’utilisateur, pour l’instant pas le choix, vous notez le volume que vous venez de créer, précédé de “/mnt/” car les volumes sont pour le système dans le dossier “mnt”. Le choix du shell n’a pas trop d’importance pour l’instant.

Puis champs obligatoires : on indique un nom, une adresse email, un mot de passe et sa confirmation. C’est tout pour l’instant, on valide avec OK.

Et voilà un utilisateur ! Maintenant que vous savez faire pour un, libre à vous d’en créer autant que vous voudrez.

Je ne vais pas m’étendre sur la gestion des groupes c’est très simple. Pour créer un nouveau groupe, allez dans Account -> Groups -> Add Group, il n’y a qu’à indiquer un nom. Et pour gérer qui est dans quel groupe c’est dans View All Groups puis cliquez sur Members dans le groupe à modifier, cela ouvre cette boite de dialogue :

Modifier les utilisateurs dans un groupe

il suffit de sélectionner un utilisateur dans la liste à gauche et l’ajouter au groupe à droite avec >>

C’est clair ? Aller, on continue !

 

Etape 8 : Division de l’espace et gestion des permissions

On a des utilisateurs, des groupes, plein d’espace disque,… allons organiser un peu tout ça pour que chacun se retrouve bien chez soi. On retourne déjà dans Storage -> Volumes -> View All Volumes. Nous y retrouvons notre pool :

Liste des volumesUn petit clic sur le bouton avec la clé (Edit ZFS Options) nous ouvre cette boite :

FreeNAS - Réglage des options ZFS

Ici le paramètre intéressant à régler c’est le niveau de compression : Les données peuvent être stockées compressées au niveau du système de fichier : très intéressant pour gagner de l’espace selon les données que vous stockez mais ça prend un peu plus de ressources matérielles et donc ça réduira légèrement le débit maximum. Si vous n’avez que des fichiers dans un format déjà compressé (jpg, mp3, mp4, divx, …) cela ne changera pas grand chose au niveau de l’espace. Ce paramètre est réglable indépendamment pour chaque Dataset que nous allons créer. Je choisis de le laisser sur off. On peut fermer en cliquant sur Edit ZFS Volume, on parlera des quotas juste après.

Allons maintenant modifier les droits sur ce volume, pour cela on clique sur l’icône avec les disques empilés et la clé dessus :

FreeNAS - Liste des volumes

Nous arrivons sur la boite de dialogue de gestion des droits pour ce volume :

FreeNAS - gestion des droits

On va commencer par modifier le propriétaire qui si vous n’avez rien touché est à root, l’administrateur du système qui a tous les droits partout et tout le temps. Donc on va changer pour mettre un des utilisateurs créé à l’étape précédente. Idem pour le groupe. Notons au passage qu’il est très déconseillé d’utiliser le groupe wheel qui a lui aussi beaucoup de permissions.

Toute la gestion des droits s’effectue alors via les cases à cocher Mode : si elle est cochée c’est autorisé, dans l’exemple si dessus le propriétaire (Neo) peut lire, écrire et exécuter des fichiers présents sur le volume. Les membres du groupe Utilisateurs ont seulement un accès en lecture et exécution et les autres personnes n’auront aucun accès aux données de ce disque. Donc libre à vous de cocher ou non selon votre stratégie.

Je vous conseille de laisser Type of ACL (le format d’enregistrement des permissions) sur Unix même si vous n’avez que des postes clients Windows. En effet seul Windows est compatible avec son format alors que tous les OS, même Windows, sont compatible avec le format Unix.

La case Set permission recursively permet d’appliquer les changements d’un seul coup à tous les sous-dossiers contenus dans celui que vous modifiez, pratique pour changer un propriétaire mais faites assez attention quand même ça peut être puissant.

Divisions de l’espace : créons des datasets

Pour le moment nous avons un pool de stockage regroupant l’ensemble de l’espace disponible. Bien sûr c’est utilisable de la sorte en créant un partage unique pour ce pool mais on peut également choisir de séparer un peu tout ça pour l’organiser et appliquer ensuite des stratégies de partage, de sécurité ou de sauvegarde différentes. Pour cela on se rend dans Storage -> Volumes -> Create ZFS Dataset. S’ouvre cette boite de dialogue :

FreeNAS - Création d'un dataset

Le premier menu déroulant permet de choisir le volume où on va créer le dataset, pour l’instant on en a qu’un donc pas de souci. On choisit ensuite le nom de notre dataset. Ici j’ai mis Medias car ce sera l’espace de stockage de mes fichiers vidéos, audio et photos jpg (on parlera plus tard de tout ce qui est diffusion multimédia, UPNP etc… ).

Le niveau de compression est laissé sur Inherit, c’est à dire qu’il prend le même que le volume parent (ici pool1). On voit donc ici que l’on peut commencer à appliquer des choix différents selon le contenu futur des Datasets…

Ensuite une partie particulièrement intéressante : les quotas et réservation d’espace. Le quota permet de définir l’espace maximum que pourra occuper le dataset. Le même réglage est possible pour le dataset et tous ses “enfants” (sous-datasets). 0 signifie : pas de quota. Mais vous pouvez indiquer par exemple 300M, 20G ou 1T pour autoriser 300Mo, 20Go ou 1To maximum. Ici je choisis de ne pas attribuer de quota car je n’ai pas besoin de limite.

Les options de réservation d’espace (les 2 dernières) permettent, contrairement aux quotas, de directement réserver sur le volume l’espace attribué au dataset. Exemple :

Exemple d'un dataset avec quotaIci j’ai un volume pool1 de 70Go (on rigole pas, c’est pour les tests !) et j’ai créé un dataset Medias avec quota de 20Go. Seulement 2,7Go sont utilisés sur Medias. Au fur et à mesure que la taille de Medias augmente, celle de pool1 diminue, d’où ici 70-2,7 = 67Go affichés.

Exemple d'un dataset avec quota et réservationDans ce second exemple j’ai le même pool1 de 70Go et le dataset Medias avec cette fois ci un quota de 20Go et une réservation de 20Go. On voit que malgré l’espace utilisé de seulement 2,7Go sur Medias, la taille de pool1 a déjà été amputée de mes 20Go de réservation.

C’est clair la différence ? Donc de retour dans notre boite de dialogue pour créer le dataset. Je choisis de ne pas affecter de quotas ni de réservation donc on valide avec le bouton Add Dataset. Et le voilà qui apparait dans la liste des volumes accessible par Storage -> Volumes -> View All Volumes du menu ou plus simplement par le gros bouton Storage dans la barre horizontale en haut de la fenêtre.

Maintenant que le dataset est créé nous allons régler les permissions en procédant de la même façon qu’au début de cette étape. On sait faire, je ne réexplique pas, c’est exactement la même chose. Libre à vous de diviser l’espace selon vos besoin en suivant la même méthode.

On avance… Maintenant nous avons de l’espace disque divisé, des utilisateurs, les droits sont attribués, sauf que pour l’instant on a encore aucun moyen d’y mettre des fichiers, ça arrive !

 

Etape 9 : Partage pour Windows

Pour commencer à réellement utiliser le NAS en temps que NAS il ne nous reste qu’à configurer un partage, de sorte à pouvoir simplement monter le (ou les) datasets créé(s) en temps que lecteurs réseau dans le poste de travail… oui “Poste de Travail” et pas “Finder” car on va parler de Windows dans un premier temps. FreeNAS propose 3 types de partages différents :

  • AFP  (Apple File Protocol) accessible par MacOS
  • CIFS : typiquement pour Windows mais également accessible par MacOS, Linux, etc…
  • NFS (Network File System), accessible par MacOS, Linux et malheureusement seulement les versions professionnelles ou entreprises de Windows (pas par les versions Home ou Premium). Dommage car NFS est un peu plus rapide que CIFS.

Création du partage CIFS

2 possibilités pour notre partage : soit on configure un accès anonyme, n’importe qui sur le réseau peut alors monter le dossier que vous partagez ou alors on configure un accès pour utilisateur local, c’est à dire que pour utiliser l’accès il faudra s’identifier avec un nom d’utilisateur et un mot de passe préalablement défini dans le NAS. Comme c’est déjà ce que l’on a fait dans les étapes précédentes, on va configurer un accès avec identification (rassurez vous on aura pas besoin de taper le mot de passe à chaque fois !)

C’est parti : On va dans Sharing -> CIFS Shares -> Add CIFS Share :

FreeNAS - Créer un partage CIFS

On commence par définir le nom du partage, selon votre inspiration… mettez pas non plus n’importe quoi c’est ce nom qui sera visible dans Windows ! Le commentaire dessous est facultatif. Puis on clique sur le bouton Browse pour naviguer dans notre énorme structure de dossier et on sélectionne le Dataset (ou le volume) à partager.

On ne coche pas Export read only car le partage serait en lecture seule quelques soient les autorisations préalablement définies, par contre on coche Browsable to network client qui va nous permettre de naviguer avec l’explorateur Windows.

La case Export Recycle Bin peut être cochée si vous le souhaitez, cela crée une sorte de corbeille sur le partage, attention rien à voir avec la corbeille de Windows. Ici quand vous supprimez un fichier, Windows vous demandera si vous êtes sur de vouloir l’effacer définitivement mais il sera en fait envoyé par le NAS vers un dossier “.recycle” sur le même partage. Dossier qu’il faudra ensuite supprimer définitivement à la main… Pas très pratique, j’ai choisi de ne pas cocher.

On configure un accès avec identification, donc le Guest Account (compte invité) est réglé sur le compte nobody. Dans la suite de la boite de dialogue nous avons ça :

FreeNAS - Créer un partage CIFS

Donc on laisse décochées les options en rapport avec l’accès invité (anonyme). Les champs Hosts Allow et Hosts Deny vous permettent de définir une liste (séparée par espace ou virgule) d’adresse IP des ordinateurs respectivement autorisés ou interdits à se connecter au partage.

Enfin viennent les paramètres auxiliaires (oui j’en ai mis une bonne liste !) je vous explique : lorsque plus tard vous aurez des accès ssh, un dossier “.ssh” sera créé ou lorsque un Mac se connecte sur votre partage il ajoute ses fichiers .Appleqqchose dans votre beau partage. Donc pour éviter d’afficher tout ça aux utilisateurs, sans toutefois les supprimer, on ajoute ces quelques paramètres supplémentaires :

veto files = /Temporary Items/.DS_Store/.AppleDB/.TemporaryItems/.AppleDouble/.bin/.AppleDesktop/Network Trash Folder/.Spotlight/.Trashes/.fseventd/.cshrc/.login/.login_conf/.mail_aliases/.mailrc/.profile/.rhosts/.shrc
delete veto files = yes
hide dot files = yes

veto files défini une liste de fichiers à ne pas afficher.

delete veto files permet d’autoriser la suppression automatique des fichiers lorsque vous supprimez un dossier qui vous semble vide mais qui contiendrai en fait l’un des fichiers listé ci dessus.

hide dot files permet d’une manière générale de masquer tous les fichiers dont le nom commence par un point. Attention dans ce cas si vous avez activés la corbeille vous ne verrez pas le dossier “.recycle” !

Configurons à présent le service CIFS qui gère le partage que nous venons de définir. On va dans Services -> CIFS la fenêtre suivante s’ouvre :

Nous y configurons quelques paramètres : le mode d’authentification reste en Local User pour nous ici, le netBIOS name doit préférentiellement être identique au Hostname défini pour la machine à l’étape 5 dans Network -> Global Configuration. Pour le Workgroup, mettez celui de votre Windows, souvent WORKGROUP par défaut. Les options suivantes sont un peu avancées, on les laisse telle quelle pour notre utilisation de base, on y reviendra peut être plus tard pour essayer d’optimiser le débit maximum. En attendant, on peut descendre et valider la boite de dialogue.

N’oubliez pas d’activer le service dans Services -> Control Services en passant sur ON le petit bouton CIFS qui doit maintenant rester bleu.

Du côté Windows à présent, on va monter le partage comme un disque réseau pour l’avoir en accès simple en permanence. Pour cela il y a plusieurs façon de faire notamment dans Ordinateur avec Connecter un lecteur réseau, mais je préfère une autre méthode via la ligne de commande : on ouvre un terminal via Démarrer, exécuter “cmd” et l’on tape :

net use x: \\nom_ou_IP_du_NAS\nom_du_partage /USER:utilisateur

avec x, la lettre de lecteur à attribuer et les autres paramètres selon votre configuration précédente. “utilisateur” est à remplacer par le nom de l’utilisateur qui aura l’accès au partage. On valide et Windows demande ensuite le mot de passe de l’utilisateur. On le tape et c’est terminé, ce sera la seule fois. Vous avez maintenant accès à votre NAS depuis l’explorateur ! Voilà un bon pas de franchi maintenant.

Note : il peut se passer plusieurs minutes avant que le NAS soit visible dans le voisinage réseau de Windows après la mise en marche du service CIFS

 

Etape 10 : Accès aux données à distance via FTP

Grâce au partage précédemment mis en place on accède aux données du NAS à partir du réseau local, c’est bien mais on peut faire encore plus… Nous allons donc à présent configurer un accès FTP à nos données, le but étant de pouvoir accéder à notre stockage pour récupérer ou déposer des données où que nous soyons dans le monde. Bien évidemment on va ouvrir un accès FTP crypté et nécessitant une connexion avec login/mot de passe des utilisateurs.

Donc on se rend dans Services -> FTP et dans la fenêtre qui s’ouvre, nous configurons les paramètres suivants :

Configuration du FTP

Le port, par défaut à 21, je vous conseille de le changer pour d’avantage de sécurité pour un de votre choix. Important : pour y accéder depuis l’extérieur, n’oubliez pas d’ouvrir le port correspondant ou de définir une redirection de port sur votre routeur ou box internet.

Client défini le nombre maximum de clients simultanés, Connexions le nombre max de connexions par client. Login Attempts le nombre d’erreurs de mot de passe avant déconnexion et Timeout le délai (en seconde) d’inactivité du client avant que le serveur ne le déconnecte.

On coche ensuite la case Allow Local User Login (attention de ne pas cocher root login et anonymous login).

FreeNAS - Configurer un accès FTP

Dans la suite de la fenêtre nous configurons les autorisations pour les fichiers (File Permission), puis les dossiers (Directory Permission), qui sont affectées aux nouveaux fichiers que les utilisateurs enverront sur le serveur. Inutile de cocher des Execute pour les fichiers, ce ne sera pas sauvegardé.

Cocher la case Always Chroot permet de bloquer les utilisateurs dans leur dossier « Home », que nous avons défini à l’étape 7, il n’est donc pas possible de remonter dans l’arborescence vers les dossiers systèmes ou les données d’autres utilisateurs.

Pour la Masquerade Adress un peu d’explications : lorsque le client ftp se connecte au serveur, après l’authentification, le serveur envoie son adresse IP et des numéros de port au client afin que celui-ci ouvre des connexions permettant le transfert des données (c’est le fameux mode passif du ftp). Si vous laissez la Masquerade Adress vide le serveur enverra son adresse IP… c’est-à-dire la seule qu’il connait : son adresse sur le réseau interne : un 192.168.xx.xx. Donc le client ne peut pas se connecter s’il n’est pas lui aussi sur le réseau. Vous le voyez arriver, si l’on remplit la masquerade avec notre IP publique (celle attribuée par votre fournisseur d’accès, et donc il faut être en IP fixe), le serveur envoie cette adresse là au client qui peut alors se connecter, même au bout du monde.

Petit bémol : si la Masquerade est remplie avec votre adresse publique, vous ne pourrez plus vous connecter en FTP depuis votre réseau interne en utilisant l’adresse interne du NAS.

Petite astuce : selon le client ftp que vous utilisez, et c’est le cas avec l’excellent Filezilla, même si vous ne remplissez pas la Masquerade et que vous êtes à l’extérieur le client comprend qu’un truc ne va pas quand le serveur envoie son adresse et il modifie tout seul. Du coup ça marche partout sans se poser de questions !

Conclusion : Laissez vide pour l’instant et remplissez la plus tard si vous rencontrez le symptôme suivant : le client se connecte bien au serveur mais impossible d’obtenir la liste des dossiers.

FreeNAS - Configurer un accès FTP

Dernière partie de la fenêtre : il nous faut allouer une plage de ports utilisés pour les connexions d’échange de données. Donc on définit une large plage entre Minimum et Maximum passive port, celle que vous voulez tant que c’est au dessus de 1024. J’ai mis par exemple les derniers ports existant : entre 64000 et 65534. Important : là aussi il y a une redirection ou ouverture de port à faire sur votre box ou routeur.

Si vous le souhaiter, vous pouvez définir des limites de bande passante en dessous, les valeurs sont à remplir en kilo octet par seconde. 0 correspond à illimité.

Et enfin pour la sécurité, on coche Enable SSL/TLS et pour encore plus de sécurité et empêcher à un utilisateur de se connecter sans SSL on ajoute le paramètre auxiliaire :

TLSRequired on

Le serveur refuse ainsi une connexion non sécurisée, que ce soit pour les commandes ou les données.

Un clic sur OK, puis dans Services -> Control Services on passe le service FTP sur ON et…. c’est terminé !

 

“Help ! Help ! Mon service FTP veut pas démarrer !”, il y a un problème assez fréquent avec ce service : pour démarrer il doit pouvoir associer une adresse IP avec le nom d’hôte du serveur. Selon la configuration de votre réseau ça peut marcher directement, sinon voici l’astuce. Premièrement, il faut impérativement que votre NAS ai toujours la même adresse IP, ensuite retournez dans la configuration FTP et dans les paramètres auxiliaires ajoutez la ligne suivante en remplaçant les x par votre adresse IP :

DefaultAddress 192.168.xxx.xxx

 

Et maintenant pour y accéder via notre client (si vous ne savez pas lequel prendre je conseille FileZilla) il faut utiliser une connexion FTP explicite sur TLS/SSL sans oublier de changer le port par défaut par celui que vous avez choisi ou alors utiliser une adresse du type :

ftpes://add.res.se.ip :port

 

Etape 11 : Les Snapshots automatiques

Créer une tâche de snapshots automatiques

Un snapshot, en français un instantané, est en fait une photo en lecture seule d’un dataset à un instant t. Cette image peut ensuite être montée à n’importe quel moment pour vous permettre d’explorer vos données telles qu’elles étaient à cet instant t… Vous commencez à voir les avantages là non ? Récupération de fichier effacé par mégarde, historique des versions, etc…

Et cela est créé quasi instantanément. Oui, oui, une image disque instantanée ! Très fort, n’est ce pas ?

Je ne vais pas détailler ici le fonctionnement interne des snapshots car ce n’est pas l’objet mais si vous êtes curieux il y a une bonne explication sur ce blog.

Donc pour configurer ça on va dans Storage -> Periodic Snapshot Tasks -> Add Periodic Snapshot.

Création d'une tâche de snapshot périodique

Dans le premier menu déroulant on choisit pour quel volume ou dataset nous allons créer des snapshots, donc on peut, si on le souhaite, appliquer une stratégie différente pour nos différents datasets. On coche la case Recursive qui permet de prendre le snapshot pour la totalité de l’arborescence du volume (ou du dataset) entier exactement au même instant. Lifetime détermine le temps que le snapshot sera conservé.

Ensuite avec Begin, End, Interval et Weekday on décrit la fréquence à laquelle le système doit faire les snapshots. C’est très simple : dans la fenêtre ci-dessus il fera un snaphshot toutes les heures entre 9h et 18h du lundi au vendredi.

A vous de voir le réglage que vous souhaitez, plus les données sont modifiées fréquemment et plus il est utile d’augmenter la fréquence des snapshots. Sachez que si vous ne modifiez aucune donnée en un snapshot n et un n+1 alors le n aura une taille nulle (très précisément quasiment nulle).

 

Comment on voit les snapshots ?

Bah oui, on a fait de beaux snapshots, maintenant on voudrait bien savoir comment on les voit… Alors on va dans Storage -> Volumes -> View All Volumes (ou alors directement le bouton Storage en haut) puis dans l’onglet ZFS Snapshots

Listage des snapshots effectués

Donc on y trouve la liste de nos snapshots réalisés pour tous les volumes (et datasets), leurs petits noms qui indiquent la date et l’heure, la place qu’ils occupent réellement sur le pool (ici elle est nulle car je n’ai pas modifié de fichier entre les deux) ainsi que le volume qu’ils décrivent.

La case à cocher à gauche permet de faire une sélection multiple pour supprimer avec le bouton Destroy en bas. Et le plus intéressant ce situe à droite : 2 boutons : Clone et Destroy, et un troisième : Rollback pour le snapshot le plus récent de chaque dataset. Destroy Snapshot se comprend facilement, pour les autres on va s’y attarder un peu dans la suite.

 

J’ai un problème, je veux retrouver des fichiers supprimés

Ca tombe bien, on est dans la fenêtre de visualisation des snapshots, pour retrouver mes fichiers j’ai 2 possibilités :

La première est peu conseillée sauf gros problème : c’est le bouton Rollback, cela va restaurer la totalité du dataset dans l’état où il était lors de la création du snapshot

Restaurer un volume ou un dataset à partir d'un snapshot

Le système demande d’ailleurs confirmation car cette opération va également supprimer les nouveaux fichiers créés depuis par exemple.

La seconde méthode plus douce c’est le bouton Clone Snapshot, comme son nom l’indique il va créer une copie du snapshot qui elle sera accessible en écriture et que l’on va pouvoir monter (sur le même volume) pour y accéder. Exemple après un clic sur le bouton :

Cloner un snapshot pour l'explorer

Il faut entrer un nom et l’emplacement du clone. Ici c’est un clone de mon dataset « Photos », donc je dois obligatoirement le mettre sur mon volume pool1 et je choisi de le mettre également dans le dataset photos. J’aurais pu le mettre ailleurs dans mon volume. L’intérêt c’est que j’ai un partage CIFS de mon dataset Photos, du coup avec l’explorateur Windows je peux naviguer dans le dossier Photos/CLONE qui est l’image de mon dossier Photos au moment où le snapshot a été pris… vous suivez ? ça fait un peu Retour Vers le Futur quand même.

Il ne nous reste plus qu’à récupérer dans ce dossier, via le partage, les fichiers que l’on a supprimés par mégarde et le tour est joué.

Le clone a été créé comme un dataset, pour le supprimer il faut donc aller dans Storage -> Volumes -> View All Volumes et cliquer sur Destroy Dataset

Supprimer un clone de snapshot

 

Etape 12 : Suivi de la santé du NAS

Paramétrage de S.M.A.R.T

S.M.A.R.T., pour Self-Monitoring, Analysis and Reporting Technology, est un protocole de communication entre la carte mère et le disque dur permettant au système d’exploitation de récupérer des informations relatives aux mesures physiques effectuée par les capteurs interne du disque dur et enregistrées sur une zone spéciale du disque. On va trouver le nombre d’heure de fonctionnement, les secteurs défectueux, la température, et plein d’autres choses encore.

Quel intérêt à aller lire ces données ? Et bien d’essayer de “prédire” la défaillance d’un disque. Cela ne marche pas à tout les coup bien sûr mais certaines pannes à venir sont détectables par une augmentation du nombre d’erreur internes, de ré-allocation de secteurs, etc… Vous trouverez plus d’infos, générales et sur les différents attributs, sur la page Wikipédia.

Plusieurs petites étapes sont nécessaires pour configurer S.M.A.R.T. sur FreeNAS :

1) Vérifier que S.M.A.R.T. est activé pour chaque disque dur (c’est le cas par défaut)

2) Planifier un ou plusieurs tests S.M.A.R.T.

3) Configurer et démarrer le service S.M.A.R.T.

 

Donc dans l’ordre : 1) pour vérifier que S.M.A.R.T. est activé pour les disques dur on clic sur le gros bouton Storage dans la barre horizontale du haut (ou alors dans Storage -> Volumes -> View All Volumes) puis sur la ligne correspondant au pool sur le bouton View Disks (le second en partant de la droite). L’onglet qui s’ouvre liste les disques de votre pool et vous pouvez voir dans la colonne Enable S.M.A.R.T. écrit true s’il est activé. Si ce n’est pas le cas, un clic sur le bouton Edit du disque correspondant et on coche la case Enable S.M.A.R.T. avant de valider.

Ensuite : 2) Dans System -> S.M.A.R.T. Tests -> Add S.M.A.R.T. Test on va sélectionner le disque à tester puis configurer le type de test (le short dure quelques minutes, le long, plus complet, quelque dizaines de minutes, ces deux tests n’empêchent pas l’accès aux données pendant leur exécution) et enfin à quelle fréquence le test doit être exécuté.

Configuration de S.M.A.R.T.

Ici j’ai par exemple choisit de faire un test court tous les jours à 2h du matin : j’ai sélectionné “02″ dans les heures et laissé tout le reste coché pour les jours de la semaine, les mois et tous les 1 jour.

On répète la manip pour tous les disques à tester et les différents tests si vous souhaitez en faire d’autres à des fréquences différentes. Pour ma part j’ai mis un test court tous les jours à 2h et un test long toutes les 2 semaines à 6h.

 

Enfin : 3) On se rend dans Services -> S.M.A.R.T. Il n’y a pas grand chose à régler : le Check Interval vous pouvez le laisser à 30, cela signifie que toutes les 30 minutes le service S.M.A.R.T. va se réveiller et vérifier s’il y a un des tests programmés précédemment à lancer. Le Power Mode permet de choisir de ne pas faire le test en fonction de l’état d’alimentation du disque. Par exemple si vous ne voulez pas faire le test si le disque est à l’arrêt choisissez Sleep. Je l’ai laissé par défaut : on lance le test quelque soit l’état du disque (en marche, à l’arrêt, en veille,…)

FreeNAS - paramétrage de S.M.A.R.T.

Les 3 champs suivant permettent de définir des seuils de température du disque à partir desquels le service écrira un message dans un log (Informal) ou enverra un mail d’alerte (Critical). Difference est un peu différent : cela reporte un message dans le log si la température a changé de plus de cette différence depuis la dernière mesure. Pour ces champs un “0″ désactive le test. Et enfin, bien sûr, l’adresse e-mail utilisée pour les rapports.

ATTENTION : Vous ne recevrez pas un mail après chaque test. Le service envoie un rapport uniquement si un problème est détecté durant le test.

Dernière étape : Mettre en marche le service dans Services -> Control Services et on passe S.M.A.R.T. sur ON. Et voilà ! La santé de nos disques durs est maintenant surveillée d’un peu plus près, mais attention tout de même : ce système de test ne peut pas prévoir toutes les défaillances.

 

Visualisation des messages systèmes

On va voir ici une astuce intéressante pour suivre un petit peu ce qu’il se passe dans le système, trouver la cause d’un service qui refuse de démarrer, voir les différents message d’information ou d’alerte, etc…

Tous les évènements du systèmes sont enregistrés dans un fichier (situé dans /var/log/messages si vous voulez y accéder manuellement) et il est possible d’afficher ce fichier en bas de l’interface web. Pour cela on se rend dans System -> Settings puis dans l’onglet Advanced et on coche la case Show console messages in the footer (Requires UI reload) avant de valider avec Save.

Pour faire apparaitre la console il faut rafraichir la page via le navigateur et on obtient ceci en bas de page :

FreeNAS - Messages de la console

Un clic dessus permet de développer la zone verticalement et de remonter dans l’historique.

Sauvegarde de la configuration

On l’a vu au tout début du tuto : FreeNAS est un système “live-USB” avec une base de données pour stocker nos paramètres utilisateurs. Maintenant que l’on arrive à la fin de notre tuto de configuration de base, je sais pas ce que vous en pensez mais on est en droit de se dire qu’en cas de problème avec la clé USB du système ou en cas de mise à jour par exemple ça serait bien de ne pas tout reparamétrer, recréer les utilisateurs, etc, etc,….

Fort heureusement il existe la possibilité de télécharger le fichier de base de données contenant toute la config et de la restaurer en cas de besoin, alors on ne va pas s’en priver : dans System -> Settings on clique en bas sur le bouton Save Config et on télécharge le fichier .db. C’est tout !

Sauvegarde de la configuration

En cas de besoin il suffit de partir d’une installation de FreeNAS toute vierge, d’aller directement dans System -> Settings et de faire Upload Config. Simple non ?

 

Voilà qui clôt ce premier tuto sur la configuration de base de FreeNAS, la suite arrive progressivement avec notamment la mise à jour, l’installation des plugins sur les versions 8.2 et suivantes, l’accès ssh par clé… qui va nous amener petit à petit vers le but final : la synchronisation entre 2 NAS distants via rsync.

–> Pour la suite c’est par là : Utilisation avancée de FreeNAS

N’hésitez pas à laisser des commentaires, j’essaye de clarifier ou modifier certains points en fonction.


Vous avez aimé ? N'hésitez pas à partager :
Facebook Twitter Google+ Mail

339 réflexions sur “ Tutoriel configuration de FreeNAS ”

  1. Bonjour,

    Merci pour ce tuto.

    Est ce que quelqu’un arrive à faire du WOL avec?

    Merci d’avance.

    Cordialement,

  2. Bonjour,
    quand je veut accéder a x: sa me met x: n’est pas accessible et accès refusé pourtant j’ai suivi a la lettre le tuto

  3. SALUT
    mon serveur fonctionnait jusqu’ici tres bien et ce soir, je n’ai plus acces depuis ms autres pc
    voyant jaune clignotant, et message “The volume DISC1 (ZFS) status is ”
    un coup de main?
    merci d’avance

  4. Hello, joli tuto, et chouette site oueb également.

    Juste pour souligner ATTENTION AVEC ZFS et la RAM NON ECC c’est FORTEMENT DéCONSEILLé.

    Toutes les données écrites puis relues sont vérifiées, validées et éventuellement auto-réparées grâce à l’utilisation d’une checksum. L’intégrité et la protection des données sont les bases des spécifications de ZFS. : Certes ce qui induit de facto que la RAM ne provoquera pas d’erreur I/O chose qui arrive avec la RAM non ECC, ZFS fait confiance à ce qu’il reçoit de la RAM pour son CopyOnWrite, d’ou utilisation obligatoire de RAM corrigeant ses erreur (la fameuse ECC).

    En cas de corruption de la donnée en RAM (problème électrique ou quelconque), la donnée corrompue sera bien écrite sur agrégat mais restera corrompue : ) ZFS ne détectera pas ça comme une donnée corrompue (il fait confiance à ce qu’il reçoit de la RAM) ni comme un problème sur l’élément disque.
    Et dans ce cas, et bien tu n’auras que tes yeux pour pleurer, pas de système de transaction ou de check avec ZFS pour corriger les données corrompues … bref tout à jeter.

  5. C’est pour quand le tuto pour 9.2 ?????????????
    Je plaisante, pour quelqu’un qui n’y connaît rien je te remercie mille fois.
    Cela m’a fait gagner énormément de temps, d’ailleurs je ne crois pas que j’y soit arrivé tout seul.
    Merci encore pour ce SUPER tutoriel.

  6. hello, j’ai suivi ton tuto pour me faire mon nas il y a un peu plus d’un an. j’ai voulu en refaire un nouveau mais impossible d’installer freenas 9.2 sur une clé en direct ou même via un cd.

    ça me met bootmgr absent? c’est quoi? je fais comment?

    merci de ton aide!

  7. Bonjour
    Déjà Bravo et merci pour votre tuto qui est clair et détaillé
    Je suis nouveau dans ce domaine et j’essaie d’installer un freenas sur un vieux pc pour commencer .
    J’avais pris au départ la version 9 mais rien ne correspondait a votre tuto surtout au niveau modifier nom admin etc donc j’ai mis la 8 et la ok jusqu’a créer nouveau volume ??? je n’ai que auto import volume ,import volume ??? ce que j’ai essayé la ok je vois la partie ufs ou zfs mais toute la partie qui parle du raid je n’ai pas,je précise que pour l’instant je n’ai que 2 DD de 200 G ???
    Pourriez vous me donner quelques précisions svp
    Merci a vous

  8. bravo pour le tuto en français – j’ai installé une version 9.2 sur un serveur HP avec un raid comprenant 5 disque – l’installation c’est bien passé mais je ne vois pas dans les disques ou volumes mes disques donc je ne peut rien définir au niveau storage avez vous une idée du problème – merci d’avance

  9. Merci beaucoup pour ce tutoriel très clair et utile. Il fonctionne tout à fait avec la version 9.2 que j’ai installée récemment.
    Néanmoins j’ai des grosses difficultés à comprendre le fonctionnement et la philosophie des users / groupes / droits…si bien que selon les options utilisées, le CISF refusait toute connection de la part de win7 initialement, puis en modifiant les groupes et les utilisateurs, cela a fonctionné…
    Par contre étrangement je n’arrive pas à me connecter par ftp autrement qu’en utilisant comme login root (et le mot de passe qui va avec). Tous les autres utilisateurs tentant de se connecter voient le msg “login / pass inexact” (filezilla)…
    Mon souhait serait (comme pour beaucoup de personnes, j’imagine) de réaliser un NAS permettant le stockage et la diffusion de média en local, mais aussi le partage de fichier vers l’extérieur (ami, moi-même lors de mes déplacements). il semble cependant difficile de paramétrer avec justesse pour faire en sorte que chacun ne puisse pas voir ce que l’autre fait…
    Merci pour votre aide…

    Lionel

  10. Bonjour Mickael,
    Je suis tombé par hasard sur votre site concernant FreeNAS. C’est avec beaucoup d’intérêt que j’ai parcouru vos tutoriels. A tout vous dire, j’ai réussi à initialiser mon NAS grâce à vous (les autres tentatives (YouTube, DailyMotion et autres tutoriels incomplets ou tributaires d’une configuration particulière non précisée) ont été vaines). Je suis donc sur une 8.3.2 et je ferai le test avec votre deuxième tutoriel pour passer sur la 9.2.1.7 .
    Je tiens VRAIMENT à vous féliciter pour le travail effectué (en français et sans fautes) ainsi que le partage de vos expériences.
    Mais je manque à tous mes devoirs, je ne me suis pas présenté … Je suis un “jeune – vieil” informaticien habitant le nord de la France et xx ans nous séparent (si, si … plus de bougies que de gâteau …). Mais l’envie d’apprendre et toujours présente ! Linuxien convaincu depuis mes débuts il y a 10 ans environ, je suis toujours preneur de méthodologies, tutoriels ou plus simplement d’échanges. Mon expérience ne pourra pas, je crois, vous apprendre grand chose vu le côté “pointu” de vos tutoriels.
    Je voudrai tout de même vous signaler (mais vous devez le savoir et c’est certainement un oubli) que laisser le code html des notes sous les commentaires est source de problèmes (http://www.olivierdelomez.fr/wordpress/comment-retirer-les-notes-sous-les-commentaires-408). Sur WordPress ça marche, j’ai testé personnellement.
    Voilà, je tenais vraiment à vous dire MERCI et BRAVO.
    @ bientôt.

  11. Bravo pour ce tuto !!!

    J’ai enfin eu le courage d’attaquer la refonte de mon serveur de fichiers qui était auparavant sous FreeNAS 7 grâce à ce tuto. Entre la version 7 et 9, c’est le jour et la nuit ! J’ai réellement gagné du temps avec ce tuto (j’avais pas trop envie de me farcir des dizaines de pages de la doc officielle) et je vous en remercie.
    Juste une question, sous FreeNAS 7 j’utilisais régulièrement le gestionnaire de fichier depuis l’interface web, est-il toujours d’actualité sur la version 9 ou faut-il passer par mon partage NFS ?

    Je suis impatient de lire vos prochains articles, merci encore et longue vie à votre site web

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">