Licence CC BY

Disques durs « spécial NAS » et reconstruction de RAID

Quand une tolérance de panne ne tolère plus grand-chose

Dernière mise à jour :
Auteur :
Catégories :
Temps de lecture estimé : 6 minutes

Si vous avez acheté un NAS, vous avez peut-être lu qu’il valait mieux acheter des disques durs « spécial NAS » pour mettre dedans. Mais pourquoi au fait ?

Parce que les mathématiques !

C’est moche, mais c’est la vérité.

En première approche…

Un NAS est plutôt utilisé pour du stockage de masse à long terme, donc sans besoin d’I/O par seconde élevées, et avec un débit max limité par le réseau – il existe des cas particuliers.

Donc on pourrait se dire que quitte à acheter, disons des disques de 4 To, autant prendre des disques à 5900 tours/minute à 120-130 € que des disques à 7200 tours/minute à 250-280 € pièce. Surtout pour en mettre plusieurs dans le même boitier : avec la tolérance de panne, il suffit de les remplacer s’ils lâchent, donc pas la peine de les prendre ultra-fiables.

Sauf que « les maths »

Une caractéristique presque inconnue des disques durs, c’est leur taux d’erreur incorrigible. Tous les n bits lus, il va y en avoir un que tous les systèmes internes au disque ne pourront pas corriger, et donc une lecture va planter (ça marche aussi avec les écritures)1.

Pour un disque dur de particulier, le constructeur donne en général n ≥ 1014 donc un taux d’erreur inférieur incorrigible inférieur à 10-14 par bit lu. C’est très fiable : un rapide calcul montre qu’un disque de 4 To (3,2 * 1013 bits) peut être statistiquement lu 3 fois en entier sans erreur – laquelle, pour un particulier, ne prête généralement pas à conséquence.

Mais on parle d’un NAS, avec des disques durs en RAID. Quand ce RAID tolérant aux pannes plante, on doit reconstruire les données du nouveau disque.

Le pire des cas, c’est le RAID 5 : la grappe peut contenir pas mal de disques, et comme il n’y a une tolérance d’un seul disque, une reconstruction implique de lire l’intégralité de tous les disques pour reconstruire le nouveau disque. Donc de lire ou écrire l’intégralité de tous les disques de la grappe.

La probabilité reconstruction d’une grappe RAID 5 est donc de :

$$\mathrm{risque} = (1 - \mathrm{tauxErreur})^{\mathrm{nbDisques} \times 8 \times \mathrm{taille1DisqueEnOctets}}$$

Applications :

Oups.

Et une erreur au milieu d’une reconstruction RAID, c’est souvent l’opération complète à refaire — une opération qui dure des heures et qui sollicite beaucoup les disques, donc augmente leur risque de panne.

Les disques « spécial NAS »

Ces disques ont plein de petites différences mais surtout une meilleure résistance aux erreurs incorrigible : typiquement n = 1015, soit 10 fois mieux que les disques grand public.

Ce qui permet donc de reconstruire les grappes de disques (avec une probabilité de 95,3 %, 85,2 % et 78,7 % sur les 3 exemples précédents).

Si vous avez un NAS avec de la tolérance de pannes, vous devez probablement aussi investir dans des disques à haute résistance aux erreurs pour que cette tolérance de pannes soit réelle et pérenne.


  1. En réalité c’est le secteur qui ne sera pas correctement lu/écrit, parce que le disque ne peut lire ou écrire qu’un secteur entier. D’où cette mention dans les specs. Mais ça ne change pas les calculs. 


C’est la dure loi des mathématiques et des grands nombres, où de grandes fiabilités sur des quantités de données gigantesques donnent une fiabilité globale parfois en-deçà de ce qui était imaginé.

À noter que :

  1. Ce sont des garanties constructeur, donc avec un peu de chance ça se passera bien. Tout comme on peut cramer un disque dur de bonne qualité, comme celui du boulot qui m’a fait penser à écrire ce billet. À vous de voir si vos données peuvent se permettre d’un coup de chance ou s’il vaut mieux investir.
  2. Les liens LDLC et Seagate ne sont là qu’à titre d’exemple (disques de la même marque disponibles sur le même site et dont les spécifications sont faciles à trouver, ce qui n’est pas si évident que ça). Je n’ai aucun contrat avec ces marques.

7 commentaires

Eh bien pour la petite histoire j’avais un NAS avec 2 disques « NAS » en RAID 1. Une grosse partie pour de la sauvegarde et le reste en accès régulier via différents postes de travail. Un des disques à rendu l’âme, on a donc dû le changer. Une semaine après la reconstruction (de 1.8To), le second a commencé à avoir des soucis et on a été obligé de le changer également. Je comprends un peu mieux pourquoi à présent !

"I think that it’s extraordinarily important that we in computer science keep fun in computing." — Alan J. Perlis

+0 -0

En fait gustavi le cas que tu décris est un classique mais pas pour les mêmes raisons que ce que j’explique dans le sujet.

Souvent (statistiquement par rapport au reste du temps), quand un disque d’une grappe RAID lâche, un autre lâche pendant la reconstruction ou peu après. Pourquoi ? Plusieurs facteurs :

  1. La reconstruction sollicite anormalement beaucoup les disques (sur un usage « standard » de la grappe).
  2. La reconstruction nécessite de relire intégralement les disques. Or si ça se trouve il y avait des erreurs passées inaperçues parce que personne n’a essayé de relire ou écrire le secteur défectueux. C’est pour ça que certains systèmes permettent de « vérifier » le RAID, ce que consiste grosso modo à tout relire.
  3. Deux disques de la même série produits en même temps ont plus de chance d’avoir des mêmes défauts de fabrication et donc de lâcher à peu près au même moment. C’est pour ça qu’on conseille de mettre deux marques, ou au moins deux modèles différents dans la même grappe RAID. Ça c’est la théorie, en pratique c’est rarement possible. Par exemple pour du disque NAS 4 To, seul le modèle cité dans l’article est facile à trouver en France en livraison rapide. Pour des baies de disques à haute vitesse (10000 ou 15000 tours/minute, devenues inutiles à cause des SSD), il n’y avait déjà pas vraiment le choix quand c’était utilisé, et trouver un disque de remplacement aujourd’hui devient compliqué.

D’accord, merci. Pour le coup niveau point 2, le disque a fait l’objet de tests assez approfondis avant la reconstruction, il était en pleine forme.

"I think that it’s extraordinarily important that we in computer science keep fun in computing." — Alan J. Perlis

+0 -0

Le cas que tu décris ne correspond pas à celui que je décris : dans le mien tu as un « RAID array », dans le tiens tu as une espèce de RAID combiné de 4 « RAID array » de 5 disques chacun.

Donc pour le reconstruire, tu vas devoir quand même lire l’équivalent de l’intégralité de 4 disques et écrire l’intégralité du 5ème, donc tu vas te retrouver avec le calcul que je décris avec nbDisques = 5.

La méthode décrite permet quand même, en répartissant les I/O de lectures sur 19 disques au lieu de 4, de limiter le 1er effet kiss cool que je décris ici, en plus d’avoir un meilleur accès aux données pendant la reconstruction.

Deux disques de la même série produits en même temps ont plus de chance d’avoir des mêmes défauts de fabrication et donc de lâcher à peu près au même moment.

J’avais entendu dire qu’on conseillait même de changer la totalité des disques quand l’un d’eux lâchait. Ça parait déjà difficile sur de petites installations, alors sur des grosses, je n’imagine même pas.

Une autre question : n’étant pas très matheux, le risque d’impossibilité de reconstruction diminue t-il sensiblement si on a un RAID résistant à la perte de plus d’un disque, ou cette amélioration est-elle négligeable selon les statistiques ?

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte