JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de administração do Oracle Solaris ZFS     Oracle Solaris 10 1/13 Information Library (Português (Brasil))
search filter icon
search icon

Informação sobre o documento

Prefácio

1.  Sistema de arquivos do Oracle Solaris ZFS (introdução)

2.  Introdução ao ZFS do Oracle Solaris

3.  Gerenciando pools de armazenamento do Oracle Solaris ZFS

4.  Instalando e inicializando um sistema de arquivos raiz do Oracle Solaris ZFS

5.  Gerenciando sistemas de arquivos ZFS do Oracle Solaris

6.  Trabalhando com instantâneos e clones do Oracle Solaris ZFS

7.  Uso de ACLs e atributos para proteger arquivos do Oracle Solaris ZFS

8.  Administração delegada do ZFS do Oracle Solaris

9.  Tópicos avançados do Oracle Solaris ZFS

10.  Solução de problemas e recuperação de pools do Oracle Solaris ZFS

Identificando Problemas no ZFS

Resolvendo Problemas Gerais de Hardware

Identificando Falhas de Hardware e Dispositivo

Relatório de mensagens de erros do ZFS do sistema

Identificando Problemas com Pools de Armazenamento do ZFS

Determinando se há problemas em um pool de armazenamento do ZFS

Revisando a saída de zpool status

Informações gerais sobre o status do pool

Informações de configuração do pool de armazenamento do ZFS

Status de Scrub do Pool de Armazenamento do ZSF

Erros de Corrompimento de Dados do ZFS

Resolvendo Problemas do Dispositivo de Armazenamento do ZFS

Resolvendo um Dispositivo Ausente ou Removido

Resolvendo um Dispositivo Removido

Reanexando fisicamente um dispositivo

Notificando o ZFS da disponibilidade de um dispositivo

Substituindo ou reparando um dispositivo modificado

Determinando o tipo de falha do dispositivo

Apagando Erros Transitórios do Dispositivo

Substituindo um dispositivo em um pool de armazenamento do ZFS

Determinando se um dispositivo pode ser substituído

Dispositivos que não podem ser substituídos

Substituindo um dispositivo em um pool de armazenamento do ZFS

Exibindo o status do resilvering

Resolvendo Problemas do Sistema de Arquivos do ZFS

Resolvendo Problemas de Dados em um Pool de Armazenamento do ZFS.

Verificando a integridade do sistema de arquivos ZFS

Reparo de sistema de arquivos

Validação do sistema de arquivos

Controlando o scrubbing de dados do ZFS

Scrubbing explícito de dados do ZFS

Scrubbing e resilvering de dados do ZFS

Dados corrompidos do ZFS

Resolvendo Problemas de Espaço do ZFS

Relatório de Espaço do Sistema de Arquivos ZFS

Relatórios de Espaço do Pool de Armazenamento do ZFS

Reparando Dados Danificados

Identificando o tipo de corrupção de dados

Reparando arquivos ou diretórios corrompidos

Reparando os Dados Corrompidos com Várias Referências de Bloco

Reparando o dano de todo o pool de armazenamento do ZFS

Reparando uma configuração do ZFS danificada

Reparando um sistema não inicializável

11.  Práticas Recomendadas do Oracle Solaris ZFS

A.  Descrição das versões do Oracle Solaris ZFS

Índice

Resolvendo Problemas do Sistema de Arquivos do ZFS

Resolvendo Problemas de Dados em um Pool de Armazenamento do ZFS.

Exemplos de problemas de dados incluem:

Em alguns casos, estes erros são transitórios, como um erro de E/S aleatório durante problemas com o controlador. Em outros casos, o problema pode ser permanente, como a corrupção em disco. Ainda assim, se o problema for permanente, isso não significa necessariamente que o erro ocorrerá novamente. Por exemplo, se você substitui acidentalmente parte de um disco, e nenhum tipo de falha de hardware ocorre, o dispositivo não precisa ser trocado. Identificar exatamente o problema com o dispositivo não é uma tarefa fácil, por isso esse tema é abordado mais detalhadamente em uma seção posterior.

Verificando a integridade do sistema de arquivos ZFS

Não existe o utilitário fsck equivalente para o ZFS. Esse utilitário tem tradicionalmente servido a dois propósitos, ao reparo e à validação do sistema de arquivos.

Reparo de sistema de arquivos

Com os sistemas de arquivos tradicionais, a forma como os dados são gravados está inerentemente vulnerável a falhas inesperadas, provocando inconsistências de dados. Como um sistema de arquivos tradicional não é transacional, blocos não referenciados, contagens ruins de link ou outras estruturas de sistema de arquivos inconsistentes são possíveis. A adição de registros de ações resolve alguns destes problemas, porém pode trazer outros problemas quando o registro não puder ser revertido. A única forma para dados inconsistentes existirem no disco em uma configuração ZFS é através de falha do hardware (nesse caso o pool deve possuir redundância) ou quando um erro existir no software ZFS.

O utilitário fsck repara problemas conhecidos específicos para sistemas de arquivos UFS. A maioria dos problemas do pool de armazenamento do ZFS são relacionados a falhas de hardware ou falhas de energia. Muitos problemas podem ser evitados através da utilização de pools redundantes. Se o pool for danificado por falhas de hardware ou queda de energia, consulte Reparando o dano de todo o pool de armazenamento do ZFS.

Se o pool não for redundante, haverá sempre a possibilidade de que a corrupção do sistema de arquivos torne alguns ou todos os dados inacessíveis.

Validação do sistema de arquivos

Além de efetuar a reparação do sistemas de arquivos, o utilitário fsck valida que os dados em disco não apresentam problemas. Tradicionalmente, essa tarefa requer a desmontagem do sistema de arquivos e a execução do utilitário fsck, levando o sistema possivelmente para o modo de usuário único no processo. Este quadro tem como resultado um tempo de inatividade proporcional ao tamanho do sistema de arquivos que está sendo verificado. Em vez de exigir um utilitário explícito para efetuar a verificação necessária, o ZFS fornece um mecanismo para efetuar verificações rotineiras de todos as inconsistências. Esse recurso, conhecido como scrubbing, é utilizado, geralmente, na memória e em outros sistemas como um método de detecção e prevenção de erros, antes que estes provoquem falha de hardware ou de software.

Controlando o scrubbing de dados do ZFS

Sempre que o ZFS encontrar um erro através de scrubbing ou ao acessar um arquivo por demanda, o erro é registrado internamente para que você possa ter uma visão geral rápida de todos os erros conhecidos no pool.

Scrubbing explícito de dados do ZFS

A forma mais simples de verificar a integridade dos dados é iniciar um scrubbing explícito de todos os dados do pool. Esta operação percorre todos os dados do pool uma vez e comprova que todos os blocos possam ser lidos. O scrubbing se desenvolve tão rápido quanto os dispositivos permitam, sem bem que a prioridade de qualquer E/S é menor que a prioridade dada às operações normais. Essa operação pode impactar negativamente o desempenho, embora os dados do pool devam permanecer utilizáveis e um pouco receptivos enquanto o scrubbing ocorrer. Para iniciar um scrubbing explícito, use o comando zpool scrub. Por exemplo:

# zpool scrub tank

O status da operação de scrubbing atual pode ser exibido utilizando o comando zpool status. Por exemplo:

# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: scrub completed after 0h7m with 0 errors on Tue Tue Feb  2 12:54:00 2010
config:
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0

errors: No known data errors

Somente uma operação de scrubbing ativa por pool pode ocorrer por vez.

É possível parar uma operação de scrubbing em andamento com a opção -s. Por exemplo:

# zpool scrub -s tank

Na maioria dos casos, as operações de scrub devem chegar até o final para garantir a integridade dos dados. Interrompa uma operação de scrubbing de acordo com os seus próprios critérios se a performance do sistema é impactada pela operação.

Efetuar scrubbing de rotina garante E/S contínua para todos os discos do sistema. Operações de scrub rotineiras apresentam a desvantagem de não permitir que o gerenciamento de energia coloque os discos inativos no modo de energia baixa. Se o sistema estiver geralmente realizando E/S sem parar ou se o consumo de energia não for uma preocupação, então esta questão pode ser ignorada sem perigo.

Para obter mais informações sobre a interpretação da saída zpool status, consulte Consultando status de pool de armazenamento do ZFS.

Scrubbing e resilvering de dados do ZFS

Quando um dispositivo é substituído, inicia-se uma operação de resilvering para mover os dados provenientes de cópias boas para o novo dispositivo. Esta ação é uma forma de scrubbing de disco. Portanto, somente uma dessas ações pode ocorrer em um dado momento no pool. Se uma operação de scrub estiver em andamento, uma operação de resilver suspenderá a escovação atual e reiniciará depois da conclusão do polimento.

Para obter mais informações sobre o processo de resilver, consulte Exibindo o status do resilvering.

Dados corrompidos do ZFS

A corrupção de dados ocorre quando um ou mais erros no dispositivo (indicando um ou mais dispositivos ausentes ou danificados) afetam o dispositivo virtual de nível superior. Por exemplo, a metade de um espelho pode sofrer milhares de erros de dispositivo sem jamais causar corrupção de dados. Se for encontrado um erro no outro lado do espelho exatamente no mesmo local, ocorre corrompimento dos dados.

A corrupção de dados é sempre permanente e requer cuidados especiais durante a reparação. Mesmo que os dispositivos subjacentes forem reparados ou substituídos, os dados originais não poderão ser recuperados. Frequentemente, esse tipo de situação requer a recuperação dos dados a partir de backups. Os erros dos dados são registrados à medida que vão sendo encontrados e podem ser controlados através de um processo de depuração rotineiro do pool, como explicado na seção a seguir. Quando um bloco corrompido é removido, o próximo ciclo de limpeza reconhece que a corrupção já não existe e remove qualquer vestígio de erro do sistema.

Resolvendo Problemas de Espaço do ZFS

Verifique as seções a seguir se não tiver certeza sobre como o ZFS reporta informações sobre espaço no sistema de arquivos e no pool. Além disso, consulte Contabilidade de espaço em disco do ZFS.

Relatório de Espaço do Sistema de Arquivos ZFS

Os comandos zpool list e zfs list são melhores que os comandos df and du anteriores para determinar o espaço disponível no pool e no sistema de arquivos. Com os comandos legados, você não pode discernir facilmente entre o espaço do pool e do sistema de arquivos. Esses comandos legados também não contam espaço consumido pelos sistemas de arquivos ou instantâneos descendentes.

Por exemplo, o pool raiz a seguir (rpool) tem 5.46 GB alocados e 68.5 GB livres.

# zpool list rpool
NAME   SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
rpool   74G  5.46G  68.5G   7%  1.00x  ONLINE  -

Se você comparar a contabilização do espaço do pool com a do sistema de arquivos examinando a coluna USED dos seus sistemas de arquivos individuais, poderá ver que o espaço do pool reportado em ALLOC é contabilizado no total de USED dos sistemas de arquivos . Por exemplo:

# zfs list -r rpool
NAME                      USED  AVAIL  REFER  MOUNTPOINT
rpool                    5.41G  67.4G  74.5K  /rpool
rpool/ROOT               3.37G  67.4G    31K  legacy
rpool/ROOT/solaris       3.37G  67.4G  3.07G  /
rpool/ROOT/solaris/var    302M  67.4G   214M  /var
rpool/dump               1.01G  67.5G  1000M  -
rpool/export             97.5K  67.4G    32K  /rpool/export
rpool/export/home        65.5K  67.4G    32K  /rpool/export/home
rpool/export/home/admin  33.5K  67.4G  33.5K  /rpool/export/home/admin
rpool/swap               1.03G  67.5G  1.00G  -

Relatórios de Espaço do Pool de Armazenamento do ZFS

O valor SIZE reportado pelo comando zpool list costuma ser a quantidade de espaço em disco físico do pool, mas varia dependendo do nível de redundância do pool. Consulte o exemplo abaixo. O comando zfs list lista o espaço utilizável disponível para os sistemas de arquivos, que é o espaço em disco menos a sobrecarga de metadados da redundância do pool do ZFS, se houver.

Reparando Dados Danificados

As seções seguintes descrevem como identificar o tipo de corrupção de dados e como reparar os dados, se possível.

O ZFS utiliza a soma de verificação, redundância e autocorreção de dados para minimizar o risco de corrupção de dados. Por outro lado, a corrupção de dados pode ocorrer se um pool não é redundante, se a corrupção ocorreu enquanto um pool foi degradado ou uma série de eventos conspirados para corromper cópias múltiplas de uma parte dos dados. Em relação à origem, o resultado é o mesmo: Os dados estão corrompidos e, portanto, não podem ser acessados. A ação tomada depende do tipo de dados que estão corrompidos e de seu valor relativo. Podem ser corrompidos dois tipos básicos de dados:

Os dados são verificados durante operações normais bem como através de um scrubbing. Para obter informações sobre como verificar a integridade dos dados do pool, consulte Verificando a integridade do sistema de arquivos ZFS.

Identificando o tipo de corrupção de dados

Por padrão, o comando zpool status mostra somente que ocorreu uma corrupção, mas não mostra onde esta corrupção ocorreu. Por exemplo:

# zpool status monkey
  pool: monkey
 state: ONLINE
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: scrub completed after 0h0m with 8 errors on Tue Jul 13 13:17:32 2010
config:

        NAME        STATE     READ WRITE CKSUM
        monkey      ONLINE       8     0     0
          c1t1d0    ONLINE       2     0     0
          c2t5d0    ONLINE       6     0     0

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

Cada erro indica somente que um erro ocorreu em um dado momento. Os erros não estão necessariamente presentes no sistema até este momento. Sob circunstâncias normais, esse é o caso. Certas interrupções podem resultar em corrupção de dados que são automaticamente reparados depois que a interrupção acaba. É realizado um scrubbing completo do pool a fim de examinar todos os blocos ativos no pool, assim o registro do erro é redefinido sempre que o scrubbing terminar. Se detectar que os erros já não estão presentes e não quiser esperar a conclusão do scrubbing, redefina todos os erros no pool com o comando zpool online.

Se a corrupção de dados estiver nos metadados de todo o pool, a saída é um pouco diferente. Por exemplo:

# zpool status -v morpheus
  pool: morpheus
    id: 1422736890544688191
 state: FAULTED
status: The pool metadata is corrupted.
action: The pool cannot be imported due to damaged devices or data.
   see: http://www.sun.com/msg/ZFS-8000-72
config:

        morpheus    FAULTED   corrupted data
          c1t10d0   ONLINE

No caso de corrupção em todo o pool, o pool será colocado no estado FAULTED porque ele não poderá fornecer o nível solicitado de redundância.

Reparando arquivos ou diretórios corrompidos

Se um arquivo ou diretório está corrompido, o sistema ainda pode funcionar, dependendo do tipo de corrupção. Qualquer dano é efetivamente irrecuperável se não há nenhuma cópia boa de dados no sistema. Se os dados estão disponíveis, é preciso restaurar os dados afetados do backup. Ainda assim, é possível realizar a recuperação desta corrupção sem restaurar o pool inteiro.

Se o dano for dentro de um bloco de dados do arquivo, o arquivo poderá ser removido com segurança, eliminando o erro do sistema. Utilize o comando zpool status -v para exibir uma lista de nomes de arquivos com erros persistentes. Por exemplo:

# zpool status -v
  pool: monkey
 state: ONLINE
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: scrub completed after 0h0m with 8 errors on Tue Jul 13 13:17:32 2010
config:

        NAME        STATE     READ WRITE CKSUM
        monkey      ONLINE       8     0     0
          c1t1d0    ONLINE       2     0     0
          c2t5d0    ONLINE       6     0     0

errors: Permanent errors have been detected in the following files: 

/monkey/a.txt
/monkey/bananas/b.txt
/monkey/sub/dir/d.txt
monkey/ghost/e.txt
/monkey/ghost/boo/f.txt

A lista de nomes de arquivos com erros persistentes devem ser descritos como os seguintes:

Se a corrupção estiver dentro dos metadados de um arquivo ou diretório, a única opção é mover os arquivos para outro local. É possível mover seguramente qualquer arquivo ou diretório para um local menos conveniente, permitindo que o objeto original seja restaurado em seu lugar.

Reparando os Dados Corrompidos com Várias Referências de Bloco

Se um sistema de arquivos danificado tiver dados corrompidos com várias referências de bloco, como instantâneos, o comando zpool status -v exibirá todos os caminhos de dados corrompidos. O relatório de zpool status atual de dados corrompidos é limitado pela quantidade de corrompimento de metadados e pelo fato de algum bloco ter sido reutilizado depois da execução do comando zpool status. Blocos com cancelamento de duplicação complicam mais a geração de relatórios de dados corrompidos.

Se você tiver dados corrompidos e o comando zpool status -v identificar que os dados do instantâneo foram afetados, considere executar o comando a seguir para identificar outros caminhos corrompidos:

Reparando o dano de todo o pool de armazenamento do ZFS

Se o dano estiver nos metadados do pool e o dano impedir que o pool seja aberto ou importado, as seguintes opções estarão disponíveis para você: