RAID-Z sur un seul disque dur est-il stupide?


18

De toute évidence, si le lecteur entier meurt, alors RAID-Z sur un seul disque n'aidera pas. Mais qu'en est-il des autres types d'erreurs?

D'après mon expérience, j'ai parfois un fichier que je ne peux pas lire. Sous Mac OS X, le système se bloque pendant un certain temps puis revient avec une erreur. Je déplace le fichier quelque part, et je suppose que ce fichier a un mauvais secteur ou un mauvais bloc ou peut-être même une mauvaise piste entière.

Je remonte à l'époque des disquettes où la gestion manuelle des pannes de disque n'était qu'une activité courante. Bien sûr, vous remplaceriez la disquette défectueuse dès que possible, mais parfois vous ne pouviez pas le faire immédiatement, la pratique consistait donc à trouver la mauvaise zone, à l'allouer à un fichier, puis à ne jamais supprimer ce fichier.

La première question est de savoir comment les disques durs échouent? Mes hypothèses ci-dessus sont-elles valables? Est-il vrai qu'un mauvais bloc se détériore, mais le lecteur entier est toujours principalement utilisable? Si tel est le cas, il semble que RAID-Z pourrait réparer le mauvais bloc ou la mauvaise zone du disque en utilisant la parité des autres blocs (zones).

Le cas d'utilisation est pour la sauvegarde. Si je transfère des données vers un lecteur de 8 To une fois par semaine, serait-il sensé de le considérer comme un lecteur de données de 7 To plus 1 To de parité dans l'espoir que la parité supplémentaire m'aidera à récupérer de la pourriture des bits, des secteurs défectueux ou d'autres pannes de disque localisées?

Si la théorie n'est pas défectueuse sur le plan technique, ZFS peut-il être configuré pour le faire?

Edit: J'ai vu l'autre question avant de poster cette question. La division en partitions séparées où chaque partition est regroupée est une option. Mais dans le concept, il pourrait être possible d'avoir le mappage de blocs pour les N partitions entrelacées les unes avec les autres de sorte qu'une bande, tout en étant logiquement sur N partitions, serait physiquement très rapprochée. C'était l'essentiel de ma question "ZFS peut-il être configuré pour le faire?" c'est à dire juste ZFS ... pas ZFS avec ruse de partitions.


7
Si vous souhaitez une redondance sur un seul disque, pensez à créer des archives par2 . Avec ZFS, vous pouvez définir copies=2, mais vous encourrez une pénalité de stockage de 50% en faisant cela. De plus, je ne suis pas un expert ZFS, mais mon intuition (qui peut être erronée) me dit que ZFS ne serait pas satisfait de votre solution proposée. PAR2 est une technologie mature et flexible. Son utilisation répondrait non seulement à votre exigence de parité, mais vous permettrait également de définir la quantité de parité par archive si vous le souhaitez.
EEAA


Les pistes sur les disques durs sont appelées cylindres (car il peut y avoir plus d'un plateau).
LawrenceC

1
Lorsque les disques tournent mal, cela a tendance à être un processus d'accélération - le taux de secteurs qui vont mal augmente jusqu'à ce que le disque entier soit inutilisable. Si le disque commence à mal tourner et que RAID-Z vous compense silencieusement, vous pouvez avoir une sauvegarde écrite avec succès, mais lorsque vous allez vous en remettre, c'est dépassé le point d'utilisation. Je préférerais que mon périphérique de sauvegarde échoue bruyamment pendant que je le sauvegarde, dès qu'il commence à mal, donc je peux le remplacer et continuer à croire que ce qui est écrit avec succès est lisible en toute confiance.
Anthony X

@EEAA - ressemble à ce que j'utiliserai. Je vous remercie. Et merci à tous ceux qui ont commenté.
pedz

Réponses:


23

Étant donné que la parité RAID-Z fonctionne en ayant le bloc de parité sur un autre périphérique du pool, vous devez partitionner votre périphérique en N + 1, N + 2 ou N + 3 partitions de taille égale, où N partitions contiennent les données et 1/2 contiennent les bits de parité.

En plus de ces partitions, vous devez créer un zpool, avec RAID-Z que vous avez sélectionné, puis créer un système de fichiers sur le zpool.

Donc, en théorie, cela fonctionne. En pratique, cela rendrait les performances du système de fichiers terribles, car les blocs conséquents dans les fichiers seraient situés dans différents périphériques ZPool, qui se trouvent dans différentes partitions. Ainsi, après avoir lu un bloc, le disque dur doit se déplacer vers une autre zone des plateaux du disque dur, lire le bloc suivant, etc.

La réponse est: oui, ce serait stupide.


2
Et si vous faisiez ça sur un SSD?
JFL

7
@JFL: Le flash NAND, qui est utilisé dans les SSD, a exactement le problème que cette solution essaie de résoudre, à savoir la mort de blocs individuels. En fait, avec NAND, c'est un si gros problème que tous les contrôleurs SSD le gèrent explicitement pour vous. En conséquence, le défaut visible le plus courant avec les SSD est une perte totale de l'ensemble du périphérique, probablement suivie d'un échec en lecture seule. Aucun problème ne bénéficie de la solution évitée ici.
MSalters

6
De plus, les SSD réorganisent les blocs. L'une des optimisations de niveau d'usure appliquées consiste à regrouper les écritures. Les écritures consécutives sur différentes partitions se retrouveraient dans le même bloc d'effacement, donc en cas de défaillance d'un bloc d'effacement, vous perdez exactement l'avantage de stocker plusieurs fois les mêmes données.
liori
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.