Est-ce que RAID1 ou similaire est nécessaire pour que btrfs / ZFS protège contre la pourriture de bits?

5

J'exécute un serveur de fichiers utilisant un logiciel Linux RAID, configuré en tant que raid6. En tant que système de fichiers, j'ai choisi btrfs. Cependant, je n'utilise pas l'implémentation propre de btrfs raid6 car elle n'est pas encore très stable. Donc, fondamentalement, j'utilise raid au niveau des blocs. De plus, je fais des sauvegardes vers un autre emplacement de données vraiment importantes. Enfin, j'ai connecté un onduleur au serveur pour me protéger contre les coupures de courant et les surtensions.

Mes questions:

  1. Je suis conscient que raid6 offre une bonne protection contre les pannes de disque dur, mais est-ce que btrfs, au-dessus de celui-ci, détectera réellement la pourriture des bits et le corrigera? Si c'est le cas, comment est-ce possible sans le système de fichiers raid1?

  2. Md passe-t-il de temps en temps dans le bloc raid6 pour rechercher et corriger les corruptions? Dois-je le programmer?

  3. Si vous avez mal agi, que me conseillez-vous plutôt de faire si je veux une bonne protection contre les défaillances de données et la pourriture de bits?

utilisateur333556
la source

Réponses:

4

1: Dans votre configuration, btrfs devrait détecter la corruption des données mais ne le corrigera pas car il n’ya pas de redondance des données en ce qui concerne btrfs.

2: RAID6 ne détecte ni ne protège de manière fiable contre la corruption de bits. Il protège uniquement contre les pannes de disque et, dans certains cas, peut détecter les blocs toujours défectueux non utilisés.

3: Si btrfs RAID6 n'est pas prêt, vous pouvez envisager la mise en miroir de btrfs ou ZFS RAIDZ2.

jlliagre
la source
1
(Répondant à une question qui a disparu: RAIDZ6 protégera-t-il contre le bit-rot) Oui, il le fait par sa conception. Il y a toujours un risque de corruption dû au retournement de bit de RAM. L'intégrité des données de bout en bout nécessite la mémoire RAM ECC et est recommandée au moins pour les systèmes de production. Soit dit en passant, c'est RAIDZ2, pas RAIDZ6.
jlliagre
4

BTRFS RAID-6 est (bien que toujours expérimental) en fait assez stable maintenant. La version actuelle parvient même à corriger de nombreuses erreurs typiques, notamment le remplacement d'un disque en panne / manquant.

Comme ZFS, BTRFS effectue un checksum, ce qui signifie que vous pouvez toujours (et devriez le faire périodiquement) exécuter un nettoyage pour vérifier vos données. Si les données (données ou métadonnées) d'un lecteur sont endommagées, BTRFS sera en mesure de détecter les erreurs et s'il est redondant (à l'aide de BTRFS RAID-6), il pourra réparer les fichiers affectés. Après cela, il saura si les fichiers réparés sont corrects car il possède des sommes de contrôle.

Les systèmes RAID classiques (matériel), y compris le MD (logiciel), ne disposent pas de sommes de contrôle. Ces systèmes ne reposant que sur la parité, une combinaison malencontreuse d'erreurs sur plusieurs lecteurs pourrait très bien conduire à la corruption. En l'absence de sommes de contrôle, le système RAID (comme md) ne sera pas en mesure de vérifier que toutes les erreurs ont disparu après un nettoyage (c'est-à-dire que les fichiers sont corrects). Il existe des exemples (également des vidéos) qui démontrent une corruption de données sur un système RAID classique.
Il est important d'être averti dès que la première erreur de parité est détectée et de résoudre le problème dès que possible (nettoyage). De plus, étant donné que la parité est le seul moyen (peu fiable) permettant au système RAID de savoir si vos données sont correctes ou non, les sauvegardes de batterie doivent être utilisées pour éviter de perdre toutes ces précieuses données de parité dans le trou d'écriture lorsque l'alimentation est coupée. .

Maintenant, si vous utilisez un système de fichiers avancé tel que BTRFS qui effectue le contrôle en tant que système de fichiers unique (sans redondance) au-dessus d’un système RAID-6 stupide, c’est à ce système RAID de détecter et de corriger les erreurs car Système RAID, BTRFS ne pourra PAS les réparer. Il détectera les erreurs et vous aidera à décider quoi restaurer à partir de votre sauvegarde en vous indiquant quels fichiers (chemin) sont corrompus. Mais sinon, il serait trop tard d'ici là. C'est pourquoi cette configuration peut ne pas être une si bonne idée après tout.

Si vous utilisez BTRFS de la manière dont il est censé être utilisé, en créant un système de fichiers BTRFS RAID-6 (sans MD RAID) avec accès direct à vos disques, il sera en mesure de corriger les erreurs de manière fiable et de savoir si ces erreurs ont réellement disparu. parce qu'il a des sommes de contrôle. Il vous indiquera sur quels lecteurs ces erreurs se sont produites afin que vous sachiez quel lecteur est défectueux (vous pouvez le remplacer à l'aide des commandes btrfs). Le fait est que peu importe si un lecteur est mort ou manquant et que vous devez le remplacer ou si un lecteur est partiellement corrompu (car il est sur le point de mourir), BTRFS détectera les erreurs de manière fiable. Bien sûr, les scrubs périodiques sont aussi importants que les autres systèmes RAID pour détecter la corruption silencieuse (indice: cronjob ).

Encore une fois, BTRFS RAID-6 est toujours considéré à titre expérimental à certains égards, mais grâce à des sommes de contrôle, il offre déjà un moyen fiable de détecter (puis de corriger) les erreurs. C'est expérimental, donc cela pourrait planter dans certains cas, alors vous devriez essayer une version plus récente du noyau, qui corrige de nombreux problèmes BTRFS. Assurez-vous de rester à jour avec votre noyau (4.3 au moment de la rédaction, n'utilisez rien de plus ancien que celui de RAID-6). Toutefois, les cas d'utilisation RAID typiques (stockage de nombreuses données et remplacement d'un lecteur - une défaillance de plusieurs lecteurs peut être différente) fonctionnent déjà avec BTRFS.


Vous avez tagué votre question avec . ZFS n'est pas inclus dans le noyau Linux, il devrait donc être installé manuellement - le port ZFSonLinuxfonctionne très bien. Il sera peut-être nécessaire de le réinstaller ou d'effectuer une autre réparation après l'installation d'une nouvelle version du noyau, mais ce n'est pas important maintenant. Bien entendu, certaines choses fonctionnent différemment dans ZFS. De plus, contrairement à un système de fichiers BTRFS, un zpool ZFS RAIDZ2 (comme RAID-6) ne peut pas être redimensionné (il existe des "astuces", mais le fait est qu'un raidz2 vdev ne peut pas vraiment être développé en ajoutant un lecteur), de sorte qu'un système existant ne peut pas facilement être étendu avec plus de lecteurs. Cependant, en ce qui concerne la stabilité, ZFS est probablement le meilleur choix de tous. Avec les sommes de contrôle, il offre la protection de données fiable décrite ci-dessus et il est suffisamment mûr pour tout gérer (pannes de plusieurs disques, contrôleur fragile), ZFS survit à presque tout et peut protéger / réparer vos données tant que vous avez assez de bons disques.

basic6
la source
1
A noter: les RAID 5/6 sont plus ou moins complets, mais RAID 5 au moins est beaucoup plus lent que RAID 1/10 à nettoyer. Ma baie RAID 5 4x4 TB prend 2 jours à nettoyer, alors qu’avant, avec les mêmes disques en RAID 1, il faudrait environ 10 heures. Je ne sais pas comment les points de repère des entrées-sorties se comparent aujourd'hui, mais ils étaient assez lents mais plus lents là aussi. Non inutilisable pour une partition multimédia, mais peut-être un problème pour le cas d'utilisation de l'OP.
Mikkel
@ Mikkel: Oui, vous avez raison. Nettoyer un ff RAID-5/6 prend plus de temps que de nettoyer un ff RAID-1. La charge élevée sur les disques augmente également le risque de défaillance d'un autre disque lors du nettoyage, raison pour laquelle RAID-6 doit être utilisé à la place de RAID-5. Cependant, le système reste utilisable à tout moment.
basic6
Il semble que le RAID1 de btrfs récupère automatiquement un miroir en cours de corruption tant que les données sont disponibles sur un autre miroir. Le wiki dit que si une lecture le rencontre, il réparera même automatiquement le périphérique cassé. Cependant, vous devez toujours effectuer un nettoyage manuel pour être sûr, car l'optimisation de la lecture RAID1 risque de lire la copie correcte et de ne pas remarquer la copie défectueuse et de la réparer comme par magie.
binki
2

Dans votre configuration, ce ne serait pas le cas.

Ce que je recommanderais, c’est l’utilisation de RAID-z2 intégré à ZFS, qui est ensuite capable d’effectuer une récupération bit-rot. L'activation de la compression lz4 fournira également de meilleures performances, ainsi que des économies d'espace.

Kim0
la source