Quel système de fichiers pour les grands LVM de disques (8 To)?

21

J'ai un serveur Linux avec de nombreux disques de 2 To, tous actuellement dans un LVM résultant en environ 10 To d'espace. J'utilise tout cet espace sur une partition ext4 et dispose actuellement d'environ 8,8 To de données.

Le problème est que j'obtiens souvent des erreurs sur mes disques, et même si je les remplace (c'est-à-dire que je copie l'ancien disque sur un nouveau avec dd puis je mets le nouveau sur le serveur) les dès que des erreurs apparaissent, J'obtiens souvent environ 100 Mo de données corrompues dessus. Cela rend e2fsck fou à chaque fois, et il faut souvent une semaine pour remettre le système de fichiers ext4 dans un état sain.

La question est donc: que me recommanderiez-vous d'utiliser comme système de fichiers sur mon LVM? Ou que me recommanderiez-vous à la place (je n'ai pas vraiment besoin du LVM)?

Profil de mon système de fichiers:

  • de nombreux dossiers de différentes tailles totales (certains totalisant 2 To, certains totalisant 100 Mo)
  • près de 200 000 fichiers de tailles différentes (3/4 d'entre eux environ 10 Mo, 1/4 entre 100 Mo et 4 Go; je ne peux pas actuellement obtenir plus de statistiques sur les fichiers car ma partition ext4 est complètement détruite pendant quelques jours)
  • beaucoup de lectures mais peu d'écrit
  • et j'ai besoin d'une tolérance aux pannes (j'ai cessé d'utiliser mdadm RAID parce qu'il n'aime pas avoir UNE erreur sur tout le disque, et j'ai parfois des disques défaillants, que je remplace dès que je peux, mais cela signifie que je peux obtenir des données corrompues sur mon système de fichiers)

Le problème majeur est la défaillance des disques; Je peux perdre certains fichiers, mais je ne peux pas tout perdre en même temps.

Si je continue d'utiliser ext4, j'ai entendu dire que je devrais essayer de créer des systèmes de fichiers plus petits et de les «fusionner» d'une manière ou d'une autre, mais je ne sais pas comment.

J'ai entendu dire que btrfs serait bien, mais je ne trouve aucun indice sur la façon dont il gère la perte d'une partie d'un disque (ou d'un disque entier), lorsque les données ne sont PAS répliquées ( mkfs.btrfs -d single?).

Tout conseil sur la question sera le bienvenu, merci d'avance!

alphatiger
la source
1
Exactement quelles erreurs de disque vous obtenez. Cela devrait donner un indice
Soham Chakraborty
Mauvais secteurs, souvent ce n'est qu'un ou deux secteurs défectueux sur tout le disque ...
alphatiger
Cela signifie que votre disque va mal. Rien à voir avec le système de fichiers. Si le disque est défectueux, peu importe ce que vous utilisez, ce sera pratique. Comme d'autres l'ont mentionné, optez pour des disques RAID et / ou achetez des disques d'entreprise. Recherchez également des contrôleurs de qualité.
Soham Chakraborty
Oui, je sais, c'est pourquoi je remplace les disques qui vont mal. Désolé si ma question n'était pas claire. Mais quand même, je pensais que certains systèmes de fichiers se comporteraient mieux avec des données corrompues ...
alphatiger
Vous devez vraiment vraiment remplacer les pièces défectueuses de votre matériel. C'est comme regarder un mannequin de crash test après qu'une voiture a été conduite contre le mur à 200 km / h. "Oh regarde! Sa jambe gauche est presque OK! Le test a réussi!" ... aucun système de fichiers ne peut vous aider si le matériel sous-jacent pourrit. XFS a un fsck plus rapide que ext *, et après assez de temps et le système de fichiers mûrit un peu plus, peut-être que btrfs fonctionnerait aussi. Ensuite, il y a ZFS mais sous Linux, son état est un peu triste.
Janne Pikkarainen

Réponses:

22

Ce n'est pas un problème de système de fichiers, ce sont les limitations physiques des disques. Voici quelques données:

Les disques SATA sont généralement spécifiés avec un taux d'erreur de lecture irrécupérable (URE) de 10 ^ 14. Cela signifie qu'un octet par 12 To sera irrémédiablement perdu même si les disques fonctionnent correctement .

Cela signifie que sans RAID, vous perdrez des données même si aucun disque ne tombe en panne - le RAID est votre seule option.

Si vous choisissez RAID5 (capacité totale n-1, où n = nombre de disques), ce n'est toujours pas suffisant. Avec 10 To RAID5 composé de 6 x 2 To HDD, vous aurez 20% de chances de tomber en panne un disque par an et avec un seul disque défaillant, grâce à URE, vous aurez 50% de chances de reconstruire avec succès RAID5 et de récupérer 100% de vos données .

Fondamentalement, avec la capacité élevée des disques et un URE relativement élevé, vous avez besoin de RAID6 pour être encore plus sûr en cas de défaillance d'un seul disque.

Lisez ceci: http://www.zdnet.com/blog/storage/why-raid-5-stops-working-in-2009/162

c2h5oh
la source
3
Attendez, URE signifie irrécupérables Lire l' erreur , mais cela ne signifie pas que le disque effectivement A l'erreur. La lecture suivante peut (et probablement) retournera le bit correct. L'OS va probablement relire le secteur et obtenir les données correctes. Vous avez également oublié de parler de SMART: avant qu'un secteur ne soit définitivement endommagé, SMART essaiera de lire / écrire des données depuis / vers celui-ci. S'il détecte trop d'échecs, SMART déplace simplement le contenu du secteur à un autre endroit et marque le secteur comme MAUVAIS et personne ne pourra plus y écrire.
Avio
Donc, vous proposez simplement d'acheter des tonnes de disques sans demander POURQUOI ses disques sont si défectueux. Cela pourrait être un problème de chaleur, cela pourrait être un problème avec un contrôleur SATA défectueux, cela pourrait être un problème de mauvais connecteurs SATA, etc. etc. etc.
Avio
@Avio Ce que je dis, c'est qu'avec 10 To de données, vous aurez des erreurs de lecture en raison des limitations du disque dur, même si tous les disques, le contrôleur SATA, les connecteurs SATA, etc. sont en parfait état et fonctionnent conformément aux spécifications. Je dis également que même si vous décidez d'utiliser RAID pour atténuer cela, vous devriez opter pour RAID6 car la capacité du disque + URE rend même RAID5 pas assez fiable. Même une panne de disque unique sur RAID5 a une chance de perte de données élevée (50% FFS!).
c2h5oh
1
@Avio U dans URE signifie Unrecoverable as in gone for good.
c2h5oh
Cela peut être le problème des systèmes de fichiers, si vous utilisez une copie sur un système de fichiers en écriture comme btrfs ou xfs, vous pouvez très probablement récupérer une version précédente du fichier, donc ne perdre que la dernière modification du fichier. (si cela a été changé)
Jens Timmerman
13

Rendez-vous service et utilisez un RAID pour vos disques, pourrait même être un RAID logiciel avec mdadm. Réfléchissez également à la raison pour laquelle vous "obtenez souvent des erreurs sur vos disques" - ce n'est pas normal, sauf lorsque vous utilisez des disques SATA de classe de bureau bon marché au lieu de disques de qualité RAID.

Après cela, le système de fichiers n'est plus si important - ext4, xfs sont tous deux de bons choix.

Sven
la source
1
Je suis d'accord que je devrais;) mais je n'utilise pas RAID pour de nombreuses raisons. Le principal est le prix, car ils sont 2-3 fois plus chers, et je ne peux pas vraiment me le permettre. La deuxième raison est que la dernière fois que j'ai utilisé RAID 5, j'ai eu la chance d'obtenir deux mauvais disques avant de pouvoir en connecter un nouveau et le resynchroniser (je n'avais pas de disques de rechange à l'époque, j'ai dû attendre un nouveau; je conviens qu'avec les disques de classe RAID, j'aurais eu ce problème). La troisième raison est qu'au fur et à mesure que les données que je dois stocker augmentent, j'ajoute progressivement de nouveaux disques de plus grandes tailles, ce que je ne peux pas faire avec une configuration RAID.
alphatiger
J'essaie donc de voir s'il existe un système de fichiers que quelqu'un me recommanderait d'utiliser dans une configuration où je ne peux pas compter sur des données non corrompues. Encore merci pour votre réponse!
alphatiger
4
Vous dites donc que vos données ne valent pas la dépense supplémentaire? Si vous ne pouvez pas vous permettre d'avoir au moins deux copies de vos données, vous devez les considérer comme perdues. Vous avez raison de dire que RAID5 n'est probablement pas un bon choix, vous devriez probablement regarder RAID6 ou RAID10.
Zoredache
@alphatiger: Les disques ne sont trop chers que si votre temps et vos données sont trop bon marché.
Rétablir Monica - M. Schröder
8

J'ai eu de la chance avec ZFS, vous pouvez vérifier s'il est disponible sur la distribution que vous utilisez. Juste avertissement, cela signifiera probablement la reconstruction de tout votre système, mais cela donne de très bonnes performances et une tolérance aux pannes.

TMN
la source
J'utilise actuellement Debian GNU / Linux, il semble qu'il y ait une implémentation FUSE, mais pas de paquet (en raison de problèmes de licence). Je vais probablement essayer (après avoir compilé à partir de sources, car utiliser FUSE n'est pas très agréable pour une sortie élevée), je ne me soucie pas de devoir reconstruire tout mon système de fichiers. Merci !
alphatiger
+1 pour ZFS. Le RAID traditionnel corrompra silencieusement les données car il n'est pas assez intelligent pour savoir quand les blocs sont incorrects ou comment les réparer. ZFS, d'autre part, détectera les blocs corrompus (via des sommes de contrôle) et les réparera à partir de bonnes copies miroir connues. L'exécution de ZFS sous FUSE, bien qu'elle ne soit pas idéale, fonctionnera suffisamment bien pour de nombreuses charges de travail. Cela étant dit, vous devez charger le test de votre application avant de l'utiliser dans un environnement de production.
bahamat
1
Un autre +1 pour ZFS. Presque tous les serveurs ici exécutent Linux et je suis un grand fan de celui-ci, mais ZFS s'est avéré si utile pour moi au cours des 3 dernières années que j'ai réellement fait l'effort d'apprendre et de configurer FreeBSD sur le grande machine de stockage pour pouvoir utiliser ZFS sans aucun problème de licence ou de performances.
ssc
Je l'exécute sous Solaris sur mon ancienne station de travail Sun, et les performances sont tout simplement incroyables, compte tenu du matériel (Opteron monocœur à 2,2 GHz avec 3G de mémoire et une paire de disques SATA 250G).
TMN
8

J'ajoute progressivement de nouveaux disques de plus grandes tailles

Étant donné que vous êtes intéressé par l'utilisation de LVM et que vous souhaitez gérer plusieurs disques, la réponse simple serait d'utiliser simplement la fonction miroir qui fait partie de LVM. Ajoutez simplement tous les volumes physiques dans votre LVM. Lorsque vous créez un volume logique, passez l' --mirrorsoption. Cela duplique vos données.

Une autre option pourrait être de simplement configurer plusieurs paires RAID1. Ajoutez ensuite tous les volumes RAID1 en tant que PV à votre VG. Ensuite, chaque fois que vous souhaitez étendre votre stockage, achetez simplement une paire de disques.

Zoredache
la source
7

Vous devriez vraiment utiliser un RAID 5, 6, 10, 50 ou 60. Voici quelques ressources pour vous aider à démarrer:

informations générales sur les RAID

comment faire et configuration

Consultez mes délicieux liens pour des liens RAID supplémentaires: http://delicious.com/slmingol/raid

slm
la source
Voir mes commentaires sur la réponse de SvenW pour voir pourquoi je ne veux pas vraiment de RAID. (En fait, j'ai déjà configuré plusieurs RAID logiciels dans une entreprise qui pouvait se le permettre ...) Pourtant, merci!
alphatiger
J'ai toujours utilisé des disques de base pour les RAID, jamais des disques conçus pour une utilisation RAID et je n'ai jamais eu de problème avec cela tant que vous choisissez un RAID qui a suffisamment de redondance (RAID 6 ou RAID 60). En utilisant un RAID 6, vous avez besoin d'un nombre pair. Vous pouvez développer des RAID assez facilement en remplaçant les membres existants par des disques plus grands, puis en vous développant dans l'espace des disques les plus récents.
slm
4

Si vous êtes vraiment inquiet de la corruption des données, je recommanderais un système de fichiers à somme de contrôle comme zfs et btrfs - bien que btrfs soit toujours considéré en cours de développement et non prêt pour la production.

Il n'y a aucune garantie que les données lues (même lues avec succès) à partir d'un disque seront correctes. Les blocs ont des sommes de contrôle, mais ce sont de simples sommes de contrôle qui ne détectent pas toujours les erreurs. Les systèmes de fichiers plus récents comme ZFS attachent des sommes de contrôle plus performantes aux fichiers et peuvent (et apparemment le font) intercepter et réparer les erreurs de données non détectées par le disque dur ou le contrôleur RAID.

tylerl
la source
1

Comme le dit @ c2h5oh , l' irrécupérable est critique - cela signifie que le disque a déjà essayé et échoué à relire le secteur.

D'après mon expérience, une fois qu'un disque commence à produire des erreurs de lecture irrécupérables (URE), certaines données sont perdues à jamais, et votre seul espoir est de sauvegarder immédiatement toutes les données à l'aide de GNU ddrescue , qui peut réessayer les secteurs défaillants et ignorer ceux qui ne sont pas récupérables.

En supposant que vous ayez des sauvegardes, elles peuvent avoir échoué en raison des URE et auront certainement des fichiers corrompus, vous devrez donc reconstituer un ensemble complet de données provenant de diverses sauvegardes du même système de fichiers.

Les autres réponses recommandant ZFS valent la peine d'être lues, car son nettoyage continu des données et ses fonctionnalités RAID aideront à garder vos données plus sûres à l'avenir - mais ne remplacent toujours pas les sauvegardes, qui protègent également contre les erreurs des utilisateurs et des administrateurs.

Je n'utiliserais LVM que si vous n'avez pas besoin d'instantanés - il ne s'intègre pas si bien avec RAID, n'inclut pas le nettoyage des données / les sommes de contrôle des données, et vous avez toujours besoin de sauvegardes, donc quelque chose comme ZFS est probablement une meilleure option. Voir cette réponse sur les problèmes et risques LVM pour en savoir plus.

RichVel
la source