Pool ZFS avec différentes tailles de lecteur

9

Je prévois de mettre en place un pool FreeNAS ZFS en utilisant deux disques de 2 To et deux disques de 1 To. J'aimerais avoir une redondance des données en quelque sorte. J'ai lu ce post qui semble suggérer que mes deux options sont de perdre 1 To par disque de 2 To en utilisant RAIDZ ou d'utiliser cette commande (qui double l'espace requis pour la redondance des données):

zfs set copies=2 poolname

Y a-t-il une meilleure façon de gérer cela et d'obtenir quelque chose de plus comme Beyond RAID de Drobo ou XRAID de Netgear? Alternativement, pourrais-je partitionner chaque disque de 2 To en partitions de 1 To et mettre les deux partitions dans le pool?

Timothy R. Butler
la source

Réponses:

13

Il existe un meilleur moyen de créer un seul pool de 3 To composé de deux miroirs.

zpool create test mirror disk1 disk2 mirror disk3 disk4

avec disk1 et disk2 étant les disques de 1 To et disk3 et disk4 étant ceux de 2 To.

Éditer:

Si vous souhaitez maximiser la taille et ne vous souciez pas tant des performances ou des meilleures pratiques, vous pouvez partitionner tous les disques avec des partitions (ou tranches) de taille égale et créer un pool hybride de 4 To avec un RAIDZ 4 vdev et un miroir 2 vdev.

zpool create -f test raidz d0p1 d1p1 d2p1 d3p1 mirror d0p2 d1p2

Notez l'option "-f" requise pour forcer la commande à accepter la non-concordance du niveau de réplication.

jlliagre
la source
1
Merci pour l'information. Ce serait donc comme une mise en miroir normale où la redondance "coûte" 100% de plus, semble-t-il? Existe-t-il un moyen d'atteindre un "coût" de 50% de type RAID5 pour la parité? Quelles sont les performances de cette configuration par rapport aux performances d'une configuration ZRAID / RAID5 avec 4 disques de taille égale?
Timothy R. Butler, du
@ TimothyR.Butler Vous ne pouvez pas créer un miroir de 1 To et appliquer RAIDZ sur les deux 2 To et le miroir de 2 To, cela ne fonctionne tout simplement pas de cette façon. Pour utiliser RAIDZ, vous devez avoir des disques de taille égale (ou vous abandonnerez l'espace supplémentaire sur les disques plus gros, ou vous devrez commencer à entrer dans des configurations non recommandées). Les deux configurations de miroir recommandées par ces réponses sont vos meilleures configurations recommandées.
Chris S
Merci jilliagre et @chriss pour les commentaires. Je pense que je peux simplement acheter deux disques supplémentaires et l'appeler par jour. Cette deuxième commande que jilliagre vient d'ajouter est intrigante cependant ... Serais-je correct en supposant que les performances seraient aussi bonnes ou meilleures que tout ce qui est mentionné ci-dessus si je faisais un RAIDZ 4x2TB?
Timothy R. Butler, du
@ TimothyR.Butler Un RAIDZ 4x2To aurait un léger impact sur les performances par rapport aux doubles miroirs 2x2TB (RAID10 essentiellement). Ces deux auraient la meilleure performance de tout ce dont nous avons discuté ici.
Chris S
4

Cela dépend de la quantité de stockage de données dont vous avez besoin. Vous pouvez créer deux pools de 1 To et 2 To chacun, en utilisant RAID 1. Sinon, voyez si vous pouvez acquérir des disques de même taille et essayez RAID 1 + 0 ou RAIDZ.

ewwhite
la source
Merci. Est-ce que deux pools seraient mieux qu'un pool avec deux RAIDZ dedans?
Timothy R. Butler, du
@ TimothyR.Butler Chaque miroir de disques est un vdev dans ZFS. Vous ne pouvez pas supprimer vdevs d'un pool zfs; donc une fois que la piscine a deux miroirs, elle doit toujours avoir au moins ces deux (vous pouvez en ajouter plus, mais pas en supprimer). Si vous avez toujours voulu passer à quelque chose avec moins de vdev, vous devrez détruire la piscine et recommencer à zéro. Donc, en commençant par deux zpools, vous avez la possibilité de les séparer plus tard si vous le souhaitez, mais vous perdez la flexibilité de partager automatiquement l'espace de stockage (vous devez placer les fichiers sur un pool ou l'autre au fur et à mesure qu'ils se remplissent).
Chris S
@ewwhite, je sais ce que vous entendez par "RAID 1 + 0" mais il n'y a aucun moyen de le faire explicitement dans ZFS ... certains peuvent être confondus par la différence.
Chris S
2

Depuis le guide d'administration ZFS:

"Les périphériques peuvent être des tranches individuelles sur un disque préformaté, ou ils peuvent être des disques entiers que ZFS formate comme une seule grande tranche."

Alors oui, vous pouvez créer deux partitions 1 To sur ces disques de 2 To, les utiliser pour RAID-Z vdev et l'espace restant pour le stockage non redondant.

Cependant, selon le Guide des meilleures pratiques ZFS, vous pouvez rencontrer des performances dégradées:

Pour les systèmes de production, utilisez des disques entiers plutôt que des tranches pour les pools de stockage pour les raisons suivantes:

  • Permet à ZFS d'activer le cache d'écriture du disque pour les disques qui ont des caches d'écriture. Si vous utilisez une matrice RAID avec un cache d'écriture non volatile, cela pose moins de problème et les tranches car les vdev devraient toujours bénéficier du cache d'écriture de la matrice.

  • Pour le stockage attaché JBOD, le fait d'avoir un cache de disque activé, permet l'émission de certaines écritures synchrones sous forme d'écritures de disque multiples suivies d'un vidage de cache unique permettant au contrôleur de disque d'optimiser la planification des E / S. Par ailleurs, pour les systèmes qui ne prennent pas correctement en charge SATA NCQ ou SCSI TCQ, le fait d'avoir un cache d'écriture activé permet à l'hôte d'émettre une opération d'E / S unique de manière asynchrone à partir d'E / S physiques.

  • Le processus de récupération pour remplacer un disque défaillant est plus complexe lorsque les disques contiennent à la fois des systèmes de fichiers ZFS et UFS sur des tranches.

Terlisimo
la source
Magnifique travail de couper-coller, mais tout ce qui a déjà été couvert dans les deux autres réponses.
Chris S