Quel matériel pour un NAS (FreeNAS?) de 2 baies?

J’ai un DNS-323 Dlink qui est sur sa fin de vie et là j’aimerais savoir ce que vous utilisez pour vos NAS ou chez des clients/bureau/collègues…

J’aimerais en profiter pour en apprendre un peu plus sur FreeNAS alors je regardais leur matériel certifié mais ils n’ont pas d’options 2 baies - quel matériel serait idéal pour ce logiciel ? Je préfère ne pas construire un PC de toutes pièces mais j’aimerais pouvoir avoir quelque chose que je puisse suggérer à d’autres aussi, donc du neuf.

J’ai trouvé un QNAP usagé que j’ai reflashé en Debian, je vais voir si FreeNAS serait une option là-dessus… l’interface web est toujours intéressante pour avoir un peu plus d’autonomie et facilité pour d’autres utilisateurs.

Des idées ?

Quelques liens :

j’amorce un projet similaire moi-même, bien que mes contraites soient différentes:

  • je vais installer Debian (ou plutôt, transférer mon server Debian existant), donc pas de FreeNAS pour moi - d’ailleurs FreeNAS est basé sur FreeBSD donc demande un ensemble de connaissances de base différent des distributions linux, attention! (particulièrement ZFS)
  • vu que le serveur ne fait pas seulement du « NAS », il doit avoir une puissance de calcul (et de mémoire, particulièremet) plus grande (quoique ZFS peut être aussi très gourmand en ressources selon les configurations)

J’ai commencé à prendre des notes sur mon wiki. J’ai déjà acheté les deux premières options, un NUC pour mon desktop et le Vero pour le salon (pour lequel le serveur actuel fait office de NAS).

J’ai mis de côté les options GnuBee (trop vieux, pas bien supporté dans Linux) et Helios (pas de hotswap) et je pense présentement monter un « PC » plus ou moins traditionnel, mais avec le particularité d’avoir des baies « hotswap » pour pouvoir remplacer les disques plus facilement. Possiblement un Supermicro… mais je ne suis pas certain parce que ce modèle n’a pas nécessairement les DEL pour indiquer l’état des disques (bien que je ne suis pas certain que Linux supporterait bien ça par lui-même de toute façon), il paraît que ça prend su SGPIO pour que ça marche ce truc (e.g. ce modèle).

Je pense acheter chez ATIC, ils m’ont donné des bons conseils par courriel…

Tous les détails (doumentés) sur ce serveur sont dans cette page.

Mon expérience avec le Vero montre que même les interfaces très « intuitives » comme Kodi ont un impact limité pour les gens de ma maison. Je doute fortement pouvoir autonomiser les gens dans la gestion de mon serveur avec une simple interface web… mais bon, ça fait beaucoup plus qu’un NAS, alors possiblement qu’un NAS pourrait être opérable par un utilisateur lambda, pour ce qui est de changer des disques et compagnie.

Pour ce qui est des NAS « propriétaires » (dans le sens de « tout inclus, conçus pour être des NAS à la base au lieu d’une plateforme PC générique »), je recommende Synology. C’est définitivement pas libre dans le sens qu’on a pas le code source, mais c’est extensible: on a un accès SSH / Telnet et on peut installer des packages (des SPK) et plusieurs personnes ont fait des extensions du genre à toutes les sauces.

Je déconseille l’utilisation du Drobo, par contre. Pas eu une bonne expérience avec eux. Netapp à éviter aussi: ils ont participé à la censure en Tunisie. Connais pas QNAP assez pour en dire plus…

Bonne chance!

2 « J'aime »

Merci pour ce retour, après quelques jours je converge sur les mêmes résultats:

  • FreeNAS / FreeBSD en dehors de ma fourchette de connaissances, aussi plus gourmand que ce à quoi je m’attends pour un « simple petit NAS » (8GB suggéré pour ZFS)
  • D’accord pour tes marques à éviter (Drobo, Netapp). J’ajouterais Netgear, j’ai eu des mauvaises expériences entre autre c’est « only btrfs » et 2 plantages qui annonçaient devoir tout réinstaller alors qu’il suffisait de redémarrer (!).
  • QNAP me semble plus proche de GNU/Linux et c’est plus abordable, je te souhaite de bien l’évaluer ou essayer. On devrait faire une rencontre pour apporter notre équipement qui « traine » mais qui est encore utile pour faire des essais de ce genre.

Le boitier 721Tq que je vois dans ton wiki me fait penser aux systèmes HP Microserver - plus chers ?.. mais prêts a utiliser, pas Hot-swappable sauf sur d’anciens modèles avec un hack du microgiciel si je me souviens bien. Est-ce que tu veux aussi que ton boîtier offre un accès réseau à la console (genre IPMI / iDRAC) ?
Tant qu’à avoir un boîtier comme ça et Debian je mettrais l’OS en RAID1 et le reste selon le budget : s’il y a juste pour 2 disques (à part l’OS), RAID1 aussi pour les données (RAID6/ZRaid pour 4 disques…) et j’en ferais un hyperviseur simple (kvm/lxc) ou p. être Proxmox. Je comprends mal pourquoi certains NAS logiciels suggèrent USB comme stockage principal pour l’OS.

1 « J'aime »

C’est commun pour ZFS de demander beaucoup de ressources en mémoire. En échange, on a une performance (particulièrement avec la déduplication de données!) et fiabilité accrues.

J’évite généralement Netgear, en effet. J’éviterais aussi BTRFS pour un quoique ce soit d’autre qu’un simple filesystem de remplacement à ext4 (mais alors pourquoi remplacer ext4…)

… connais pas « Microserver », c’est quoi?

Pas vraiment nécessaire.

C’est également mon intention de basculer en RAID-1 ou RAID-10: mon setup standard est de mettre du RAID avec mdadm en dessous, puis monter de la crypto par dessus avec LUKS, et aggréger tout ça avec LVM. Je pense expérimenter avec des arrays RAID-1 simples en dessous, puis aggréger en RAID-10 en faisant le stripping avec LVM. Je considère aussi l’idée de faire du caching SSD, mais je ne suis pas certain que ça vaut vraiment la peine. Je vais certainement garder un peu d’espace libre dans le LVM (plus précisément dans le « Volume Group ») pour pouvoir faire des snapshots, qui pourrait peut-être servir de backups locaux instantanés à court terme (genre un snapshot toutes les heures) …

Présentement, j’ai pas de RAID du tout dans le serveur, et c’est pas un gros problème. J’ai des backups « nightly » avec borg, et bien qu’un perte de disque serait assez catastrophique en termes de temps de travail, en réalité ce n’est jamais arrivé en 11 ans. Je surveille les notices SMART (smartmon-tools is your friend!) et je n’ai pas eu de problème à date. Mais j’aimerais bien faciliter la procédure de changement de disque. La dernière fois que j’ai remplacé un disque, ça m’a pris pas mal de temps quand même, avec plusieurs opérations manuelles qui font toujours un peu peur.

Alors qu’avoir du RAID-1 plus hotswap, c’est « zoup-zoup », on remplace le disque! Avec un setup manuel comme le miens, il faut quand même dire à mdadm qu’on retire le disque et l’ajouter manuellement aussi: c’est le gros avantage des NAS (avec interfaces graphiques!) spécialisés. Mais ce ne sont pas des commandes si complexes, pour vu que les disques sont de la même taille…

J’utilise surtout Docker ici pour l’instant. C’est pas idéal en termes de support dans Debian: Docker a de la difficulté à rester dans Debian parce que (le packaging de?) golang est un bordel pas possible… Mais c’est vraiment chouette d’avoir ce « standard » pour déployer des apps bizarres (Airsonic, ici, pour l’instant).

J’ai pas commencé à virtualiser le truc en plusieurs composantes. Ça complexifierait la patente pas mal et j’ai pas super besoin d’isoler tout pour l’instant. Mais peut-être que ça serait mieux à long terme. Ma priorité serait de configurer le tout avec un système de gestion de configuration comme Puppet ou Ansible, par contre (probablement Puppet vu que c’est ce que je connais le mieux) question de pouvoir migrer des services ailleurs plus facilement.

Mais tout ça est beaucoup plus de travail que ce que je peux vraiment me permettre dans mes temps libres à ma maison, alors ça reste un setup broche-à-foin à moitié documenté. C’est pas pro, et c’est le but: je suis pas payé pour ça après tout! :wink: Mais je garde /etc dans git (avec etckeeper) et ça me sauve beaucoup de problèmes déjà…

Aucune idée. Ça me semble également une mauvaise idée. :slight_smile: J’ai des disques USB externes qui traînent un peu partout et j’ai vraiment hâte de les sortir de leurs boîtiers et les mettre dans ce rack à 4 disques! C’est un peu ça l’idée de monter ce serveur là: consolider tous ces disques dans un seul grand array…

Désolé, j’avais pas mis de lien. En voici un:

Marc Laporte du projet Tiki en avait apporté un à la JILL l’an passé je crois, avec ClearOS présinstallé.

Il y a des modèles usag’es plus vieux qu’on peut trouver si on cherche bien. J’en roule plusieurs en production avec Proxmox ou Debian simple (chez des clients). Le N40L est un de ces vieux modèles qui a un wiki assez élaboré sur tout ce qu’on peut faire avec.

Pour la virtualisation pour l’instant pour moi ça se limite à des services comme Nextcloud, openHAB (domotique) et piHole. Chez moi j’ai mis ça sur un router Turris (sur des LXC) mais pour d’autres ça va pas être pratique de suggérer « change tou routeur, ajoute un SSD… » etc.

ah cool merci… intéressant, mais les baies de disque sont pas disponibles à moins de détacher le panel avant. de plus, il y a pas une grande flexibilité dans la configuration - on peut changer la ram de 8GB à 16GB… et c’est tout. :slight_smile: mais c’est vrai que c’est beaucoup moins cher que ce que je regarde…

En résumé, pour mon NAS, j’utilise:

  • Processeur: AMD Ryzen 2600X 6 coeurs 12 threads
  • Mémoire: 4 x 8 Go DDR4 (Total: 32 Go)
  • Disque du système d’exploitation: SSD 500 Go
  • Disques pour stockage avec ZFS: 4 x 4 To
    • 3 x Seagate IronWolf 5900 RPM 4 TB Cache 64 Mo SATA 6 Gb/s
    • 1 x Seagate Desktop 5900 RPM 4 TB Cache 64 Mo SATA 6 Gb/s

Liste de pièces: Prometheus-Ryzen-2600X-ZFS.

Pour mon stockage, j’ai 1 ZPOOL appelé tank. Il contient 1 VDEV de type raid-z2. Je peux perdre au maximum 2 disques parmi les 4 disques sans perdre de données.

Avec fio, en lecture séquentielle j’ai un bandwidth de 600 Mo/s.
En écriture séquentielle, j’ai un bandwidth de 300 Mo/s.

Mon routeur est le WRT54GL avec le firmware tomato, il fait du 54 Mbps en Wifi et 100 Mbps en filaire.
On utilise sshfs pour monter le stockage NAS.

Voilà.

Le FreeNAS Mini E a 4 baies et une connectivité 4 x Gigabit Ethernet.
Le prix commence à 749 US$ et ça exclut habituellement le prix des disques.

Le processeur Intel Atom C3338 est quand même lent. C’est un Atom (le mot Atom n’apparait pas sur la page du FreeNAS Mini E car les processeurs Atom sont très lents.)
Sur CPU World, le Intel Atom C3338 est un CPU 2 coeurs, 2 threads.

Pour le prix du FreeNAS Mini E de 749 US$, tu peux à la place y aller avec:

  • CPU: AMD Ryzen 2400G
  • Mémoire: 2 x 8 GB DDR4
  • Système d’exploitation: SSD 150 GB
  • Stockage, 2 baies: 2 x 4 TB

Un peu comme dans ce build: Riptide (Lower FreeNAS Build)

Moi, j’ai 4 disques 4 To. J’ai une partition gpt sur chacun. Ensuite c’est encrypté avec LUKS.
ZFS utilise les 4 périphériques dans /dev/mapper/zpool_disk?_crypt

C’est certain que RAID-10 (2 VDEV mirror de 2 disques avec ZFS) va donner un meilleur bandwidth d’écriture. Mais si 2 disques d’un même mirroir brisent, toute le RAID est perdu. Avec RAID-Z2, 2 disques quelconques peuvent briser.

Tout à fait en accord. Moi, si j’ai un disque qui brise, je doit prendre en note le ID du disque sur une feuille, rebooter dans le BIOS pour identifier le numéro du port SATA, ouvrir le case, suivre le cable du contrôlleur SATA jusqu’au disque,… C’est pénible.

J’ai fait des tests. J’ai retiré 1 disques sans le dire à ZFS et mon pool fonctionnait encore en mode dégradé. Quand j’ai remis le disque, ZFS l’a « resilvered ».

Le HPE ProLiant MicroServer Gen10 est quand même cool. Mais le processeur AMD Opteron est très vieux. Le AMD Ryzen 2400G a 4 coeurs 8 threads et est beaucoup plus récent.

Est-ce que tu veux de la mémoire ECC dans ton NAS de 2 baies ?

Voici un build NAS avec 2 baies:

PCPartPicker Part List

Type Item Price
CPU AMD Ryzen 5 2400G 3.6 GHz Quad-Core Processor $121.00 @
Motherboard ASRock B450M-HDV R4.0 Micro ATX AM4 Motherboard $49.99 @
Memory Corsair Vengeance LPX 16 GB (2 x 8 GB) DDR4-3000 Memory $59.99 @
Storage Samsung 860 Evo 500 GB 2.5" Solid State Drive $69.98 @
Storage Seagate BarraCuda 4 TB 3.5" 5400RPM Internal Hard Drive $89.99 @
Storage Seagate BarraCuda 4 TB 3.5" 5400RPM Internal Hard Drive $89.99 @
Case be quiet! Pure Base 500 ATX Mid Tower Case $79.99 @
Power Supply Corsair CXM 550 W 80+ Bronze Certified Semi-modular ATX Power Supply $77.98 @
Prices include shipping, taxes, rebates, and discounts
Total (before mail-in rebates) $648.91
Mail-in rebates -$10.00
Total $638.91
Generated by PCPartPicker 2019-12-17 09:21 EST-0500

Bah. C’est déjà assez rare qu’un disque crève, que deux brisent simultanément me semble exceptionnel. Le tout n’est pas de prendre les disques de la même « batch ». :wink:

Nice. Peut-être que je devrais essayer ZFS. Ce qui m’embête, c’est que c’est un changement de paradigme complet, avec lequel j’ai peu d’expérience. LUKS, par exemple, va où? En dessous ou au dessus? Si ça va en dessous, est-ce que ça veut dire un mot de passe par disque? (bleh)

C’est ce que je me disais aussi! Opteron, il me semble que j’avais ça dans un vieux serveur … il y a 10 ans! :wink: Mais ça doit être un nouveau CPU quand même…

Je sais pas, à ton avis? :slight_smile: Ça vaut la peine?

J’aime bien pcpartpicker et compagnie, en général, mais le problème est que la sélection de « cases » est franchement limitée. On dirait que ça s’adresse plus à une clientèle « gamer » qui n’ont pas mes besoins en stockage disque. Par exemple, je n’ai pas trouvé l’équivalent du Supermicro SC721 avec les baies hotswap externes…

J’ajouterais qu’une de mes contraintes est d’acheter les moins possible en ligne, et le plus possible localement. Et boycott total d’Amazon, pour ce projet (j’ai dû faire exception récemment pour un booster de char :wink: mais sinon je tiens le coup). Donc je pense passer par Canadacomputers.com (local) ou https://ATIC.ca (pas local, mais canadien)… Une autre exception que je me permets est (justement) B&H vu qu’ils sont sur la côte est et pas trop loin de Montréal (New York).

1 « J'aime »

L’ordre est le suivant:

  1. Tu as un disque physique (/dev/disk/by-id/*)
  2. Tu ajoutes une partition GPT qui prend tout l’espace (/dev/disk/by-uuid/*)
  3. Tu encryptes la partition avec LUKS
  4. Tu décryptes et ça ajoute un périphérique DM (Device Mapper) dans /dev/mapper/*
  5. Le ZPOOL est créé avec les périphériques DM.

À soir, je pourrai ajouter le output de lsblk et zpool status dans le thread.

Le support de l’encryption native dans ZFS existe dans Solaris et FreeBSD. Dans Ubuntu 18.04, ce n’est pas disponible encore.

Avec ZFS, tu as énormément de fonctionnalités, et c’est beaucoup plus simple que le combo mdadm/lvm/ext4:

  • gestion des disques (comme LVM)
  • gestion RAID (comme mdadm)
  • intégrité des données (comme btrfs, mdadm + ext4 n’a pas d’intégrité garantie)
  • volumes ZVOL pour les machines virtuelles
  • compression native (optionnelle)
  • encryption native (sous Solaris et FreeBSD)
  • compteurs iostat intégrés
  • snapshots copy-on-write
  • synchronisation réseau de ZFS (comme rsync ou borg, mais au niveau de ZFS directement)

Moi j’en ai pas à la maison. Mon processeur Ryzen supporte ECC, mais pas ma carte mère (
X470 AORUS ULTRA GAMING (rev. 1.0)).

ZFS va détecter si les données sont corrompus avec des checksums et des parités.

Pour un truc à la maison, je ne pense pas que ça vaut la peine.

Oui c’est vrai.

Aussi, pcpartpicker n’a pas les pièces qui sont OEM. Mes disques IronWolf sont sur pcpartpicker, mais pas mon disque Seagate Desktop 4 To qui provient d’un ordinateur complet.

Est-ce que le SuperMicro SuperChassis 721TQ-250B est bruyant ?

Tout à fait en accord ! J’achète toujours d’un fournisseur canadien ou québécois.

J’achète chez Informatique STO, La Source, https://www.canadacomputers.com/.

J’ai donc enlever le texte Amazon dans mon post.

Donc, ça veut dire un mot de passe par disque, au lieu de par « array ». C’est ça qui me dérange un peu, ça rend le boot vraiment lent…

ça j’aime vraiment ça, mais en même temps j’utilise git-annex pour mes données critiques (sauf les emails) et ça fait les checksums.

J’en ai aucune idée en fait, c’est une bonne question…

Super, bonne référence merci!

Le boot est rapide.

Quand je démarre mon ordinateur, cryptsetup me demande un mot de passe pour le premier disque de 4 TB. Ensuite, les autres disques sont décryptés automatiquement car c’est le même mot de passe et cryptsetup a un agent qui garde les secrets.

Tu peux aussi mettre ton secret qui sert à décrypter directement dans /etc, mais ce n’est pas sécuritaire…

Bonne idée !

Si tes données sont dans git, les sha1sum de Git vont te dire si tes dépôt Git est corrompu. Mais Git n’est pas capable de self-healer car il n’y a pas de réplicats ou stripes comme dans raid-z2. Mais si tu push ton dépôt sur un remote, tu as un bon backup :wink:

Je demande à propos du bruit car hier j’ai regardé un vidéo avec un serveur est très bruyant.

dans mon expérience, ça ne marche pas toujours bien. ça ne marche particulièrement pas en débarrant le système à distance, avec dropbear-initramfs.

aah mais git-annex est spécialement conçu pour ça. il garde trace du nombre de copies des fichiers, où ils sont etc. il peut même réparer des dépôts brisés…

ouais bon, c’est pas un serveur 1U quoi. je m’attends pas à ce qu’il soit débile comme ça! ce n’est qu’un case, après tout… il y a deux fans dans le case qui pourraient être bruyantes:

en général, je m’inquiète pas trop du bruit du power supply. c’est plus les fans du case et du CPU qui font du bruit. quand j’ai acheté les pièces pour mon serveur actuel, j’ai bien magasiné des fans pour me rendre compte que les fans qui venaient avec le processeur intel (core 2 duo) étaient excellentes, très silencieuses… j’espère faire un coup similaire avec le processeur dans ce cas-ci, mais à date j’ai l’impression que c’est (encore) plus compliqué du côté d’AMD.

L’idéal, c’est d’avoir un / qui n’est pas encrypté. Tu ssh sur la machine à distance pour décrypter les disques LUKS.

OK, merci pour l’information

@anarcat

Mon raid-z2 a l’air de ça par rapport à LUKS:

$ lsblk
sda 8:0 0 3.7T 0 disk
└─sda1 8:1 0 3.7T 0 part
└─zpool_disk0_crypt 253:3 0 3.7T 0 crypt

sdc 8:32 0 3.7T 0 disk
└─sdc1 8:33 0 3.7T 0 part
└─zpool_disk2_crypt 253:4 0 3.7T 0 crypt

sde 8:64 0 3.7T 0 disk
└─sde1 8:65 0 3.7T 0 part
└─zpool_disk1_crypt 253:5 0 3.7T 0 crypt

sdf 8:80 0 3.7T 0 disk
└─sdf1 8:81 0 3.7T 0 part
└─zpool_disk3_crypt 253:6 0 3.7T 0 crypt

$ zpool status
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz2-0 ONLINE 0 0 0
zpool_disk1_crypt ONLINE 0 0 0
zpool_disk3_crypt ONLINE 0 0 0
zpool_disk0_crypt ONLINE 0 0 0
zpool_disk2_crypt ONLINE 0 0 0

$ zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 850G 5.97T 140K none
tank/pyramide 850G 5.97T 850G /pyramide

C’est l’idée derrière dropbear-initramfs: ça injecte un démon SSH dans le initramfs et, au démarrage, ça lance le truc et tu peux débarrer les disques. Mais voilà, ça demande plusieurs fois le mot de passe… Pas au point.

C’est certain que si c’est encrypté, il faut fournir le secret pour pouvoir décrypter.