Não é possível substituir o disco ausente no raidz

Não é possível substituir o disco ausente no raidz

Meu raidz está degradado após a troca da minha placa-mãe - um disco não pode ser encontrado. O disco ausente costumava ser /dev/sdh, mas agora é denominado /dev/sdg - que é a causa do problema.

No zpool degradado consegui off-line o disco ausente usando seu uid (que encontrei usando o comando zdb). Então agora o pool degradado fica assim:

pool: Media
state: DEGRADED
status: One or more devices has been taken offline by the administrator.
    Sufficient replicas exist for the pool to continue functioning in a
    degraded state.
action: Online the device using 'zpool online' or replace the device with
    'zpool replace'.
scrub: scrub completed after 2h10m with 0 errors on Thu May  1 14:02:43 2014 
config:

    NAME                                                      STATE     READ WRITE CKSUM
    Media                                                     DEGRADED     0     0     0
      raidz1-0                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675  ONLINE       0     0     0
      raidz1-1                                                DEGRADED     0     0     0
        sde                                                   ONLINE       0     0     0
        sdf                                                   ONLINE       0     0     0
        sdh                                                   OFFLINE      0     0     0

No entanto, não consigo substituir /dev/sdh por /dev/sdg:

zpool replace Media 3840188586753206212 /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 -f
invalid vdev specification
the following errors must be manually repaired:
/dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 is part of active pool 'Media'

... como posso resolver este problema?

Responder1

emitir o comando

sudo blkid

você pode descobrir que está tentando reparar o raidz 1-1 com um membro ou reserva reservada para o raidz 1-0. Independentemente disso, você provavelmente deve garantir que montará seus arrays de ataque no futuro por id em vez de /dev/sdx

Em resposta ao comentário sobre desconsiderar a adesão. Este é um curso de ação perigoso. Certifique-se de que seus backups estejam atualizados e acessíveis.Este não é meu ponto fortemas eu encontrei:

Aparentemente, isso foi perguntado e respondido aquiSubstituindo um disco morto em um zpool

Também encontrei aqui informações que podem ou não ser relevantes:

http://docs.oracle.com/cd/E19253-01/819-5461/gaypw/index.html

Para remover um membro de um zpool

zpool remove pool vdev

fonte:http://manpages.ubuntu.com/manpages/lucid/man1/zpool.1M.html

Responder2

Eu resolvi isso. Embora não tenha certeza de como. Em algum momento ao longo do caminho (acho que depois de exportar o pool e importá-lo novamente com um nome diferente), as unidades não foram endereçadas pelo nome tradicional "/dev/sd*", mas pelo seu ID. Não fiz nada para forçar o esquema de endereçamento de ID - simplesmente aconteceu.

        NAME                                                      STATE     READ WRITE CKSUM
    Media                                                     ONLINE       0     0     0
      raidz1-0                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B0_WD-WMAY00171958  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00424060  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WMAY04082675  ONLINE       0     0     0
      raidz1-1                                                ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY00788302  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD2003FYYS-02W0B1_WD-WCAY01088068  ONLINE       0     0     0
        disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609   OFFLINE       0     0   0

Sempre que tentei substituir o dispositivo defeituoso mencionado acima por /dev/sdg, o computador retornou um erro de dispositivo /dev/sdg está ocupado. Descobriu-se que, devido à mudança no endereçamento de ID, o pool se "curou" um pouco.

Quando percebi que a entrada no zpool já estava apontando para o ID do dispositivo /dev/sdg que eu estava tentando configurar, só tive que colocar o drive online com

zpool online Media /dev/disk/by-id/ata-WDC_WD20EZRX-00D8PB0_WD-WMC4M1843609 

e a piscina começou a voltar a ficar prateada.

A propósito: também tentei limpar os dados da unidade /dev/sdg para limpar todas as etiquetas e fazer a unidade esquecer que já faz parte de um pool ativo. Não creio que tenha ajudado, mas talvez tenha tido um efeito que não conheço. A limpeza do dd é descrita nos tópicos mencionados acima.

Espero que isso ajude alguém com um problema semelhante. Obrigado a todos que dedicaram um tempo para ler meu problema.

informação relacionada