note : ll manque encore des images pour agrémenter un peu lecture. Patience, ca vient.

Un peu de théorie

A propos de Time Machine

Time Machine est logiciel de sauvegarde fourni par Apple avec ses Mac. Une politique de sauvegarde détermine les données qui sont conservées au fil du temps. Time Machine conserve :

  • une sauvegarde toutes les heures sur les dernières 24h.
  • une sauvegarde tous les jours sur le dernier mois.
  • une sauvegarde par semaine pour tous les mois précédents.

Il n'y a pas de limite pour la conservation des sauvegardes hebdomadaires. Une fois la saturation du disque atteinte, Time Machine commence à supprimer les sauvegardes les plus anciennes. Time Machine utilise donc tout l'espace que l'on met à sa disposition. Il est donc nécessaire de disposer d'un espace de taille délimitée pour Time Machine.

Deux approches sont possibles :

  • utiliser un support physique dans sa totalité pour Time Machine
  • utiliser des quotas pour limiter l'espace utilisable par Time Machine

Gestion du stockage avec Freenas

Avec Freenas, l'utilisation de quotas ne peut se faire qu'à condition d'utiliser le système de fichier ZFS. Il est très souple et offre beaucoup de possibilités, mais reste un peu plus complexe qu'un simple partitionnement. Partitionnement qui n'est pas possible sous Freenas. Si vous souhaitez donc sauvegarder plusieurs Macs, ou utiliser Freenas pour faire un peu plus que de la sauvegarde sans avoir a dédier un disque physique à chaque usage, l'utilisation de ZFS est incontournable. A noter pour les plus geeks, qu'il est possible de partitionnement des disques pour Freenas, mais pas directement depuis l'interface web.

Comment fonctionne ZFS?

Au plus bas niveau, il y a les périphériques physiques de stockage. Ils peuvent être assemblés matériellement ou logiciellement pour former des périphériques plus tolérant aux pannes et/ou plus performant. La technologie la plus courante est le RAID. Freenas vous permet de faire du RAID logiciel.

ZFS utilise un empilement de concepts que vous devez comprendre pour réussir l'installation.

  • périphérique virtuel : il se compose de un ou plusieurs périphériques physiques. Un périphérique virtuel ne peut être rattaché qu'à un seul pool.
  • pool : il se compose de un ou plusieurs périphériques virtuels. Un pool peut contenir plusieurs datasets.
  • dataset : dernier niveau d'abstraction de ZFS. Ils sont rattaché à un unique pool.

Les datasets sont montés dans le système de fichier. Si vous ne spécifiez rien, ils sont montés dans chemin standard :

/mnt/pool/dataset/

La pratique

De quoi avez vous besoin?

  • un Mac sous OS X à sauvegarder avec Time Machine
  • une machine pour installer freenas
  • un espace de stockage pour les sauvegardes

Je propose du suivre pas à pas mon cas particulier. L'objectif est de mettre un place un serveur Freenas et de l'utiliser pour sauvegarder un Macbook (mais pas que).

Le matériel

Coté matériel, je dispose de :

  • HP Thin Client T5720 : Athlon@1GHz, 387Mo de ROM, disque mémoire flash 512Mo, carte réseau 100Mbps Ethernet, port USB 2.0.

  • un disque externe USB (2.0) La Cie Grand de 1To.

Les clients légers sont des machines habituellement utilisées en entreprise pour se connecter à des applications centralisées via des technologies comme Citrix/Terminal Serveur/X Window. Ce sont donc des machines très légères et consommant peu de courant. Cela convient donc parfaitement pour faire des petits serveurs ne nécessitant pas beaucoup de ressources[1]. Cependant, les ressources matérielles peuvent venir à manquer si l'on souhaite utiliser des fonctionnalités consommatrices comme la compression intégrée aux systèmes de fichiers, le transcodage. L'interface réseau est également limitée à 100Mbps ce qui peut être limitant sur un réseau en gigabit Ethernet. Compte tenu du fait que j'utilise ce serveur en wifi (802.11g) , du fait que le disque sera raccordé en USB 2.0 et du nombre de clients limités (3 portables), le compromis me parait acceptable.

Installation de Freenas

L'installation se fait sans problème et les tutoriaux sont légions sur le net. J'ai réalisé l'installation sur la mémoire flash. Je n'ai pas activé de swap, car le mode de fonctionnement use prématurément les mémoires flash. De la même manière les systèmes de fichiers journalisés sont à éviter sur ce type de supports.

Ajout du disque physique

Comme je n'utilise qu'un seul disque physique, je ne mettrais pas en place de RAID logiciel.

  • Raccorder le disque au serveur.
  • Dans le menu "Disque" -> "Gestion", clique sur le + bleu pour ajouter un disque.

ajoutdisque.png

  • Dans la liste déroulant, choisir le disque.
  • Entrez un commentaire si cela vous est utile.
  • listeFS.pngTout en bas, choisir le format de fichier ZFS storage pool device. Je ne dispose que d'un disque physique et que je ne souhaite pas le dédier à Time Machine. J'ai donc choisi ZFS car il me permet d'allouer des quotas.
  • Cliquez sur le bouton ajouter.

Le disque apparait en "Initialisation".

  • Cliquez sur le bouton Appliquer les changement.

Le disque apparait "CONNECTE".

Configuration de ZFS

Je dispose d'un seul disque physique. Mon pool sera donc construit sur ce seul périphérique physique et dont type sera "Entrelacement" (Stripe en anglais). Cela signifie que le pool utilise tout l'espace disponible sans redondance. Si l'on met plusieurs périphériques, ils sont fusionnés en un seul et les capacités s'ajoutent. Il est alors impossible de séparer les disques sous peine de perdre les données.

  • Allez dans le menu "Disques" -> "ZFS".
Configuration du périphérique virtuel
  • Dans l'onglet "Pools", cliquez sur le sous-onglet "Périphérique virtuel".
  • Cliquez sur le + pour ajouter un périphérique virtuel
nouveau_vdev.png
  • Donnez un nom au périphérique virtuel
  • Sélectionner le(s) périphérique(s) physique(s) rattaché(s) au périphérique virtuel
  • Cliquez sur" Appliquer les changements" pour activer le périphérique virtuel.
Configuration du Pool
  • Dans l'onglet "Pools", cliquez sur le sous-onglet "Gestion".
  • Cliquez sur le + pour ajouter un pool

nouveau_pool.png

  • Entrez un nom pour le pool.
  • Sélectionner le(s) périphérique(s) virtuel(s) rattaché(s) au pool.
  • Cliquez sur Ajouter
  • Cliquez sur" Appliquer les changements" pour activer le pool.
Configuration du Dataset
  • Dans l'onglet "Datasets", cliquez sur le sous-onglet "Dataset".
  • nouveau_dataset2.png Cliquez sur le + pour ajouter un dataset
  • Sélectionnez le pool auquel appartient le datatset.
  • Entrez le quota de données que vous souhaitez allouer pour Time Machine. Le disque du Macbook fait 150Go. J'ai mis 250Go afin de conserver un peu d'historique.

datatset_compression.pngNote : Vous pouvez activer la compression. Attention, elle consomme beaucoup de ressource CPU. Le processeur est un Athlon à 1Gz était un peu à la peine lorsque la compression minimale était activée (gzip-1).

  • Cliquez sur Ajouter
  • Cliquez sur" Appliquer les changements" pour activer le dataset.

Dossier et droits des utilisateurs

Cette partie est un peu pénible si on se limite aux accès que fourni Freenas pour modifier le système de fichier.

Création du dossier

Le menu "Avancé" -> "Gestionnaire de fichiers" vous permet de lancer un explorateur en mode web.

  • Allez dans le répertoire /mnt/pool/dataset/
  • Créez un répertoire pour le partage (timemachine par exemple)

Par défaut le répertoire créé appartient à l'utilisateur root et au groupe wheel. Cela devra être modifié.

Gestion des droits

Ne sautez pas cette étape! Vous risquez de rencontré des problèmes si vous ne configurez pas les droits correctement. Cela se traduit en général par des déconnexions intempestives de Time Machine sur le Mac et des erreurs parlant de "broken pipe" dans les logs de Freenas.

Création d'un groupe
  • Allez dans le menu "Accès" -> "Utilisateurs et groupes"
  • Cliquez sur l'onglet "Groupes"
  • Cliquez sur le + pour ajouter un groupe

nouveau_group.png

  • Donnez un nom au groupe (macgroup par exemple)
  • Cliquez sur "Ajouter"
  • Cliquez sur" Appliquer les changements" pour activer le groupe.
Création d'un utilisateur
  • Allez dans le menu "Accès" -> "Utilisateurs et groupes"
  • Cliquez sur l'onglet "Utilisateurs"
  • Cliquez sur le + pour ajouter un utilisateur

nouveau_user.png

  • Pour cet utilisateur :
    • entrez un nom
    • entrez un nom complet
    • entrez et confirmez un mot de passe (qui sera à utiliser sur le Mac lors de la connexion au partage).
    • Shell : sélectionner un shell (bash par exemple)
    • Sélectionner le groupe principal de l'utilisateur (celui que l'on vient de créer juste avant - macgroup)
  • Cliquez sur "Ajouter"
  • Cliquez sur" Appliquer les changements" pour activer le groupe.
Affectation des droits

Cette étape passe obligatoirement par une commande. Rien dans l'interface de Freenas ne permet de gérer la propriété des dossiers et des fichiers. La commande à passer est la suivante :

chown login_utilisateur:groupe /mnt/pool/dataset/partage

remplacez les mots en gras par les valeurs que vous avez utilisées. Pour passer la commande, allez dans le menu "Avancé"->"Commande". Entrez la commande dans le champ "Commande" et cliquez sur "Exécuter". Comme seul résultat visible, la commande doit s'afficher.

Pour vérifier le résultat, vous pouvez taper la commande suivante :

ls -l /mnt/pool/dataset/

Elle doit vous confirmer la propriété du répertoire

$ ls -l /mnt/pool/dataset/
total 19
drwxrwsr-x  8 login_utilisateur  macgroup  10 Feb  3 13:25 partage

Je dispose maintenant d'un espace de stockage de 250Go que je vais pouvoir utiliser. Reste à le rendre accessible pour Time Machine

Configuration du service pour Time Machine (afpd)

Activation du service

  • Allez dans le menu "Services" -> "AFP".

afp_activation.png

  • Activez le service en cochant la case en haut à droite
  • Entrez un nom pour le serveur
  • Cliquez sur "Enregistrer et redémarrer".

Configuration du partage

  • Cliquez sur l'onglet partage
  • Cliquez sur le + pour ajouter un nouveau partage.

afp-partage.png

  • Entrez un nom
  • Entrez une description
  • configurez le chemin d'accès du partage qui doit correspondre au chemin de répertoire que nous avons créé : /mnt/pool/dataset/partage
  • Configurez le mode de découverte automatique en mode "Time Machine".
  • Cliquez sur "Ajouter"
  • Cliquez sur" Appliquer les changements" pour activer le partage.

La configuration de Freenas est terminée. Attrapez votre Mac et configurez Time Machine pour qu'il utilise votre partage.

Note : la première sauvegarde est très longue. Il est préférable de la faire en se connectant au réseau local avec un câble Ethernet plutôt qu'en wifi.

Conclusion

Bilan économique de l'affaire :

  • HP T5720 : récupération - 0€
  • Freenas : opensource - 0€
  • Disque dur 1 To : 99€

La Time Capsule d'Apple 1To est vendu 269€ / 299$ (prix sur le store au 03/02/2010).
A noter que la Time Capsule propose d'autre services utiles :

  • routeur internet
  • point d'accès wifi 802.11g/ 802.11n
  • partage d'imprimante
  • réseau invité séparé de votre réseau domestique pour que vos invités accèdent à internet.

Ce billet vous a présenté comment mettre en œuvre une solution de sauvegarde pour votre mac pour un cout modéré. L'avantage de cette solution est qu'elle ne vous oblige pas modifier votre réseau wifi pour accueillir votre solution de sauvegarde sans fil : vous utilisez l'installation wifi que vous avez déjà. Vous profitez également de tous les services qu'offre en plus Freenas (UPnP AV, etc). Si maintenant vous avez uniquement besoin d'un bête espace de stockage et que vous voulez vous équiper d'un point d'accès wifi (routeur?), la Time Capsule peut être une option (haut de gamme quand même).

La Time Capsule sur l'Apple Store français : http://store.apple.com/fr/product/MC343/Time-Capsule-1TB

Allez plus loin : Liens utiles et autres informations

Freenas

Freenas est un logiciel qui offre plein d'autres possibilités, comme par exemple :

  • partages Mac classiques
  • partages Windows
  • ftp
  • UPnP AV (utilisable par Windows Media player 9, Freebox HD, etc.)
  • rsync
  • bittorrent

Plus d'informations sur freenas : http://www.freenas.org

ZFS

ZFS est format de système de fichier dont Silicon Graphics est à l'origine. Il est passé en open source et a été porté pour BSD (système de Freenas) Plus d'informations sur ZFS
Wikipedia EN : http://en.wikipedia.org/wiki/ZFS
Wikipedia FR : http://fr.wikipedia.org/wiki/ZFS

Netatalk

Il s'agit de l'implémentation d'AFP (Apple Filing Protocol) utilisé par Freenas.
http://netatalk.sourceforge.net/

Time Capsule

Description de la Time Capsule sur le site d'Apple : http://www.apple.com/fr/timecapsule/

HP Thin Client T5720

Les spécifications : http://h18000.www1.hp.com/products/quickspecs/12388_div/12388_div.HTML

Notes

[1] Les clients légers peuvent être utilisés pour réaliser des petits serveurs nécessitant peu de ressources et consommant peu d'énergie. J'en ai déjà utilisé par le passé pour réaliser un serveur raccordé à une station météo. Voir ici pour plus d'informations : hhttp://forum.meteohub.de/viewtopic.php?f=21&t=4778