J'ai actuellement une partition Btrfs avec quatre appareils: trois disques de 3 To et un disque de 4 To. Les données et les métadonnées sont RAID 10, donc j'ai 6 To d'espace utilisable, ce qui est presque complet. J'avais prévu que la prise en charge de RAID 5 dans Btrfs serait mature au moment où mon stockage se serait rempli, mais apparemment ce n'est pas une priorité.
Ma question est: y a-t-il une raison de préférer RAID 10 à RAID 1 ? Je sais que le vrai RAID 1 sur mon matériel actuel devrait me donner 3 To d'espace utilisable avec 4 copies de chaque bloc, mais Btrfs ne se comporte apparemment pas de cette façon. De la FAQ Btrfs :
btrfs combine d'abord tous les périphériques dans un pool de stockage, puis duplique les morceaux au fur et à mesure de la création des données de fichier. RAID-1 est actuellement défini comme "2 copies de toutes les données sur différents périphériques". Cela diffère de MD-RAID et de dmraid, car ceux-ci font exactement n copies pour n périphériques. Dans un RAID-1 btrfs sur trois périphériques de 1 To, nous obtenons 1,5 To de données utilisables. Étant donné que chaque bloc n'est copié que sur 2 périphériques, l'écriture d'un bloc donné nécessite uniquement l'écriture de 2 périphériques; la lecture peut être faite à partir d'un seul.
Et de Jens Erat sur Stack Overflow :
Btrfs distribue les données (et ses copies RAID 1) par blocs, traite donc très bien les disques durs de tailles différentes. Vous recevrez la somme de tous les disques durs, divisée par deux - et vous n'avez pas besoin de réfléchir à la façon de les regrouper en paires de taille similaire.
Si plusieurs disques tombent en panne, vous risquez toujours de perdre des données: RAID 1 ne peut pas gérer la perte de deux disques en même temps. Dans votre exemple ci-dessus, si les deux mauvais disques meurent, vous perdez toujours des données.
Cela signifie-t-il que le rééquilibrage de RAID 10 vers RAID 1 me donnera 500 Go de données supplémentaires (6,5 To au lieu de 6 To) en raison du lecteur de 4 To? Et y a-t-il une raison pour que je reste avec RAID 10?
scrub
et lereplace
soutien a été ajouté au 3,19, mais les gens se plaignaient encore de l'absence de dispositifs alertes de défaillance. J'ai des crons configurés pour les gommages hebdomadaires et les autotests SMART hebdomadaires / mensuels, donc je devrais être en mesure de détecter ces problèmes. Je vais essayer.dev stats
, ce qui pourrait être un autre cronjob .Réponses:
Oui, vous obtenez 500 Go supplémentaires. Notez que la détermination de l'espace disponible dans btrfs reste difficile à atteindre. Consultez également le calculateur d'utilisation du disque btrfs .
Sur votre deuxième question: vous risquez de perdre certaines performances sur votre baie. Naturellement, vos données sont tout aussi sûres sur les deux configurations RAID. En considérant les performances, vous pouvez peut-être jeter un œil à ces benchmarks: kernel.org , phoronix.com .
Avez-vous déjà essayé de convertir en RAID 1? Si oui: quelles sont vos conclusions?
la source
btrfs fi sh
ce que l'espace supplémentaire sur le disque 4 TB est mis à profit, et (2,83 + 1,93 + 1,93 + 1,95) /2~=4.30 comme prévu. J'ai récemment subi une panne de disque et réussi à reconstruire sans perte de données, donc je peux confirmer de première main que la redondance est intacte.N'utilisez pas btrfs raid 5 ou 6, l'implémentation est pleine de bugs, exécutez zfs si vous le souhaitez.
Avec raid10, vous gagnerez de la vitesse.
La chose optimale à faire est de créer une partition de 3 To sur le lecteur de 4 To (assurez-vous que les 3 sont exactement de la même taille), combinez-les dans un RAID10 qui aura 6 To d'espace libre. Utilisez le 1 To supplémentaire sur le lecteur de 4 To pour / boot (cela doit être vfat de toute façon si vous voulez utiliser efistub et éviter grub ou tout autre chargeur de démarrage qui rendra votre démarrage un peu plus rapide), échangez (vous pouvez utiliser un assez grand, l'optimal serait un petit échange de zram (4 Go fonctionnent bien avec 32 Go de RAM, 2 Go devraient être bien avec 16 Go, si vous avez moins de 16 idk si cela vaut le coup et vous devriez probablement mettre à niveau de toute façon) c'est utilisé en premier (définissez la priorité sur la plus élevée) en utilisant zstd et autant de flux de compression que vous avez de cœurs / threads ...
la source