La parité RAID peut rester mathématiquement valide alors que les données NAS sont erronées, car la parité prouve généralement que les blocs actuels satisfont une équation de redondance. Elle ne prouve pas que ces blocs contiennent le contenu de fichier historiquement correct.
Si des données corrompues sont écrites via le chemin de stockage normal, la couche RAID peut calculer une parité correspondante pour ces données corrompues. La bande est alors cohérente en interne, mais le fichier peut toujours être logiquement ou silencieusement endommagé.
Que valide réellement la parité RAID ?
La parité est une relation entre les blocs d’une bande. Dans un exemple simplifié à parité unique, les blocs de données et le bloc de parité sont reliés par une équation XOR. Si un bloc manque, les autres peuvent le recréer.
Cette équation répond à une question précise : ces valeurs de blocs actuelles correspondent-elles à la relation de parité attendue ? Elle ne répond pas à la question de savoir si une photo contient toujours les pixels que l’utilisateur a initialement sauvegardés, si une page de base de données reflète la dernière transaction validée, ou si un logiciel malveillant a modifié intentionnellement le fichier.
Comment des données erronées et une parité correcte peuvent-elles coexister ?
Supposons qu’un chemin mémoire défectueux, un bug logiciel, un défaut d’application ou une source déjà corrompue produise des données erronées avant que le RAID ne calcule la parité. La pile de stockage écrit les mauvaises données et met à jour la parité à partir de cette même valeur erronée. Les deux écritures peuvent se terminer parfaitement.
La bande résultante est cohérente du point de vue du RAID. Un contrôle de parité ultérieur ne détectera aucune incohérence car l’équation est toujours vraie. La défaillance s’est produite au-dessus de la couche de parité, donc la parité n’a aucun enregistrement indépendant du contenu prévu.
| Condition | Blocs de données | Parité | Ce que voit le RAID |
|---|---|---|---|
| Écriture saine | Correcte | Correspond | Consistante |
| Données erronées écrites normalement | Fausses | Correspond aux données erronées | Consistante |
| Write hole | Valeurs nouvelles et anciennes mélangées | Ne correspond pas à la bande finale | Inconsistante |
| Erreur latente de secteur | Un bloc illisible ou altéré | Peut aider à reconstruire | Dépend des informations restantes |
Pourquoi un write hole RAID est-il un problème différent ?
Un write hole se produit lorsqu’une mise à jour de bande est interrompue après qu’une partie seulement des modifications de données et de parité ait atteint le stockage stable. La bande peut alors contenir un mélange de valeurs anciennes et nouvelles. C’est une incohérence de parité, et non le cas de « données erronées avec parité correspondante ».
La documentation du journal partiel de parité (PPL) de Linux MD explique que le PPL résout le write hole RAID 5 en enregistrant la parité partielle avant la mise à jour principale de la bande. Elle note aussi une limite importante : protéger la cohérence de la parité ne protège pas automatiquement les données utilisateur en cours de transfert contre tous les modes de défaillance.
Les journaux RAID décrits dans la documentation RAID du device-mapper Linux résolvent la même classe de mises à jour non atomiques de composants. Ils maintiennent l’équation de parité cohérente après une écriture interrompue, mais ne peuvent pas déterminer si l’application a fourni les bons octets.
Qu’est-ce qui ajoute une intégrité de bout en bout ?
Les sommes de contrôle de bout en bout ajoutent une identité distincte pour un bloc de données ou un enregistrement. Un scrub peut recalculer la somme de contrôle et la comparer à la valeur stockée. Si une copie redondante échoue à la validation et qu’une autre réussit, le système a une preuve sur la copie fiable.
La documentation du scrub Btrfs décrit la vérification des données et des métadonnées pour les erreurs de somme de contrôle et de lecture, puis la réparation à partir d’une réplique vérifiée lorsqu’elle est disponible. Cela diffère de la simple confiance en la parité pour dire qu’une équation de bande est équilibrée.
La somme de contrôle doit aussi être protégée et stockée via un chemin fiable. Si le contenu et sa somme de contrôle sont tous deux écrasés avec une nouvelle version logiquement erronée, le système peut vérifier cette version erronée de manière cohérente.
Où le RAID est-il encore utile ?
La parité reste précieuse pour la récupération en cas de défaillance de disque ou de bloc illisible. Elle peut reconstruire l’information manquante, préserver la disponibilité et soutenir la réparation lorsque la défaillance relève du modèle RAID. L’erreur est de demander à la parité de prouver la justesse de l’application, la vérité historique ou l’indépendance vis-à-vis de la même pile de stockage.
Cette limite fait partie de les limites du RAID pour la protection des données NAS à domicile. RAID, sommes de contrôle, instantanés et sauvegardes répondent à des questions différentes et deviennent plus efficaces lorsqu’ils sont combinés plutôt que traités comme interchangeables.
FAQ
Un contrôle de parité réussi prouve-t-il que chaque fichier est correct ?
Non. Il prouve que les bandes vérifiées satisfont leurs relations de parité actuelles. Les fichiers peuvent toujours être logiquement erronés, modifiés malicieusement ou corrompus de manière cohérente au-dessus de la couche RAID.
Les sommes de contrôle peuvent-elles identifier la copie correcte ?
Elles peuvent distinguer une copie qui correspond à sa somme de contrôle stockée d’une qui ne correspond pas. La réparation nécessite toujours une copie redondante valide ou une sauvegarde, et une somme de contrôle ne peut pas détecter une mauvaise version qui a été légitimement sommée après écriture.
Le journal RAID est-il identique au journal du système de fichiers ?
Non. Le journal RAID protège la cohérence des mises à jour du tableau, en particulier les relations données-parité. Le journal du système de fichiers protège la cohérence des transactions du système de fichiers, comme les mises à jour des métadonnées.
Conclusion
Une parité valide signifie que la bande actuelle est mathématiquement auto-cohérente. Cela ne signifie pas que les octets sont ceux qui étaient prévus. Les sommes de contrôle de bout en bout, la sémantique des transactions, les instantanés et les sauvegardes indépendantes sont nécessaires pour répondre aux questions plus larges d’intégrité et de récupération que la parité ne peut pas traiter.
Centre Tech & IA
Plus à lire

Pourquoi Home Assistant fonctionne-t-il différemment sur le réseau local et à distance ?
Les sessions Home Assistant en réseau local et à distance utilisent des chemins réseau différents ; la latence à distance ajoute le DNS, le...

Home Assistant fonctionne-t-il de manière fiable derrière un CGNAT ou un double NAT ?
Le CGNAT et le double NAT n’affectent généralement pas le contrôle local de Home Assistant ; ils modifient principalement la façon dont les clients...

Comment la latence du réseau affecte-t-elle Home Assistant pendant les pannes d’Internet ?
La perte de connexion Internet et la latence du réseau sont deux problèmes distincts : les chemins locaux entre les appareils peuvent rester rapides...

