A depuração do ZFS não é concluída

7

Primeiramente vamos começar com o que estou executando. Este é um servidor de mídia doméstico que executa o Ubuntu 16.10. Eu tenho um pool de unidades de 6 terabytes espelhadas que são cerca de metade. Eu construí o sistema há cerca de um mês e está funcionando muito bem. Ele usa um SSD como uma unidade de inicialização e o pool mencionado acima como armazenamento. Eu fui capaz de fazer tudo o que eu precisava com essa piscina e tudo parece ótimo.

Ambas as unidades eram novas quando eu construí o sistema há cerca de um mês, e eu estava um pouco curioso sobre algumas vibrações extras com uma delas. Nada mal, mas o vendedor disse que ele iria substituí-lo sem nenhum custo, então eu estava planejando executar um matagal e puxá-lo para enviá-lo, correndo em um Estado degradado enquanto eu espero. Não há dados não salvos em backup, então não estou muito preocupado, mas obviamente seria mais fácil fazer dessa maneira do que matar o pool e restaurar a partir do backup.

Tudo o que estou realmente tentando fazer no momento é executar o scrub e desconectar com segurança a única unidade do espelho. Eu corro tanque esfregar zpool e, em seguida, imediatamente executar zpool status e eu posso ver o scrub acontecendo. Eu posso executar uma atualização a cada poucos segundos e ver atualizar o status muito bem. Ele é executado por cerca de 30 segundos e, em seguida, o status não mostra mais a execução. Além disso, eu nunca vi nada além do último scrub concluído em 0 horas e 0 minutos do status. Para mim, isso significa que o scrub não está acontecendo até a conclusão, como não deve um scrub demorar pelo menos várias horas com dois e meio terabytes de informação para passar.

O que estou perdendo?

adicionando informações solicitadas:

  pool: Tank
 state: ONLINE
  scan: scrub repaired 0 in 0h0m with 0 errors on Sun Feb  5 00:31:42 2017
config:

        NAME        STATE     READ WRITE CKSUM
        Tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb2    ONLINE       0     0     0
            sdc2    ONLINE       0     0     0

errors: No known data errors

Estou tentando um scrub novamente agora para garantir que o problema ainda esteja atualizado. Aqui está um status cerca de 20 segundos depois de eu começar ...

  pool: Tank
 state: ONLINE
  scan: scrub in progress since Fri Feb 10 14:25:12 2017
    62.5M scanned out of 2.97T at 1.08M/s, (scan is slow, no estimated time)
    0 repaired, 0.00% done
config:

    NAME        STATE     READ WRITE CKSUM
    Tank        ONLINE       0     0     0
      mirror-0  ONLINE       0     0     0
        sdb2    ONLINE       0     0     0
        sdc2    ONLINE       0     0     0

errors: No known data errors

e aqui está novamente após cerca de um minuto ...

  pool: Tank
 state: ONLINE
  scan: scrub repaired 0 in 0h1m with 0 errors on Fri Feb 10 14:27:01 2017
config:

    NAME        STATE     READ WRITE CKSUM
    Tank        ONLINE       0     0     0
      mirror-0  ONLINE       0     0     0
        sdb2    ONLINE       0     0     0
        sdc2    ONLINE       0     0     0

errors: No known data errors

editar para informações adicionais em 16/02/17

Estou ficando sem tempo para mandar a unidade "barulhenta" de volta, então eu a puxei. Eu não fiz nada além de desconectá-lo (enquanto o sistema estava funcionando). Tudo continua funcionando corretamente no momento, embora em um estado DEGRADED como esperado. Eu acho que vou continuar documentando minha experiência aqui desde que eu já comecei. Parece que ninguém mais está tendo esse problema. Eu não consigo encontrar mais ninguém na rede com a mesma situação. Sorte minha. Vamos ver o que acontece quando obtenho a unidade de substituição e o resilver. Quem sabe ... talvez os deuses dos dados tenham piedade de mim e simplesmente substituir a unidade forçará o problema a se consertar. : / Abaixo está minha saída depois de desconectar a unidade.

  pool: Tank
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: scrub repaired 0 in 0h1m with 0 errors on Sun Feb 12 00:24:38 2017
config:

        NAME        STATE     READ WRITE CKSUM
        Tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            sdb2    ONLINE       0     0     0
            sdc2    UNAVAIL      0     0     0

errors: No known data errors

editar para informações adicionais em 29/3/17

root@NAS:~# zpool status
  pool: Tank
 state: ONLINE
status: One or more devices has experienced an unrecoverable error.  An
        attempt was made to correct the error.  Applications are unaffected.
action: Determine if the device needs to be replaced, and clear the errors
        using 'zpool clear' or replace the device with 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-9P
  scan: resilvered 525M in 0h3m with 0 errors on Wed Mar 29 14:28:46 2017
config:

        NAME        STATE     READ WRITE CKSUM
        Tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb2    ONLINE       0     0     0
            sdc     ONLINE       0     0   732

errors: No known data errors

Talvez outra pista para problemas? veja a partição do sdc ...

root@NAS:/dev# parted --list
Model: ATA Samsung SSD 850 (scsi)
Disk /dev/sda: 250GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size    File system     Name                  Flags
 1      1049kB  538MB  537MB   fat32           EFI System Partition  boot, esp
 2      538MB   233GB  232GB   ext4
 3      233GB   250GB  17.1GB  linux-swap(v1)


Warning: Not all of the space available to /dev/sdb appears to be used, you can
fix the GPT to use all of the space (an extra 7 blocks) or continue with the
current setting?
Fix/Ignore? i
Model: ATA HGST HUH728060AL (scsi)
Disk /dev/sdb: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      2097kB  2150MB  2147MB
 2      2150MB  6001GB  5999GB  zfs


Model: ATA HGST HUH728060AL (scsi)
Disk /dev/sdc: 6001GB
Sector size (logical/physical): 512B/4096B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
 1      1049kB  6001GB  6001GB  zfs          zfs-802af6a53a6d8383
 9      6001GB  6001GB  8389kB

editar para informações adicionais em 13/4/17

Sim, estou tentando corrigir esse problema há meses: /

Primeiro, após exportar / importar letras de unidade alteradas, observe que sdb se tornou sdc e sdc se tornou sdd.

Acho que encontrei o problema e quero receber conselhos sobre como corrigi-lo. O problema foi finalmente descoberto quando eu corri "sudo fdisk -l". Abaixo estão os recortes pertinentes ...

Disk /dev/sdc: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: 7127FE7D-E061-11E6-BD1F-3497F600DDAF

 Device     Start        End       Sectors    Size    Type
/dev/sdc1   4096       4198399     4194304     2G     FreeBSD swap
/dev/sdc2  4198400   11721043967 11716845568  5.5T    FreeBSD ZFS

...

Disk /dev/sdd: 5.5 TiB, 6001175126016 bytes, 11721045168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: E799A1D5-F9B7-C843-AB62-AADC9B0A2180

Device        Start           End         Sectors    Size    Type
/dev/sdd1      2048       11721027583   11721025536  5.5T    Solaris /usr & Apple ZFS
/dev/sdd9  11721027584    11721043967      16384      8M     Solaris reserved 1

Observe isto: o espelho foi originalmente criado no FreeNAS (FreeBSD). O sdc tem uma troca de 2G no início da unidade. O sdd foi criado no Ununtu e, por qualquer motivo, recebeu uma troca de 8M no final da unidade.

Agora, com receio de que o problema fosse um problema, eu afinei o sdd e rodei os badblocks nele. Isso limpa toda a informação. A boa notícia é que a unidade está bem, sem bloqueios ruins. Isso também redefine as partições para nada.

Eu tenho duas escolhas. 1.) Tente combinar manualmente as partições de sdd para a unidade de trabalho (sdc). Embora eu achasse que o zfs deveria fazer isso automaticamente apenas substituindo o zpool, talvez seja uma perda de tempo. 2.) Eu tenho os dados de backup, então eu poderia limpar as duas unidades e começar do zero, criar um novo espelho, e deixá-lo ser um pool nativo do Ubuntu.

Talvez isso esteja pensando demais, mas acho que corro um pouco mais de risco de destruir e restaurar. Eu estou tendo que destruir dados bons que só são copiados em um disco não espelhado, em seguida, rsyncing de volta para um pool recém-criado. FYI, eu usei rsync para criar o backup, e é no mesmo pc. Eu tive que dividir 3 drives juntos sem redundância para caber todos os dados nele. Eu também estou com medo de que mover os dados de um jeito assim sem uma maneira de esfregar isso pode me dar alguma corrupção e eu nunca saberia.

Alguém tem algum conselho? Obrigado!

    
por Thumper33 06.02.2017 / 13:55

0 respostas

Tags