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.
Introduction: J'ai finalement construit mon système, et voici mes notes, au cas où cela aiderait quelqu'un d'autre.
Buts:
Caractéristiques:
Conception:
Nous utilisons ZFS comme système de fichiers, car il a obtenu des critiques si favorables. ZFS nécessite à peu près que nous exécutions un système d'exploitation 64 bits et aime beaucoup de mémoire, donc je devrais obtenir un minimum de 4 Go
Matériel:
ABS Aplus ABS-CS-Monolith Black SECC Steel ATX Full Tower Computer Case - 1 @ 69,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16811215009
Western Digital Caviar Green WD5000AADS 500 Go SATA 3.0Gb / s 3.5 "Hard Drive 6 @ 347,94 $ (57,99 $ ch) http://www.newegg.com/Product/Product.aspx?Item=N82E16822136358
XIGMATEK XLF-F1253 Ventilateur LED 120 mm 4 LED blanc - 1 @ 8,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16835233015
Lecteur de DVD-ROM IDE noir LITE-ON modèle iHDP118-08 - 1 @ 19,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16827106275
Crucial 4 Go (2 x 2 Go) DDR2 SDRAM 240 broches DDR2 800 (PC2 6400) CT2KIT25664AA800 - 1 @ 45,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16820148160
Carte mère Micro ATX AMD GIGABYTE GA-MA74GM-S2 AM2 + / AM2 AMD 740G - 1 @ 54,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16813128342
OKGEAR 18 "SATA II Cable Model GC18ATASM12 - 6 @ 11,94 $ (1,99 $ ch) http://www.newegg.com/Product/Product.aspx?Item=N82E16812123132
AMD Athlon 64 X2 5050e Brisbane 2.6GHz Socket AM2 45W Dual-Core Processor Model ADH5050DOBOX - 1 @ $ 62.99 http://www.newegg.com/Product/Product.aspx?Item=N82E16819103298
KINGWIN Mach 1 ABT-1000MA1S 1000W ATX / BTX Power Supply - 1 @ 199,99 $ http://www.newegg.com/Product/Product.aspx?Item=N82E16817121037
Disque IDE Seagate 400 Go - 1 @ (dans le placard), mais un disque IDE de 80 Go coûte environ 37,00 $, et 80 Go est plus que suffisant.
Support adaptateur pour disque dur IDE à insérer dans une baie de cinq pouces - 1 @ ~ 17,00 $
Expédition - 1 @ ~ 35,00 $
Logiciel: FreeBSD 7.2 - 1 @ 0,00 $ http://www.freebsd.org/
Coût total: 874.81 $
Configuration matérielle: une construction informatique de base, avec trois problèmes mineurs.
Le boîtier que j'ai acheté avait des emplacements pour 6 disques durs et deux baies 3,5. J'ai supposé que l'IDE pouvait tenir dans l'une des 3,5 baies. C'était une mauvaise hypothèse et il n'y avait aucun moyen raisonnable de le faire fonctionner. Je suis allé acheter un adaptateur chez Fry pour environ 17,00 $, et cela a bien fonctionné.
Les câbles Sata que j'ai achetés avaient des connecteurs à 90 degrés, ce qui était bien, sauf qu'avec six disques, il n'y avait aucun moyen de faire le travail. Le branchement d'un câble a fait pendre la partie rigide du connecteur sur le disque dur suivant. J'ai dû aller chez Fry et par 5 câbles SATA ordinaires. Malheureusement, ceux que j'ai achetés chez Newegg étaient si bon marché, que cela ne vaut pas la peine de les renvoyer.
Le boîtier pointe l'arrière des disques durs vers le côté du boîtier, et les câbles d'alimentation de l'alimentation ont un connecteur rigide qui dépasse sur le bord du boîtier. Cela ne m'a pas permis de remettre le capot latéral en place. J'ai dû jouer un peu avec pour le faire fonctionner, et j'ai finalement fini avec les deux câbles d'alimentation modulaires (ils ont quatre fiches SATA sur chacun) entrelacés entre les disques, de sorte que le premier câble alimentait les disques 0, 2, et 4, et le deuxième 1, 3 et 5. sous tension. Cela a permis assez de flexion pour que je puisse les attacher par zip.
Configuration du système d'exploitation:
Graver les ISO de FreeBSD 7.2 sur CD. J'aurais pu utiliser le seul DVD, mais je n'en avais pas traîné.
Memtest86 + gravé ( http://www.memtest.org/ ) sur un CD.
Alimenté l'ordinateur fraîchement construit et entré dans le bios pour vous assurer qu'il a vu les 7 lecteurs et le DVD-ROM. Ça faisait. Modification de l'ordre de démarrage pour créer le CD-ROM en premier.
Insérez le CD memtest86 + dans l'ordinateur fraîchement construit, redémarrez-le et laissez-le fonctionner pendant la nuit. Passé sans erreur.
Installé FreeBSD 7.2, si vous n'êtes pas familier avec cela, je vous recommande de lire ce qui suit: http://www.freebsd.org/doc/en/books/handbook/install.html Il fait beaucoup mieux d'expliquer quoi faire que moi pouvez. Voici mes paramètres spécifiques:
Après l'installation et le redémarrage, j'ai remarqué que seulement 4 des 6 disques SATA ont été détectés. Je suis entré dans le BIOS et sous les périphériques intégrés, changez le type OnChip SATA pour être AHCI, et le type OnChip SATA port 4/5 pour être "SATA" et j'ai redémarré.
À ce stade, FreeBSD a détecté les six disques comme: ad4 ad6 ad8 ad10 ad12 ad14
Obtenez les dernières nouvelles de cvs en utilisant csup: csup -g -L 2 stable-supfile J'avais déjà édité le fichier pour utiliser l'hôte: cvsup11.us.FreeBSD.org en laissant toutes les autres informations telles quelles.
Reconstruit et installé le dernier noyau et monde comme décrit ici: http://www.freebsd.org/doc/en/books/handbook/makeworld.html Personnalisé mon noyau (voir ZFSNAS). J'ai désactivé un grand nombre de périphériques, car je ne prévois jamais d'utiliser SCSI, USB, PCMCIA, série, parallèle, etc., a ajouté ce qui suit à /etc/make.conf: CPUTYPE = athlon64 CFLAGS = -O2 -fno-strict-aliasing -pipe make -j8 buildworld
Configuration du NAS:
Créez le pool ZFS pour notre stockage: zpool create storage raidz2 ad4 ad6 ad8 ad10 ad12 ad14
Créez le système de fichiers d'accueil sur le stockage nouvellement créé:
éditez /etc.rc/conf et ajoutez ce qui suit:
Cela monte les systèmes de fichiers ZFS au démarrage.
Création des répertoires root, samba et perforce
Sauf si vous avez besoin de plus de systèmes de fichiers sur votre pool, vous avez à peu près terminé avec la partie ZFS. Voir ce qui suit pour plus de détails: http://www.freebsd.org/doc/en/books/handbook/filesystems-zfs.html http://opensolaris.org/os/community/zfs/docs/zfsadmin.pdf
Ports installés:
Utilisateurs ajoutés:
Groupes créés:
Configuration de Samba:
la source
Je ne vois aucune raison pour laquelle vous voudriez, je pense que la prise en charge de Snapshot n'est que suffisamment mature dans OpenSolaris pour que vous puissiez revenir à une version plus ancienne et la démarrer (mais c'est en fait juste une supposition sauvage).
Ajouter comme pour agrandir une piscine rayée? Ajoutez simplement un lecteur à la piscine, c'est à peu près tout. Considérez les implications de votre prochaine question.
Vous pouvez l'utiliser comme bande et demander à ZFS de conserver n copies d'un fichier. Vous pouvez donc utiliser toute la disponibilité de stockage dont vous disposez et bénéficier d'une redondance décente
Remplacement de périphériques dans un pool de stockage Je suppose que c'est la solution recommandée, la façon la plus simple de savoir si cela fonctionne sur FreeBSD est probablement de l'essayer.
Avez-vous pensé que FreeNAS (Roadmap) 0.70 semble être sur le point d'être publié et prendra en charge ZFS.
Vous vous épargnerez les tracas de tout le cadre et obtiendrez une interface graphique relativement agréable à utiliser gratuitement avec.
la source
J'ai des serveurs avec FreeBSD + ZFS (sur 7.2-STABLE et 8.0-CURRENT), pas en production.
Le démarrage à partir de ZFS est décrit ici http://lulf.geeknest.org/blog/freebsd/Setting_up_a_zfs-only_system/
L'ajout de lecteurs à la volée est aussi simple que de taper "zpool add mypool da7", un nouveau lecteur est utilisable juste après cela; vous pouvez également ajouter un tas de disques en stripe, miroir, raidz (raid-5 amélioré) ou raidz2 (raid-6 amélioré)
Des disques de différentes tailles peuvent être placés dans la piscine mais ne peuvent pas être utilisés dans le miroir / bande / raid (si je me souviens bien, seul le plus petit espace de disque dur sera alors utilisable)
(Ouvrir) Solaris prend en charge ZFS dès sa sortie de l'emballage
la source
Il y a un bon sujet sur la construction d'un NAS ZFS domestique chez ArsTechnica.
la source
Je n'ai aucune expérience avec ZFS, mais je viens de le voir dans mon flux RSS:
http://www.freebsdnews.net/2009/06/10/zfs-version-13-freebsd-current/
Ce qui suggère qu'il mûrit, mais n'est pas prêt pour la production (sur FreeBSD).
la source