26 votes

Scénarios de perte de données ZFS

J'envisage de construire un grand pool ZFS (150TB+), et j'aimerais connaître les expériences des gens sur les scénarios de perte de données en raison d'une défaillance matérielle, en particulier la distinction entre les cas où seules certaines données sont perdues et l'ensemble du système de fichiers (ou s'il existe même une telle distinction dans ZFS).

Par exemple : disons qu'un vdev est perdu à cause d'une panne comme un boîtier de disque externe qui perd de l'énergie, ou une carte de contrôleur qui tombe en panne. D'après ce que j'ai lu, le pool devrait passer en mode défaillant, mais si le vdev est renvoyé, le pool devrait se rétablir ? ou pas ? ou si le vdev est partiellement endommagé, perd-on tout le pool, certains fichiers, etc.

Que se passe-t-il en cas de défaillance d'un dispositif ZIL ? Ou simplement l'un de plusieurs ZIL ?

Toutes les anecdotes ou scénarios hypothétiques étayés par des connaissances techniques approfondies sont les bienvenus !

Merci de votre attention !

Mise à jour :

Nous le faisons à peu de frais car nous sommes une petite entreprise (9 personnes environ), mais nous générons une grande quantité de données d'imagerie.

Les données sont principalement constituées de petits fichiers, soit, d'après mes calculs, environ 500 000 fichiers par TB.

Les données sont importantes, mais pas ultra-critiques. Nous prévoyons d'utiliser le pool ZFS comme miroir d'une baie de données "live" de 48 To (utilisée depuis environ 3 ans), et d'utiliser le reste du stockage pour les données "archivées".

Le pool sera partagé à l'aide de NFS.

Le rack est censé être relié à un générateur de secours du bâtiment, et nous avons deux onduleurs APC capables d'alimenter le rack à pleine charge pendant environ 5 minutes.

22voto

ewwhite Points 193555

Concevoir dans les règles de l'art et vous minimiserez les risques de perte de données de ZFS. Vous n'avez cependant pas expliqué ce que vous stockez sur le pool. Dans mes applications, il s'agit principalement de servir des VMDK VMWare et d'exporter des zvols via iSCSI. 150 To n'est pas une quantité insignifiante, je m'appuierais donc sur un professionnel pour obtenir des conseils en matière de mise à l'échelle.

Je n'ai jamais perdu de données avec ZFS.

I tienen a fait l'expérience de tout le reste :

Mais pendant tout ce temps, il n'y a jamais eu de perte appréciable de données. Il n'y a eu que des temps d'arrêt. Pour les VMDK VMWare installés sur ce stockage, un fsck ou un redémarrage était souvent nécessaire à la suite d'un événement, mais pas plus que n'importe quel autre crash de serveur.

En ce qui concerne la perte d'un périphérique ZIL, cela dépend de la conception, de ce que vous stockez et de vos schémas d'E/S et d'écriture. Les périphériques ZIL que j'utilise sont relativement petits (4 à 8 Go) et fonctionnent comme un cache en écriture. Certaines personnes mettent en miroir leurs périphériques ZIL. L'utilisation de périphériques SSD STEC haut de gamme rend la mise en miroir trop coûteuse. J'utilise un seul DDRDrive des cartes PCIe. Prévoyez une protection par batterie/UPS et utilisez des disques SSD ou des cartes PCIe avec un super-condensateur de secours (similaire au contrôleur RAID Mise en œuvre du BBWC et du FBWC ).

J'ai surtout travaillé sur les systèmes Solaris/OpenSolaris et NexentaStor des choses. Je sais que des gens utilisent ZFS sous FreeBSD, mais je ne suis pas sûr que les versions de zpool et d'autres fonctionnalités soient en retard. Pour les déploiements de stockage pur, je recommanderais de suivre la voie de Nexentastor (et de parler à un partenaire expérimenté ), car il s'agit d'un système d'exploitation conçu à cet effet et il y a plus de déploiements critiques fonctionnant sur des dérivés de Solaris que sur FreeBSD.

12voto

SimSimY Points 1081

J'ai accidentellement écrasé les deux ZIL sur la dernière version d'OpenSolaris, ce qui a entraîné la perte irrévocable de l'ensemble du pool. (Très mauvaise erreur de ma part ! Je n'avais pas compris que la perte de la ZIL entraînerait la perte du pool. Heureusement récupéré à partir de la sauvegarde avec un temps d'arrêt).

Depuis la version 151a (je ne sais pas de quelle version de ZPool il s'agit), ce problème a été corrigé. Et je peux témoigner que cela fonctionne.

A part cela, je n'ai perdu AUCUNE donnée sur un serveur de 20tb - y compris à cause de plusieurs autres cas d'erreur de l'utilisateur, de multiples pannes d'électricité, d'une mauvaise gestion des disques, de mauvaises configurations, de nombreux disques défectueux, etc. Même si les interfaces de gestion et de configuration de Solaris changent fréquemment et de manière exaspérante d'une version à l'autre et représentent une cible de compétences en constante évolution, il s'agit toujours de la meilleure option pour ZFS.

Non seulement je n'ai pas perdu de données sur ZFS (après ma terrible erreur), mais il me protège en permanence. Je ne subis plus de corruption de données, ce qui m'est arrivé au cours des 20 dernières années sur un grand nombre de serveurs et de stations de travail, en fonction de ce que je fais. La corruption silencieuse (ou simplement "assez silencieuse") des données m'a tué à de nombreuses reprises, lorsque les données sortent de la rotation de sauvegarde, mais sont en fait devenues corrompues sur le disque. Ou dans d'autres scénarios où les sauvegardes ont sauvegardé les versions corrompues. Cela a été un problème bien plus important que la simple perte de données en une seule fois, qui est presque toujours sauvegardée de toute façon. C'est pour cette raison que j'adore ZFS et que je n'arrive pas à comprendre pourquoi la somme de contrôle et la guérison automatique n'ont pas été des fonctionnalités standard des systèmes de fichiers depuis une décennie. (Il est vrai que les systèmes réellement vitaux ont généralement d'autres moyens d'assurer l'intégrité, mais tout de même - l'intégrité des données de l'entreprise est également importante).

Si vous ne voulez pas sombrer dans l'enfer des ACL, n'utilisez pas le serveur CIFS intégré à ZFS. Utilisez Samba. (Vous avez dit que vous utilisiez NFS).

Je ne suis pas d'accord avec l'argument SAS vs SATA, du moins avec la suggestion que SAS est toujours préféré à SATA, pour ZFS. Je ne sais pas si ce commentaire faisait référence à la vitesse de rotation des plateaux, à la fiabilité présumée, à la vitesse de l'interface ou à d'autres attributs. (Ou peut-être simplement "ils coûtent plus cher et ne sont généralement pas utilisés par les consommateurs, ils sont donc supérieurs". Une étude récente de l'industrie (toujours d'actualité, j'en suis sûr) a révélé que le SATA l'emporte en moyenne sur le SAS, du moins avec la taille significative de l'échantillon de l'étude. (Je ne me souviens pas s'il s'agissait de versions "entreprise" de SATA, ou de versions grand public, ou de quelles vitesses - mais d'après mon expérience considérable, les modèles d'entreprise et grand public tombent en panne aux mêmes taux statistiquement significatifs. (Il y a cependant le problème des disques grand public qui mettent trop de temps à s'éteindre en cas de défaillance, ce qui est certainement important dans les entreprises - mais cela ne m'a pas frappé, et je pense que c'est plus pertinent pour les contrôleurs matériels qui pourraient mettre tout le volume hors ligne dans de tels cas. Mais ce n'est pas un problème SAS vs SATA, et ZFS ne m'a jamais fait défaut à ce sujet. Suite à cette expérience, j'utilise maintenant un mélange d'un tiers de disques SATA d'entreprise et de deux tiers de disques SATA grand public). En outre, je n'ai pas constaté de baisse significative des performances avec ce mélange de SATA, lorsqu'il est configuré correctement (par exemple, une bande de miroirs à trois voies), mais encore une fois, j'ai une faible demande d'IOPS, donc en fonction de la taille de votre magasin et des cas d'utilisation typiques, YMMV. J'ai définitivement remarqué que la taille du cache intégré par disque est plus importante pour les problèmes de latence que la vitesse de rotation des plateaux, dans mes cas d'utilisation.

En d'autres termes, il s'agit d'une enveloppe dont les paramètres sont multiples : coût, débit, IOPS, type de données, nombre d'utilisateurs, bande passante administrative et cas d'utilisation courants. Dire que SAS est toujours la bonne solution, c'est ignorer un grand nombre de permutations de ces facteurs.

Mais quoi qu'il en soit, ZFS est absolument génial.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X