Guia de administração do ZFS Oracle Solaris

Determinando o status de integridade de pools de armazenamento do ZFS

O ZFS fornece um método integrado de exame da integridade de pools e dispositivos. A integridade de um dispositivo é determinada a partir do estado de todos os seus dispositivos. Estas informações de estado são exibidas com o uso do comando zpool status. Além disso, as possíveis falhas de dispositivo e conjunto são relatadas pelo fmd e exibidas no console do sistema, e registradas no arquivo /var/adm/messages.

Esta seção descreve como determinar a integridade de pools e dispositivos. Este capítulo não documenta como reparar ou recuperar dados de pools sem integridade. Para mais informações sobre a solução de problemas e a recuperação de dados, consulte Capítulo 11Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS.

Cada dispositivo pode se enquadrar em um dos seguintes estados:

ONLINE

O dispositivo ou dispositivo virtual está em funcionamento de trabalho normal. Embora alguns erros transitórios ainda possam ocorrer, o dispositivo está em perfeito funcionamento.

DEGRADED

O dispositivo virtual falhou, mas continua podendo funcionar. Este estado é muito comum quando um dispositivo de espelho ou RAID-Z perde um ou mais dispositivos constituintes. A tolerância a falhas do pool pode ficar comprometida, uma vez que uma falha subseqüente em outro dispositivo pode ser irrecuperável.

FAULTED

O dispositivo ou dispositivo virtual está completamente inacessível. Este estado geralmente indica falha total do dispositivo, de forma que o ZFS está incapaz de enviar ou receber dados dele. Se um dispositivo de primeiro nível estiver neste estado, o pool estará totalmente inacessível.

OFFLINE

O dispositivo foi colocado explicitamente off-line pelo administrador.

UNAVAIL

O dispositivo ou o dispositivo virtual não pode ser aberto. Em alguns casos, conjuntos com dispositivos UNAVAIL aparecem no modo DEGRADED. Se um dispositivo virtual de nível superior estiver UNAVAIL, nada no conjunto poderá ser acessado.

REMOVED

O dispositivo foi removido fisicamente enquanto o sistema estava em execução. A detecção da remoção do dispositivo depende do hardware e pode não ser suportada em todas as plataformas.

A integridade de um pool é determinada a partir da integridade de todos os seus dispositivos virtuais de primeiro nível. Se todos os dispositivos virtuais estiverem ONLINE, o pool também estará ONLINE. Se algum dos dispositivos virtuais estiver DEGRADED ou UNAVAIL, o conjunto também estará DEGRADED. Se um dispositivo virtual de primeiro nível estiver FAULTED ou OFFLINE, o pool também estará FAULTED. Um conjunto no estado FAULTED está completamente inacessível. Nenhum dado poderá ser recuperado até que os dispositivos necessários sejam anexados ou reparados. Um conjunto no estado DEGRADED continua a ser executado, mas talvez não atinja o mesmo nível de redundância de dados ou throughput de dados se o conjunto estivesse on-line.

Status básico de integridade do pool de armazenamento

É possível rever rapidamente estado de integridade dos conjuntos ao utilizar o comando zpool status como a seguir:


# zpool status -x
all pools are healthy

É possível examinar um determinado conjunto ao especificar o nome de um conjunto na sintaxe do comando. Qualquer pool que não esteja no estado ONLINE deve ser investigado no caso de haver problemas potenciais, como descrito na seção a seguir.

Status de integridade detalhado

É possível solicitar um resumo mais detalhado do estado da integridade ao utilizar a opção -v. Por exemplo:


# zpool status -v tank
  pool: tank
 state: DEGRADED
status: One or more devices could not be opened.  Sufficient replicas exist for
        the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
   see: http://www.sun.com/msg/ZFS-8000-2Q
 scrub: scrub completed after 0h0m with 0 errors on Wed Jan 20 15:13:59 2010
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  UNAVAIL      0     0     0  cannot open

errors: No known data errors

Esta saída exibe uma descrição completa dos motivos pelos quais o pool está no estado atual, incluindo uma descrição legível do problema e um link a um artigo informativo para a obtenção de mais informações. Cada artigo informativo fornece informações atualizadas sobre a melhor forma de obter recuperação do problema atual. Utilizando as informações de configuração detalhadas, é possível determinar que dispositivo está danificado e como reparar o conjunto.

No exemplo anterior, o dispositivo falho deve ser substituído. Depois de o dispositivo ser substituído, utilize o comando zpool online para recolocar o dispositivo on-line. Por exemplo:


# zpool online tank c1t0d0
Bringing device c1t0d0 online
# zpool status -x
all pools are healthy

Se a propriedade autoreplace está ativada, não é necessário colocar on-line o dispositivo substituído.

Se um conjunto tiver um dispositivo off-line, a saída do comando identifica o conjunto com problema. Por exemplo:


# zpool status -x
  pool: tank
 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: resilver completed after 0h0m with 0 errors on Wed Jan 20 15:15:09 2010
config:

        NAME        STATE     READ WRITE CKSUM
        tank        DEGRADED     0     0     0
          mirror-0  DEGRADED     0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  OFFLINE      0     0     0  48K resilvered

errors: No known data errors

As colunas READ e WRITE fornecem uma contagem dos erros de E/S ocorridos com o dispositivo, enquanto a coluna CKSUM fornece uma contagem dos erros de soma de verificação incorrigíveis que ocorreram no dispositivo. As duas contagens de erros indicam falhas potenciais do dispositivo, e algumas ações de correção são necessárias. Se forem relatados erros diferentes de zero em um dispositivo virtual de primeiro nível, partes dos dados poderão estar inacessíveis.

O campo erros: identifica erros de dados conhecidos.

Na saída do exemplo anterior, o dispositivo off-line não está causando erros de dados.

Para obter mais informações sobre o diagnóstico e a correção de conjuntos e dados falhos, consulte Capítulo 11Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS.