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!
la source
Réponses:
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
la source
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.
la source
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.
la source
É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'
--mirrors
option. 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.
la source
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
la source
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.
la source
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.
la source