zpool vdevs anteriormente espelhados, agora não espelhados, incapazes de refletir novamente

1

No FreeBSD 10.2-RELEASE, eu tive a seguinte configuração em um ambiente de desenvolvimento (felizmente) até ontem:

    NAME                          STATE     READ WRITE CKSUM
    bigpool                       ONLINE       0     0     0
      mirror-0                    ONLINE       0     0     0
        multipath/faba_lun0       ONLINE       0     0     0
        multipath/fabb_lun0       ONLINE       0     0     0
      mirror-1                    ONLINE       0     0     0
        multipath/faba_lun1       ONLINE       0     0     0
        multipath/fabb_lun1       ONLINE       0     0     0
      mirror-2                    ONLINE       0     0     0
        multipath/faba_lun2       ONLINE       0     0     0
        multipath/fabb_lun2       ONLINE       0     0     0
      mirror-3                    ONLINE       0     0     0
        multipath/faba_lun3       ONLINE       0     0     0
        multipath/fabb_lun3       ONLINE       0     0     0

Eu então pensei que seria uma boa idéia tentar "desativar" o quarto espelho (mirror-3) como um tipo de teste de HA rudimentar.

zpool detach bigpool multipath/faba_lun3

Depois, pensando que isso era uma má idéia, adicionei novamente o disco:

zpool add bigpool multipath/faba_lun3

Agora tenho esta configuração:

    NAME                          STATE     READ WRITE CKSUM
    bigpool                       ONLINE       0     0     0
      mirror-0                    ONLINE       0     0     0
        multipath/faba_lun0       ONLINE       0     0     0
        multipath/fabb_lun0       ONLINE       0     0     0
      mirror-1                    ONLINE       0     0     0
        multipath/faba_lun1       ONLINE       0     0     0
        multipath/fabb_lun1       ONLINE       0     0     0
      mirror-2                    ONLINE       0     0     0
        multipath/faba_lun2       ONLINE       0     0     0
        multipath/fabb_lun2       ONLINE       0     0     0
      multipath/faba_lun3         ONLINE       0     0     0
      multipath/fabb_lun3         ONLINE       0     0     0

Eu não consigo anexar novamente os dois lun3's no mirror-3:

root# zpool attach bigpool multipath/faba_lun3 multipath/fabb_lun3
invalid vdev specification
use '-f' to override the following errors:
/dev/multipath/fabb_lun3 is part of active pool 'bigpool'

Parece estar em um catch-22 - Não é possível espelhar porque ambos os vdevs já fazem parte do pool (portanto, um anexo não faz sentido) e não é possível remover os vdevs porque eles não são log, spare, etc ...

Alguém sabe de uma maneira de "reativar" esse espelho, com os vdevs de pool existentes? Eu acho que isso é semelhante a um relayout online.

Obrigado

sc.

    
por swisscheese 17.02.2016 / 07:36

1 resposta

1

Parece-me que você tinha o span de 4 espelhos, agora depois de algumas manipulações você tem o span de 3 espelhos e duas unidades individuais. Não está claro para mim quais manipulações exatamente levaram a isso, mas duvido que elas sejam detach es, porque detach normalmente fornece uma unidade separada que não está marcada como parte de nenhum conjunto.

Ao mesmo tempo, é normal que você não possa attach um para o outro dois vdevs que já são partes do conjunto ativo. E como são spans, é impossível extrair um, é uma desvantagem conhecida do zfs.

Só posso supor que é possível adicionar duas unidades em branco para espelhar cada sigle, mas não tenho certeza se é possível, mas você pode tentar com uma condição: evite -f flag ao fazer isso.

    
por 17.02.2016 / 07:49

Tags