Je crée un serveur de fichiers FreeBSD à domicile en utilisant ZFS.
Il s'agit d'un AMD X2 3200+ avec 3 Go de RAM. Il possède un PCI Express Gig-E. Le disque de démarrage est un vieux 400 Go et j'ai 4 disques Seagte de 750 Go (un avec une version de firmware différente, juste au cas où).
Le démarrage à partir de ZFS aurait été bien (cela rendrait l'installation plus simple), mais j'ai utilisé les instructions ZFSOnRoot pour configurer le lecteur Root / OS avec ZFS (si toutes les partitions sont ZFS, il n'est pas nécessaire de faire un fsck au démarrage pour vérifier les systèmes de fichiers UFS). La raison pour laquelle vous le souhaitez, c'est que vous pouvez ensuite configurer toutes vos partitions (/ var, / usr, / tmp, etc.) avec différentes options selon les besoins (comme noatime et async pour / usr / obj, ce qui accélérera le noyau compile), mais ils partageront tous l'espace d'un pool commun. Ensuite, vous pouvez configurer un lecteur de données et donner à chaque utilisateur une partition qui lui est propre (avec différents devis et paramètres). Vous pouvez ensuite prendre des instantanés (qui sont peu coûteux sur ZFS).
My home server has a df that looks like:
/dev/ad0s1a 1.9G 744M 1.1G 41% /
devfs 1.0K 1.0K 0B 100% /dev
dozer/data 1.8T 62G 1.7T 3% /data
dozer/home 1.7T 9.6G 1.7T 1% /home
dozer/home/walterp 1.9T 220G 1.7T 11% /home/walterp
tank/tmp 352G 128K 352G 0% /tmp
tank/usr 356G 4.4G 352G 1% /usr
tank/var 354G 2.2G 352G 1% /var
En termes de performances, la copie de fichiers est très rapide. La seule chose que je noterais est que j'utilise ZFS sur des systèmes FreeBSD AMD64 qui ont 3-4 Go et cela a bien fonctionné, mais d'après ma lecture, je serais inquiet de l'exécuter sur un système i386 qui avait 2 Go ou moins de mémoire.
J'ai manqué de ports SATA sur la carte mère, donc je n'ai pas essayé d'ajouter de nouveaux disques. La configuration initiale était simple, une commande pour créer le RAIDZ puis la commande pour créer / home, qui a été formatée en quelques secondes (IIRC). J'utilise toujours l'ancienne version de ZFS (v6), donc elle a quelques limitations (elle ne nécessite pas de disques de taille égale, mais contrairement à un Drobo, si vous aviez 3 disques de 750 Go et un disque de 1 To, le résultat final sera comme si vous aviez 4 disques de 750 Go).
L'une des principales raisons pour lesquelles j'ai utilisé ZFS avec RAIDZ était la somme de contrôle de bout en bout. Le CERN a publié un document qui a documenté un test qu'ils ont fait où ils ont trouvé plus de 200 erreurs de lecture non corrigées lors de l'exécution d'un test R / W sur une période de quelques semaines (l'ECC dans les disques de vente au détail devrait avoir un échec une fois toutes les 12 To lues). J'aimerais que les données sur mon serveur soient correctes. J'ai eu un crash dur à cause d'une panne de courant (quelqu'un a surchargé l'onduleur en y branchant un radiateur), mais lorsque le système peut revenir, ZFS est revenu rapidement, sans les problèmes fsck standard.
J'aime ça, car je pourrais ensuite ajouter CUPS à Samba pour obtenir un serveur d'impression. J'ai ajouté un cache DNS et je peux ajouter d'autres logiciels à ma guise (je pense à ajouter la surveillance SNMP aux postes de travail de ma maison pour mesurer l'utilisation de la bande passante). Pour ce que j'ai dépensé sur le système, je suis sûr que j'aurais pu acheter une boîte NAS bon marché, mais je n'aurais pas de boîte Unix locale 64 bits avec laquelle jouer. Si vous aimez FreeBSD, je dirais: allez-y. Si vous préférez Linux, je recommanderais une solution Linux. Si vous ne voulez pas faire d'administration, c'est à ce moment-là que je choisirais la boîte NAS autonome.
Lors de ma prochaine série de mises à niveau matérielles, je prévois de mettre à niveau le matériel, puis d'installer la version actuelle de FreeBSD, qui dispose de ZFS v13. V13 est cool parce que j'ai un disque RAM sauvegardé par batterie que je peux utiliser pour le journal ZIL (cela fait crier les écritures). Il prend également en charge l'utilisation de SSD pour accélérer le serveur de fichiers (les spécifications des nouveaux serveurs de fichiers Sun sont agréables, et ils les obtiennent d'un système ZFS qui utilise SSD pour rendre le système très rapide).
EDIT: (Je ne peux pas encore laisser de commentaires). J'ai à peu près suivi les instructions sur http://www.ish.com.au/solutions/articles/freebsdzfs . Le seul changement majeur qui existe dans 7.X depuis que ces instructions ont été écrites est que 7.2 est sorti et si vous avez 2+ Go, vous ne devriez pas avoir à ajouter les trois lignes suivantes dans /boot/loader.conf:
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
Les instructions expliquent également comment créer un miroir et comment remettre le système en mode de récupération (montage avec ZFS). Après avoir joué avec ses instructions une ou deux fois, j'ai ensuite utilisé le manuel d'administration ZFS de Sun http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf pour mieux comprendre ce qu'était ZFS. Pour créer mon magasin de données, j'ai utilisé une version modifiée de la commande de la page 91 pour créer des pools ZFS. Ceci étant FreeBSD, j'ai dû faire un petit changement:
zpool create dozer raidz /dev/ad4 /dev/ad6 /dev/ad8 /dev/ad10
Où ad4-ad10 a été trouvé en exécutant dmesg | grep 'ata. * Master', ce sont les noms des disques durs SATA du système qui seront utilisés pour la partition Big Data. Sur ma carte mère, les trois premiers ports ata (ad0-3) où se trouvent les 4 ports PATA puis parce que chaque port SATA est un maître, il n'y a pas d'anciens numéros.
Pour créer le système de fichiers, je viens de faire:
zfs create dozer/data
zfs set mountpoint=/data dozer/tank
La deuxième commande est requise car j'ai désactivé les points de montage par défaut pour les partages.