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)) |
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
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
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
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
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
Examine a seções a seguir para resolver problema de dispositivo ausente, removido ou com falha.
Se um dispositivo não puder ser aberto, será exibido como UNAVAILABLE na saída zpool status. Esse status significa que o ZFS não pôde abrir o dispositivo quando o pool foi acessado pela primeira vez ou que o dispositivo se tornou indisponível a partir desse momento. Se o dispositivo fizer com que o dispositivo virtual de nível superior não esteja disponível, então não será possível acessar nada no pool. Do contrário, a tolerância a falhas do pool pode ser comprometida. Em qualquer caso, o dispositivo apenas precisa ser reanexado ao sistema para restaurar as operações normais. Se você precisar substituir um dispositivo UNAVAIL devido a uma falha, consulte Substituindo um dispositivo em um pool de armazenamento do ZFS.
Se um dispositivo estiver UNAVAIL em um pool de raiz ou pool de raiz espelhado, consulte estas referências:
Falha no pool de raiz espelhado – Inicializando a partir de um disco alternativo em um pool raiz ZFS espelhado
Substituindo um disco em um pool de raiz
Recuperação completa de desastres do pool de raiz – Recuperando o pool raiz ZFS ou instantâneos do pool raiz
Por exemplo, uma mensagem do fmd semelhante à ilustrada abaixo deve ser vista depois de uma falha no dispositivo:
SUNW-MSG-ID: ZFS-8000-FD, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Thu Jun 24 10:42:36 PDT 2010 PLATFORM: SUNW,Sun-Fire-T200, CSN: -, HOSTNAME: daleks SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: a1fb66d0-cc51-cd14-a835-961c15696fcb DESC: The number of I/O errors associated with a ZFS device exceeded acceptable levels. Refer to http://sun.com/msg/ZFS-8000-FD for more information. AUTO-RESPONSE: The device has been offlined and marked as faulted. An attempt will be made to activate a hot spare if available. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
Para visualizar mais informações detalhadas sobre problemas e resoluções de dispositivos, utilize o comando zpool status -x. Por exemplo:
# zpool status -x 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 scan: scrub repaired 0 in 0h0m with 0 errors on Tue Sep 27 16:59:07 2011 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c2t2d0 ONLINE 0 0 0 c2t1d0 UNAVAIL 0 0 0 cannot open errors: No known data errors
É possível observar nessa saída que o dispositivo c2t1d0 não está funcionando. Se você determinar que o dispositivo está danificado, substitua-o.
Se necessário, utilize o comando zpool online para colocar o dispositivo substituído on-line. Por exemplo:
# zpool online tank c2t1d0
Informe ao FMA que o dispositivo foi substituído se a saída fmadm faulty identificar erro de dispositivo. Por exemplo:
# fmadm faulty --------------- ------------------------------------ -------------- --------- TIME EVENT-ID MSG-ID SEVERITY --------------- ------------------------------------ -------------- --------- Sep 27 16:58:50 e6bb52c3-5fe0-41a1-9ccc-c2f8a6b56100 ZFS-8000-D3 Major Host : neo Platform : SUNW,Sun-Fire-T200 Chassis_id : Product_sn : Fault class : fault.fs.zfs.device Affects : zfs://pool=tank/vdev=c75a8336cda03110 faulted and taken out of service Problem in : zfs://pool=tank/vdev=c75a8336cda03110 faulted and taken out of service Description : A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. Response : No automated response will occur. Impact : Fault tolerance of the pool may be compromised. Action : Run 'zpool status -x' and replace the bad device. # fmadm repaired zfs://pool=tank/vdev=c75a8336cda03110
Como uma última etapa, confirme se o pool com o dispositivo substituído está íntegro. Por exemplo:
# zpool status -x tank pool 'tank' is healthy
Se um dispositivo for completamente removido do sistema, o ZFS detecta que o dispositivo não pode ser aberto e o coloca no estado REMOVED. Dependendo do nível de replicação dos dados do pool, essa remoção poderá ou não fazer com que todo o pool se torne indisponível. Se, em um dispositivo RAID-Z ou espelhado, um disco for removido, o pool continua acessível. Um pool pode se tornar UNAVAIL, o que significa que nenhum dado está acessível até que o dispositivo seja desanexado, sob as seguintes condições:
Se todos os componentes de um espelho são removidos
Se mais de um dispositivo em um dispositivo (raidz1) RAID-Z é removido
Se o dispositivo de nível superior é removido em uma configuração de disco único
A forma como é realizada a reanexação de um dispositivo ausente depende do dispositivo em questão. Se o dispositivo for um drive anexado à rede, a conectividade deve ser restaurada. Se o dispositivo for um dispositivo USB ou outro tipo de mídia removível, deve ser reanexado ao sistema. Se o dispositivo for um disco local, um controlador pode ter falhado, de forma que tal dispositivo não está mais visível no sistema. Nesse caso, o controlador deve ser substituído no momento em que os discos estarão novamente disponíveis. Podem existir outros problemas que dependem do tipo de hardware e de sua configuração. Se uma unidade falhar e não estiver mais visível no sistema, o dispositivo deve ser tratado como um dispositivo danificado. Siga os procedimentos em Substituindo ou reparando um dispositivo modificado.
Um pool pode ser SUSPENDEDse a conectividade do dispositivo estiver comprometida. Um pool SUSPENDED permanece no estado de espera até que o problema do dispositivo seja resolvido. Por exemplo:
# zpool status cybermen pool: cybermen state: SUSPENDED status: One or more devices are unavailable in response to IO failures. The pool is suspended. action: Make sure the affected devices are connected, then run 'zpool clear' or 'fmadm repaired'. see: http://www.sun.com/msg/ZFS-8000-HC scan: none requested config: NAME STATE READ WRITE CKSUM cybermen UNAVAIL 0 16 0 c8t3d0 UNAVAIL 0 0 0 c8t1d0 UNAVAIL 0 0 0
Depois da restauração da conectividade do dispositivo, limpe os erros de pool ou dispositivo.
# zpool clear cybermen # fmadm repaired zfs://pool=name/vdev=guid
Depois que um dispositivo é reanexado ao sistema, o ZFS pode ou não detectar automaticamente sua disponibilidade. Se o pool já estava UNAVAIL ou SUSPENDED anteriormente ou se o sistema tiver sido reinicializado como parte do procedimento attach, o ZFS reexaminará todos os dispositivos ao tentar abrir o pool. Se o pool estava danificado e o dispositivo foi substituído enquanto o sistema estava em execução, é necessário notificar ao ZFS que o dispositivo está disponível e pronto para ser reaberto utilizando o comando zpool online. Por exemplo:
# zpool online tank c0t1d0
Para obter mais informações sobre como colocar dispositivos on-line, consulte Colocando um dispositivo on-line.
Esta seção descreve como determinar os tipos de falha do dispositivo, limpar os erros transitórios e substituir um dispositivo.
O termo dispositivo danificado é um tanto vago e pode descrever vários tipos de situações possíveis:
Bit rot: com o tempo, eventos aleatórios, como influências magnéticas e raios cósmicos, podem fazer com que os bits armazenados no disco se invertam. Estes eventos são relativamente raros, mas comuns o suficiente para provocar corrupção de dados em sistemas grandes ou que estão em funcionamento durante longos períodos de tempo.
Leituras ou gravações mal endereçadas – Erros de firmware ou falhas de hardware podem fazer com que leituras e gravações de blocos inteiros façam referência a locais incorretos no disco. Esses erros são normalmente transitórios, embora uma grande quantidade pode indicar um drive defeituosa.
Erro do administrador: os administradores podem substituir involuntariamente partes do disco por dados ruins (como copiar /dev/zero sobre partes do disco) que provocam a corrupção permanente deste. Estes erros são sempre transitórios.
Interrupções temporárias – Um disco pode não estar disponível durante um período de tempo, causando falhas de E/S. Esta situação está associada geralmente a dispositivos anexados à rede, embora os discos locais também possam sofrer interrupções temporárias. Estes erros podem ou não ser transitórios.
Hardware defeituoso ou anormal: essa situação é um resumo de todos os vários problemas que hardware defeituoso exibe, incluindo erros de E/S de consistência, transportes causando corrupção aleatória ou alguns números de falhas. Estes erros são normalmente permanentes.
Dispositivo off-line: se um dispositivo estiver off-line, supõe-se que o administrador o colocou nesse estado porque estava defeituoso. O administrador que colocou o dispositivo nesse estado pode determinar se esta suposição é precisa.
A determinação exata do problema pode ser um processo difícil. A primeira etapa é examinar as contagens de erros na saída zpool status. Por exemplo:
# zpool status -v tank pool: tank 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 scan: scrub in progress since Tue Sep 27 17:12:40 2011 63.9M scanned out of 528M at 10.7M/s, 0h0m to go 0 repaired, 12.11% done config: NAME STATE READ WRITE CKSUM tank ONLINE 2 0 0 mirror-0 ONLINE 2 0 0 c2t2d0 ONLINE 2 0 0 c2t1d0 ONLINE 2 0 0 errors: Permanent errors have been detected in the following files: /tank/words
Os erros estão divididos em erros de E/S e erros de soma de verificação, e ambos podem indicar o possível tipo de falha. As operações normais prevêem uma pequena quantidade de erros (apenas alguns erros em longos períodos de tempo). Se você estiver vendo uma grande quantidade de erros, então essa situação provavelmente indica uma falha completa do dispositivo ou iminente. No entanto, um erro de administrador pode também resultar em uma grande contagem de erros. Outra fonte de informações é o log do sistema syslog. Se o registro mostrar um grande número de mensagens de driver de Fibre Channel ou de SCSI, então essa situação provavelmente indica sérios problemas de hardware. Se não for gerada uma mensagem syslog, então provavelmente o dano é transitório.
O objetivo é responder à seguinte pergunta:
É provável que ocorra outro erro neste dispositivo?
Os erros que acontecem somente uma vez são considerados transitórios e não indicam falhas potenciais. Os erros que são persistentes ou suficientemente graves para indicar possível falha de hardware são considerados fatais. A ação de determinar o tipo de erro não está dentro do âmbito de nenhum software automatizado disponível atualmente com ZFS e muitas ações devem ser realizadas manualmente por você, o administrador. Depois de determinar o erro, a ação apropriada pode ser realizada. Apague os erros transitórios ou substitua o dispositivo devido aos erros fatais. Estes procedimentos de reparação estão descritos nas próximas seções.
Mesmo que os erros de dispositivo sejam considerados transitórios, eles ainda poderão ter provocado erros de dados incorrigíveis no pool. Estes erros requerem procedimentos de reparação especiais, mesmo se o dispositivo estiver em boas condições ou tiver sido reparado. Para mais informações sobre a reparação de erros dos dados, consulte Reparando Dados Danificados.
Se os erros de dispositivo são considerados transitórios, nesse caso eles não são suscetíveis de afetar a integridade futura do dispositivo e podem ser seguramente eliminados para indicar que nenhum erro fatal ocorreu. Para apagar os contadores de erros dos dispositivos RAID-Z ou espelhados, use o comando zpool clear. Por exemplo:
# zpool clear tank c1t1d0
Essa sintaxe elimina os erros do dispositivo e elimina quaisquer contagens de erros associadas a este dispositivo.
Para eliminar todos os erros associados aos dispositivos virtuais em um pool e quaisquer contagens de erros de dados associadas ao pool, utilize a seguinte sintaxe:
# zpool clear tank
Para obter mais informações sobre como eliminar erros do pool, consulte Limpando erros de dispositivo do pool de armazenamento.
Se o dano no dispositivo for permanente ou se houver grande possibilidade de que ocorram futuros danos permanentes, o dispositivo deve ser substituído. Depende da configuração se o dispositivo pode ou não ser substituído.
Se o dispositivo a ser substituído faz parte de uma configuração redundante, devem existir réplicas suficientes para recuperar os dados válidos. Por exemplo, se dois discos em um espelho quadrimensional estiverem UNAVAIL, ambos os discos poderão ser substituídos porque há cópias em boas condições disponíveis. No entanto, se dois discos de um dispositivo virtual (raidz1) RAID-Z quadridirecional estiverem UNAVAIL, então nenhum dos discos pode ser substituído porque não há cópias suficientes para recuperar os dados. Se o dispositivo estiver danificado, mas estiver on-line, poderá ser substituído, contanto que o pool não se encontre no estado UNAVAIL. No entanto, os dados corrompidos do dispositivo são copiados para o novo dispositivo, a menos que existam réplicas suficientes com dados bons.
Na seguinte configuração, o disco c1t1d0 pode ser substituído e os dados do pool são copiados da réplica integral c1t0d0:
mirror DEGRADED c1t0d0 ONLINE c1t1d0 FAULTED
O disco c1t0d0 também pode ser substituído, embora a autocorreção dos dados não seja possível devido à falta de réplicas boas disponíveis.
Na configuração a seguir, nenhum dos discos UNAVAIL pode ser substituído. Os discos ONLINE também não podem ser substituídos porque o próprio pool está UNAVAIL
raidz FAULTED c1t0d0 ONLINE c2t0d0 FAULTED c3t0d0 FAULTED c4t0d0 ONLINE
Na configuração abaixo, ambos os discos de nível superior podem ser substituídos, embora os dados defeituosos presentes no disco sejam copiados no novo disco.
c1t0d0 ONLINE c1t1d0 ONLINE
Se ambos os discos estiverem UNAVAIL, nenhuma substituição poderá ser efetuada porque o próprio pool poderá estar UNAVAIL.
Se a perda de um dispositivo tornar o pool UNAVAIL ou se o dispositivo contiver muitos erros de dados em uma configuração não redundante, o dispositivo não poderá ser substituído com segurança. Sem redundâncias suficientes, não haverá dados bons com os quais reparar o dispositivo danificado. Neste caso, a única opção é destruir o pool e recriar a configuração e, em seguida, restaurar os dados a partir de uma cópia de backup.
Para obter mais informações sobre a restauração de um pool inteiro, consulte Reparando o dano de todo o pool de armazenamento do ZFS.
Depois de ter determinado qual dispositivo pode ser substituído, utilize o comando zpool replace para substitui-lo. Se você estiver substituindo o dispositivo danificado por um diferente, utilize uma sintaxe semelhante a esta:
# zpool replace tank c1t1d0 c2t0d0
Este comando migra os dados para o novo dispositivo a partir do dispositivo danificado ou de outros dispositivos do pool se este estiver em uma configuração redundante. Quando o comando estiver concluído, ele separa o dispositivo danificado da configuração, momento no qual o dispositivo pode ser removido do sistema. Se você já tiver removido o dispositivo e o tiver substituído por um dispositivo novo no mesmo local, use a forma simples de dispositivo do comando. Por exemplo:
# zpool replace tank c1t1d0
Este comando pega um disco não formatado, o formata adequadamente e, em seguida, começa a realizar o resilvering dos dados do restante da configuração.
Para obter mais informações sobre o comando zpool replace, consulte Substituindo dispositivos em um pool de armazenamento.
Exemplo 10-1 Substituindo um disco SATA em um pool de armazenamento do ZFS
O exemplo a seguir mostra como substituir um dispositivo (c1t3d0) no pool de armazenamento espelhado tank em um sistema com dispositivos SATA. Para substituir o disco c1t3d0 por um novo disco no mesmo local (c1t3d0), desconfigure o disco antes de substituí-lo. Se o disco que será substituído não for SATA, consulte Substituindo dispositivos em um pool de armazenamento.
A etapa básica segue:
Coloque o disco off-line (c1t3d0) para ser substituido. Não é possível desconfigurar um disco SATA que esteja sendo usado.
Utilize o comando cfgadm para identificar o disco SATA (c1t3d0) para ser desconfigurado e desconfigure-o. O pool estará degradado com o disco off-line nessa configuração espelhada, mas continuará disponível.
Substitua fisicamente o disco (c1t3d0). Certifique-se de que o LED Ready to Remove azul esteja iluminado antes de remover fisicamente o drive UNAVAIL.
Reconfigure o disco SATA (c1t3d0).
Coloque o novo disco (c1t3d0) novamente on-line.
Execute o comando zpool replace para substituir o disco (c1t3d0).
Observação - Se você definiu anteriormente o autoreplace da propriedade do pool para on, qualquer dispositivo novo, encontrado no mesmo local físico que um dispositivo que antes pertencia ao pool, será automaticamente formatado e substituído sem o uso do comando zpool replace. Este recurso pode não ser suportado em todos os hardwares.
Se um disco danificado for substituído automaticamente por um disco de reserva, pode ser necessário desanexar o disco de reserva depois que o disco danificado for substituído. Por exemplo, se c2t4d0 ainda é um disco de reserva ativo depois que o disco danificado foi substituído, desanexe-o.
# zpool detach tank c2t4d0
Se o FMA estiver reportando o dispositivo com falha, você deverá apagar a falha do dispositivo.
# fmadm faulty # fmadm repaired zfs://pool=name/vdev=guid
O exemplo a seguir percorre as etapas para substituir um disco em um pool de armazenamento do ZFS.
# zpool offline tank c1t3d0 # cfgadm | grep c1t3d0 sata1/3::dsk/c1t3d0 disk connected configured ok # cfgadm -c unconfigure sata1/3 Unconfigure the device at: /devices/pci@0,0/pci1022,7458@2/pci11ab,11ab@1:3 This operation will suspend activity on the SATA device Continue (yes/no)? yes # cfgadm | grep sata1/3 sata1/3 disk connected unconfigured ok <Physically replace the failed disk c1t3d0> # cfgadm -c configure sata1/3 # cfgadm | grep sata1/3 sata1/3::dsk/c1t3d0 disk connected configured ok # zpool online tank c1t3d0 # zpool replace tank c1t3d0 # zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:17:32 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c1t3d0 ONLINE 0 0 0 errors: No known data errors
Observe que o zpool output anterior pode mostrar o disco novo e o antigo abaixo do cabeçalho replacing. Por exemplo:
replacing DEGRADED 0 0 0 c1t3d0s0/o FAULTED 0 0 0 c1t3d0 ONLINE 0 0 0
Esse texto significa que o processo de substituição está em andamento e que disco novo está sendo resilvered.
Se você for substituir um disco (c1t3d0) por outro (c4t3d0), então será necessário apenas executar o comando zpool replace. Por exemplo:
# zpool replace tank c1t3d0 c4t3d0 # zpool status pool: tank state: DEGRADED scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 2010 config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 DEGRADED 0 0 0 c0t3d0 ONLINE 0 0 0 replacing DEGRADED 0 0 0 c1t3d0 OFFLINE 0 0 0 c4t3d0 ONLINE 0 0 0 errors: No known data errors
Você pode precisar executar o comando zpool status várias vezes até que a substituição do disco seja concluída.
# zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Feb 2 13:35:41 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c1t1d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c1t2d0 ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 c0t3d0 ONLINE 0 0 0 c4t3d0 ONLINE 0 0 0
Exemplo 10-2 Substituindo um dispositivo de registro com falhas
O ZFS identifica falhas de log na saída do comando zpool status. A Fault Management Architecture (FMA) também reporta esses erros. O ZFS e o FMA descrevem como recuperar uma falha de log intencional.
O exemplo a seguir mostra como recuperar de um dispositivo de log com falha c0t5d0 no pool de armazenamento pool). A etapa básica segue:
Reveja a saída zpool status -x e a mensagem de diagnóstico FMA, aqui descrita:
Substitua fisicamente o dispositivo de log com falha.
Coloque o dispositivo de log on-line.
Limpe a condição de erro do pool.
Limpe o erro do FMA.
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open <Physically replace the failed log device> # zpool online pool c0t5d0 # zpool clear pool
Por exemplo, se o sistema for desligado abruptamente antes que as operações de gravação síncrona sejam validadas para um pool com um dispositivo de log separado, você verá mensagens semelhantes a estas:
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror-0 ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open <Physically replace the failed log device> # zpool online pool c0t5d0 # zpool clear pool # fmadm faulty # fmadm repair zfs://pool=name/vdev=guid
É possível solucionar a falha do dispositivo de log das seguintes maneiras:
Substitua ou recupere o dispositivo de registro. Neste exemplo, o dispositivo é c0t5d0.
Coloque o dispositivo de registro de volta on-line.
# zpool online pool c0t5d0
Reinicialize a condição de erro do dispositivo de log danificado.
# zpool clear pool
Se quiser recuperar desse erro sem substituir o dispositivo de log danificado, poderá limpar o erro com o comando zpool clear. Nesse cenário, o pool irá operar em um modo degradado e os logs serão gravados no pool principal até que o dispositivo de log separado seja substituído.
Considere o uso de dispositivos de log espelhados para evitar o cenário de falha do dispositivo de log.
O processo de substituição de um dispositivo pode demorar um longo período de tempo, dependendo do tamanho do dispositivo e da quantidade de dados do pool. O processo de mover os dados de um dispositivo a outro é conhecido como resilvering e pode ser monitorado com a utilização do comando zpool status.
Os sistemas de arquivos tradicionais realizam resilvering de dados no nível do bloco. O ZFS, por eliminar a estrutura em camadas artificiais do gerenciador de volumes, pode realizar resilvering de uma forma muito mais eficaz e controlada. A duas principais vantagens deste recurso são:
O ZFS realiza resilvering somente da quantidade mínima de dados necessária. No caso de uma curta interrupção (como oposição a uma substituição completa do dispositivo), o disco inteiro pode ser resilvered em questão de minutos ou segundos. Quando todo o disco é substituído, o processo de resilvering leva o tempo proporcional à quantidade de dados usados no disco. Substituir um disco de 500 GB pode levar alguns segundos se o pool só possuir poucos gigabytes de espaço em disco utilizado.
O resilvering é um processo seguro e que pode ser interrompido. Se o sistema perder energia ou for reinicializado, o processo de resilvering recomeça exatamente de onde parou, sem necessidade de nenhuma intervenção manual.
Para exibir o processo de resilvering, use o comando zpool status. Por exemplo:
# zpool status tank pool: tank state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scrub: resilver in progress for 0h0m, 22.60% done, 0h1m to go config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 replacing-0 DEGRADED 0 0 0 c1t0d0 UNAVAIL 0 0 0 cannot open c2t0d0 ONLINE 0 0 0 85.0M resilvered c1t1d0 ONLINE 0 0 0 errors: No known data errors
Neste exemplo, o disco c1t0d0 está sendo substituído pelo c2t0d0. Esse evento é observado na saída de status pela presença do dispositivo virtual substituição na configuração. Esse dispositivo não é real e nem é possível criar um pool utilizando-o. O propósito desse dispositivo é exclusivamente exibir o progresso do resilvering e identificar qual dispositivo está sendo substituído.
Note que qualquer pool atualmente submetido ao resilvering é colocado no estado ONLINE ou DEGRADED porque o pool não pode fornecer o nível desejado de redundância até o processo de resilvering estar completo. Apesar de a E/S estar sempre programada com uma prioridade menor do que a E/S solicitada pelo usuário, o resilvering é realizado o mais rápido possível para minimizar o impacto no sistema. Depois que o resilvering estiver completo, a configuração reverte para a nova e completa configuração. Por exemplo:
# zpool status tank pool: tank state: ONLINE scrub: resilver completed after 0h1m with 0 errors on Tue Feb 2 13:54:30 2010 config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 377M resilvered c1t1d0 ONLINE 0 0 0 errors: No known data errors
O pool está novamente ONLINE e o disco com falha original (c1t0d0) foi removido da configuração.