FreeNAS / ZFS me permettra de gérer mon stockage de cette façon

Je considère FreeNAS; Et je veux confirmer que ma compréhension de ce que je peux / je ne peux pas faire avec le stockage est correcte à l'avance.

  1. Construction initiale: 1 pool de stockage avec 2 lecteurs de 6TB en miroir; Pour une capacité effective totale de 6 To (ignorant les arrondissements et les frais généraux).

  2. Première expansion (2,5 à 3 ans): Ajoutez 2 lecteurs de 12 To au serveur. Configurez-les comme une deuxième paire miroir, et ajoutez-les au pool de stockage existant; Augmentant mon stockage disponible à 18TB.

  3. Deuxième phase d'expansion 1 (5,5 à 7,5 ans): Ajoutez 2 lecteurs de 24TB au serveur. Configurez-les comme une paire miroir et ajoutez-les au pool de stockage existant; Augmentant mon stockage disponible à 42TB.

  4. Deuxième phase d'expansion 2 (immédiatement après la phase 1): Toutes les données sont rééquilibrées sur les disques 6TB, supprimez-les du pool, puis physiquement depuis le serveur. Rester disponible dans le stockage 36TB.

Mes pensées sont ici:

  • Un doublement de la capacité de stockage nécessaire tous les 3 ans n'est pas une continuation de mes expériences avec les serveurs WHS de 2008 à aujourd'hui.

  • Après avoir ajouté les disques 24 TB, les 6 TB ne fourniront qu'une fraction négligeable du stockage total (1 / 7ème) et deviennent assez vieux pour que la fiabilité devienne une préoccupation plus importante si je les garde (côté incorrect de la courbe de la baignoire) . S'ils survécurent, mon taux de croissance n'augmenterait que le temps avant que j'avais besoin d'acheter des disques de 48 To environ un peu plus d'une demi-année; Donc ils n'auraient pas vraiment beaucoup de temps.

  • Limiter à 4 lecteurs me permet d'utiliser un facteur de forme mini-ITX compact pour mon NAS. Au-dessus, cela signifie une configuration plus grande et plus coûteuse. (2 lecteurs assis sur le dessus d'un boîtier ouvert avec des fils qui serpentent sont acceptables pour un jour ou deux de temps de transition, mais pas plus longtemps).

  • Je suppose également que la disponibilité de lecteurs plus importants, comme d'habitude, a été pour mes précédentes mises à niveau d'environ 3 ans: 1.5-3tb (2012) et 3-6TB (maintenant / proche avenir). Et que toutes les nouveautés disponibles seront suffisamment fiables pour être utilisables (c'est-à-dire que l'apocalypse de raid ne se produit jamais).

Tout d'abord: je ne spéculerai pas sur le développement de 6-7 ans dans le futur. C'est à propos d'aujourd'hui, et le futur le plus proche. Pour le TL, DR , voir le bas de cette réponse.

ZFS aujourd'hui ne vous permet pas de supprimer un vdev d'un pool. Il n'a pas non plus de fonctionnalité native de "rééquilibrage" (recherche de réécriture de bloc-pointeur, de réécriture de bp ou de réécriture de bpo pour en savoir plus à ce sujet). ZFS vous permet de réduire le niveau de redondance d'un vdev miroir, mais pas raidzN, mais ce n'est pas ce que vous voulez. (Dans ZFS, striping est ce que vous obtenez quand vous ne dites rien.)

Fondamentalement, les pools peuvent être considérés comme des ensembles rayés composés d'un ou plusieurs périphériques de stockage chacun, dont le dernier (vdevs) peut être agencé dans une configuration redondante. Vous pouvez configurer chaque vdev pour des niveaux de redondance arbitrairement élevés, mais chaque vdev dans le pool doit rester au-dessus de son seuil de redondance afin que le pool soit entièrement fonctionnel. Si un vdev échoue, au mieux, vous ne perdez que les données qui ont été stockées sur ce vdev, et il n'y a aucun moyen de contrôler activement les données stockées sur lesquelles vdevs (autrement que les mettre dans des pools séparés, ce qui présente d'autres inconvénients).

Lorsque vous avez un pool "en miroir" tel que celui que vous décrivez après la première expansion, ce que vous avez vraiment, c'est deux vdevs, chacun composé d'une paire de périphériques de stockage miroir, où les deux vdevs sont rayés pour former le pool. Un pool de deux vœux à deux lecteurs-chaque-miroir peut être abaissé par un lecteur défaillant et une erreur malheureuse sur l'autre lecteur dans cet ensemble de miroir, même si l'autre ensemble de miroirs fonctionne parfaitement. Dans le cas d'un tel échec, peu importe ce qui se passe, vous perdez des données.

La façon normale d'augmenter la capacité dans un pool ZFS est de remplacer les lecteurs en place par des plus grands, de permettre au pool de resilver sur le nouveau lecteur, puis de supprimer physiquement l'ancien lecteur qui n'est plus utilisé. Normalement, on veut utiliser zpool replace pour cela avec l'ancien et le nouveau lecteur connectés, pour maintenir le niveau de redondance souhaité tout au long du processus. L'alternative normale est d'ajouter des vdev avec le même niveau de redondance que les vdev existants dans le pool. Encore une fois, notez que, puisque ZFS ne prend pas en charge la suppression d'une partie d'un ensemble à rayures, et les pools sont constitués strictement de vdevs rayés, vous ne pouvez pas supprimer un vdev une fois que vous l'avez ajouté. Beaucoup de nouveaux arrivants à ZFS tombent dans ce piège, et il est facile de gâcher si vous ne faites pas attention aux commandes exactes que vous utilisez.

En raison de la façon dont les résistants ZFS fonctionnent, le resilvering est terriblement pénible pour les lecteurs concernés. Alors que les résistants RAID traditionnels sont généralement principalement séquentiels avec de petites quantités d'E / S aléatoires entrecoupées de l'activité utilisateur, les resilvers ZFS sont des E / S presque complètement aléatoires entrecoupées avec des E / S aléatoires de l'activité de l'utilisateur. Un ensemble de miroirs a vu largement la même activité tout au long de sa vie; Si un lecteur est marginal, voire mort, il est tout à fait possible que l'autre entraînement soit au mieux marginal. Le fait de souffrir à cause de l'épreuve résilissante pendant plusieurs jours peut très facilement le pousser sur le bord. (D'après votre expérience personnelle, je pense que, pour résister à 6 TB de données, vous envisagez un processus de resilver approximativement d'une semaine. Même si vous tournez tous les boutons jusqu'à 11 , en fonction du débit séquentiel pur – c'est-à-dire Totalement irréaliste compte tenu du format sur disque de ZFS et de la stratégie de resilvering – vous regardez au moins environ 17 heures de terreur pure pour le lecteur. Ma meilleure hypothèse est qu'il n'y aurait aucun moyen d'obtenir un resserre de 6 TB à moins de Peut-être deux fois, ou un jour et demi, d'abus de voiture.)

J'aurais également des doutes très sérieux sur une configuration miroir 2x24TB ou même 2x12TB, en supposant que de tels disques se matérialisent; Nous poussons un peu les limites de la physique (sans jeu de mots) avec les dimensions actuelles du lecteur. En supposant que la fiabilité du lecteur, en termes d' URE , reste similaire à aujourd'hui (10 ^ -14 à 10 ^ -15 erreurs sectorielles par bit lues, c'est là où il s'est déplacé pour toujours dans les fiches techniques du fabricant), statistiquement, vous ne serez pas Capable de lire complètement votre lecteur de 12TB sans rencontrer au moins une erreur (12 TB est d'environ 9 × 10 ^ 13 bits, ce qui ronde bien à 10 ^ 14). Au moment où vous poussez ceci à des lecteurs de 24 To, statistiquement, vous frapperez au moins une ou deux erreurs dans le secteur entier dans un passage de lecture complet (car vous lisez environ 2 * 10 ^ 14 bits). Même si vous allez avec 10 ^ -15 disques URE, cela ne vous achètera pas beaucoup (vous regardez ensuite cinq passes de lecture, plutôt qu'une demi-lecture). Ceci, bien sûr, est des statistiques et des spécifications; En pratique, les erreurs de lecture ont tendance à se regrouper, et un lecteur peut donner un service sans problème pour beaucoup, beaucoup de lectures complètes avant, à un moment donné, commence à lancer des erreurs à droite et à droite.

Étant donné que la plupart des filateurs non serveurs ne sont garantis que pendant 1 à 3 ans, je ne compterais sur aucun ensemble pour continuer à travailler pendant beaucoup plus longtemps que cela, alors que votre plan les oblige à rester fonctionnels pendant au moins six ans avant d'être remplacé . Même les filateurs de serveur ne sont généralement garantis que pendant cinq ans, bien que normalement cinq ans d'exploitation 24×7. Mon expérience personnelle est que les lecteurs consommateurs haut de gamme, tels que la série Constellation ES de Seagate, peuvent fournir presque ce niveau de service avant d'abandonner le fantôme et d'aller au ciel des données. (Anecdote personnelle: une Constellation ES.2 de 1 To. J'avais quelque chose comme 4 ans et 9 à 10 mois sous son rayon au moment où elle a commencé à jouer drôle, bien que je ne l'ai jamais couru à l'échec.)

En général, considérez que beaucoup de personnes qui exécutent ZFS bénéficient d'une double redondance une fois que la taille des filières atteint la marque de 3 à 4 points de poids ou plus petite pour des données plus importantes. Il y a une bonne raison pour cela: les périphériques de stockage échouent et cela se produit avec une fréquence alarmante . Dans le cas de ZFS, vous recherchez également des services de récupération de données beaucoup plus coûteux si vous voulez quelque chose au-delà de vous remettre les bits bruts qui risquent d'être lisibles sur les plateaux, et je ne connais aucun logiciel de récupération de données qui Peut même gérer à distance les pools ZFS. Si ZFS ne peut pas importer votre pool, la réponse la plus pratique est souvent de considérer comme perdu toute donnée sur laquelle vous n'avez pas sauvegardé ailleurs .

Pour répondre à la question du titre, et TL; DR

FreeNAS / ZFS me permettra de gérer mon stockage de cette façon

Dans un sens strictement technique, oui, il devrait. Cependant, je ne le recommanderais pas du tout. Vous poussez beaucoup trop l'enveloppe opérationnelle du matériel pour que je me sente bien à l'aise, sans parler de l'endosser. (Notez que cette réponse serait à peu près la même, peu importe le système de fichiers sur lequel vous posiez la question).