Que se passe-t-il si je force ZFS à détacher un disque de secours sans réplique valide?

9

J'ai un pool ZFS composé de 6 RAIDZ. L'un des RAIDZ est dégradé, en raison de la perte de deux disques dans le seul RAIDZ suffisamment rapprochés pour que ZFS ne soit pas en mesure de récupérer à partir du premier échec avant la défaillance du deuxième disque. Voici la sortie de "zpool status" peu de temps après le redémarrage:

  pool: pod2
 state: DEGRADED
status: One or more devices has experienced an error resulting in data
        corruption.  Applications may be affected.
action: Restore the file in question if possible.  Otherwise restore the
        entire pool from backup.
   see: http://www.sun.com/msg/ZFS-8000-8A
 scrub: resilver in progress for 0h6m, 0.05% done, 237h17m to go
config:

        NAME                                                 STATE     READ WRITE CKSUM
        pod2                                                 DEGRADED     0     0 29.3K
          raidz1-0                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F165XG    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1660X    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1678R    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F1689F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16AW9    ONLINE       0     0     0
          raidz1-1                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C6E    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16C9F    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16FCD    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F16JDQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17M6V    ONLINE       0     0     0
          raidz1-2                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MSZ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17MXE    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XKB    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17XMW    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F17ZHY    ONLINE       0     0     0
          raidz1-3                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BM4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18BRF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_W1F18XLP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09880    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F098BE    ONLINE       0     0     0
          raidz1-4                                           DEGRADED     0     0 58.7K
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09B0M    ONLINE       0     0     0
            spare-1                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09BEN  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01  ONLINE       0     0     0  837K resilvered
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0D6LC    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CWD1    ONLINE       0     0     0
            spare-4                                          DEGRADED     0     0     0
              disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F09C8G  UNAVAIL      0     0     0  cannot open
              disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE  ONLINE       0     0     0  830K resilvered
          raidz1-5                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-1CH_Z1F2KNQP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BML0    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPV4    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BPZP    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ78    ONLINE       0     0     0
          raidz1-6                                           ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQ9G    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQDF    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BQFQ    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0CW1A    ONLINE       0     0     0
            disk/by-id/scsi-SATA_ST3000DM001-9YN_Z1F0BV7M    ONLINE       0     0     0
        spares
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49M01      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F4A7ZE      INUSE     currently in use
          disk/by-id/scsi-SATA_ST3000DM001-1CH_W1F49MB1      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001SS2      AVAIL   
          disk/by-id/scsi-SATA_ST3000DM001-1ER_Z5001R0F      AVAIL   

errors: 37062187 data errors, use '-v' for a list

Lorsque le premier disque est tombé en panne, je l'ai remplacé par un disque de secours et il a commencé à resilver. Avant la fin de la réargenture, un deuxième disque est tombé en panne, j'ai donc remplacé le deuxième disque par un autre disque de secours. Depuis lors, il commencera à resilver, à environ 50%, puis commencera à engloutir la mémoire jusqu'à ce qu'il mange tout et provoque le blocage du système d'exploitation.

La mise à niveau de la RAM sur le serveur n'est pas une option simple à ce stade, et il n'est pas clair pour moi que cela garantirait une solution. Je comprends qu'il y aura une perte de données à ce stade, mais si je peux sacrifier le contenu de celui-ci RAIDZ pour préserver le reste de la piscine, c'est un résultat parfaitement acceptable. Je suis en train de sauvegarder le contenu de ce serveur sur un autre serveur, mais le problème de consommation de mémoire force un redémarrage (ou un crash) toutes les 48 heures environ, ce qui interrompt ma sauvegarde rsync, et le redémarrage du rsync prend du temps (il peut reprendre une fois qu'il a compris où il s'était arrêté, mais cela prend très longtemps).

Je pense que ZFS tentant de traiter deux opérations de remplacement de rechange est à l'origine du problème de consommation de mémoire, donc je veux supprimer l'un des disques de rechange pour que ZFS puisse travailler un à la fois. Cependant, lorsque j'essaye de détacher une des pièces de rechange, j'obtiens "ne peut pas détacher / dev / disk / by-id / scsi-SATA_ST3000DM001-1CH_W1F49M01: pas de répliques valides". Je peux peut-être utiliser l'option -f pour forcer l'opération, mais je ne sais pas exactement quel sera le résultat, alors je voulais voir si quelqu'un avait une entrée avant d'aller de l'avant.

Si je peux mettre le système dans un état stable où il peut rester opérationnel assez longtemps pour que la sauvegarde se termine, je prévois de le retirer pour révision, mais avec les conditions actuelles, il est coincé dans une boucle de récupération.

jasongullickson
la source
Vous avez marqué cela zfs-fuse. Est-ce vraiment un fusible ZFS? Veuillez fournir les détails du système d'exploitation.
ewwhite
Vous pariez ewwhite. Debian 6.0.6
jasongullickson
De combien de RAM dispose ce système? À quelle fréquence avez-vous nettoyé le tableau?
Chris S
Pourquoi utilisiez-vous FUSE et pas une vraie implémentation ZFS? Surtout étant donné qu'il y a beaucoup de matériel ici. Je pense que ce tableau est fait ...
ewwhite
Au moment de la construction du système, il n'y avait pas d'implémentation ZFS native pour Linux.
jasongullickson

Réponses:

1

Pour le moment, vous pouvez détacher les disques UNAVAIL, ZFS ne les utilise plus de toute façon.

Vous avez deux disques défectueux dans une configuration RAIDZ-1. Il est très probable que vous envisagiez une perte de données et que vous soyez prêt à restaurer à partir de la sauvegarde.

En remarque, RAIDZ s'est avéré très instable dans mon expérience avec OpenSolaris / Solaris11. Je déconseille de l'utiliser dans TOUT type de charge de travail de production.

De plus, pour renforcer ce qu'a dit ewwhite, FUSE n'est pas votre meilleure option. J'en profiterais pour migrer vers quelque chose de plus stable (peut-être FreeBSD 10).

Giovanni Tirloni
la source