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

Componentes de um pool de armazenamento do ZFS

Usando discos em um pool de armazenamento do ZFS

Usando faixas em um pool de armazenamento do ZFS

Usando arquivos em um pool de armazenamento do ZFS

Considerações para Pools de Armazenamento do ZFS

Recursos de replicação de um pool de armazenamento do ZFS

Configuração de pool de armazenamento espelhado

Configuração de pool de armazenamento RAID-Z

Pool armazenamento híbrido do ZFS

Dados de autocorreção em uma configuração redundante

Distribuição dinâmica em um pool de armazenamento

Criando e destruindo pools de armazenamento do ZFS

Criando Pools de Armazenamento do ZFS

Criando um pool de armazenamento básico

Criando um pool de armazenamento espelhado

Criando um pool raiz do ZFS

Criando um pool de armazenamento RAID-Z

Criando um pool de armazenamento do ZFS com dispositivos de log

Criando um pool de armazenamento do ZFS com dispositivos de cache

Cuidados para a Criação de Pools de Armazenamento

Exibindo informações do dispositivo virtual do pool de armazenamento

Manipulando erros de criação do pool de armazenamento do ZFS

Detectando dispositivos em uso

Níveis de replicação inconsistentes

Simulando uma criação de pool de armazenamento

Ponto de montagem padrão para pools de armazenamento

Destruindo pools de armazenamento do ZFS

Destruindo um pool com dispositivos indisponíveis

Gerenciando dispositivos em pools de armazenamento do ZFS

Adicionando dispositivos a um pool de armazenamento

Anexando e desanexando dispositivos em um pool de armazenamento

Criando um novo pool ao dividir um pool de armazenamento espelhado do ZFS

Colocando dispositivos off-line e on-line em um pool de armazenamento

Colocando um dispositivo off-line

Colocando um dispositivo on-line

Limpando erros de dispositivo do pool de armazenamento

Substituindo dispositivos em um pool de armazenamento

Designando discos de reserva com reposição em funcionamento no pool de armazenamento

Ativando e desativando discos de reserva com reposição em funcionamento no pool de armazenamento

Gerenciando propriedades do pool de armazenamento do ZFS

Consultando status de pool de armazenamento do ZFS

Exibindo informações sobre os pools de armazenamento do ZFS

Exibindo informações sobre todos os pools de armazenamento ou de um pool específico

Exibindo estatísticas específicas de pool de armazenamento

Script de saída de pool de armazenamento do ZFS

Exibindo o histórico de comandos do pool de armazenamento ZFS

Visualizando estatísticas de E/S para pools de armazenamento do ZFS

Listando estatísticas de E/S em todo o pool

Listando estatísticas de E/S do dispositivo virtual

Determinando o status de integridade de pools de armazenamento do ZFS

Status básico de integridade do pool de armazenamento

Status de integridade detalhado

Reunindo informações do status do pool de armazenamento do ZFS

Migrando pools de armazenamento do ZFS

Preparando para migração do pool de armazenamento do ZFS

Exportando um pool de armazenamento do ZFS

Determinando pools de armazenamento disponíveis para importação

Importando pools de armazenamento ZFS de diretórios alternativos

Importando pools de armazenamento do ZFS

Importação de um pool com um dispositivo de log ausente

Importação de um pool no modo somente leitura

Importação de um pool por um caminho de dispositivo específico

Recuperando pools de armazenamento destruídos do ZFS

Atualizando pools de armazenamento do 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

11.  Práticas Recomendadas do Oracle Solaris ZFS

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

Índice

Gerenciando dispositivos em pools de armazenamento do ZFS

Grande parte das informações básicas relacionadas a dispositivos é tratada em Componentes de um pool de armazenamento do ZFS. Depois da criação de um pool, é possível efetuar várias tarefas para gerenciar os dispositivos físicos dentro do pool.

Adicionando dispositivos a um pool de armazenamento

É possível adicionar espaço de disco dinamicamente a um pool ao adicionar um novo dispositivo virtual de nível superior. Este espaço de disco fica disponível imediatamente a todos os conjuntos de dados no conjunto. Para adicionar um novo dispositivo virtual a um pool, use o comando zpool add. Por exemplo:

# zpool add zeepool mirror c2t1d0 c2t2d0

O formato para especificar os dispositivos virtuais é o mesmo para o comando zpool create. Os dispositivos são verificados para determinar se estão em uso e o comando não pode alterar o nível de redundância sem a opção -f. O comando também suporta a opção -n para que seja possível realizar uma simulação. Por exemplo:

# zpool add -n zeepool mirror c3t1d0 c3t2d0
would update 'zeepool' to the following configuration:
      zeepool
        mirror
            c1t0d0
            c1t1d0
        mirror
            c2t1d0
            c2t2d0
        mirror
            c3t1d0
            c3t2d0

Esta sintaxe de comando pode adicionar dispositivos espelhados c3t1d0 e c3t2d0 à configuração existente do pool zeepool.

Para obter mais informações sobre como é realizada a validação de dispositivos virtuais, consulte Detectando dispositivos em uso.

Exemplo 3-1 Adicionando discos a uma configuração espelhada do ZFS

No exemplo anterior, outro espelho é adicionado a uma configuração existente do ZFS espelhado.

# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
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

errors: No known data errors
# zpool add tank mirror c0t3d0 c1t3d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
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

Exemplo 3-2 Adicionando discos a uma configuração RAID-Z

Da mesma forma, os discos extras podem ser adicionados a uma configuração RAID-Z. O exemplo a seguir mostra como converter um pool de armazenamento com um dispositivo RAID-Z que contém três discos em um pool de armazenamento com dois dispositivos RAID-Z que contém três discos cada.

# zpool status rzpool
  pool: rzpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rzpool      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
            c1t3d0  ONLINE       0     0     0
            c1t4d0  ONLINE       0     0     0

errors: No known data errors
# zpool add rzpool raidz c2t2d0 c2t3d0 c2t4d0
# zpool status rzpool
  pool: rzpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rzpool      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0
            c1t3d0  ONLINE       0     0     0
          raidz1-1  ONLINE       0     0     0
            c2t2d0  ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t4d0  ONLINE       0     0     0

errors: No known data errors

Exemplo 3-3 Adicionando e removendo um dispositivo de log espelhado

O exemplo a seguir mostra como adicionar um dispositivo de log espelhado a um pool de armazenamento espelhado.

# zpool status newpool
  pool: newpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        newpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0

errors: No known data errors
# zpool add newpool log mirror c0t6d0 c0t7d0
# zpool status newpool
  pool: newpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        newpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0
        logs
          mirror-1  ONLINE       0     0     0
            c0t6d0  ONLINE       0     0     0
            c0t7d0  ONLINE       0     0     0

errors: No known data errors

É possível anexar um dispositivo de log a um dispositivo de log existente para criar um dispositivo de log espelhado. Essa operação é idêntica à anexação de um dispositivo em um pool de armazenamento não espelhado.

É possível remover dispositivos de log usando o comando zpool remove. O dispositivo de log espelhado no exemplo anterior pode ser removido ao especificar o argumento mirror-1. Por exemplo:

# zpool remove newpool mirror-1
# zpool status newpool
  pool: newpool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        newpool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c0t4d0  ONLINE       0     0     0
            c0t5d0  ONLINE       0     0     0

errors: No known data errors

Se a configuração do pool contiver apenas um dispositivo de log, remova o dispositivo de log especificando o nome do dispositivo. Por exemplo:

# zpool status pool
  pool: pool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        pool        ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            c0t8d0  ONLINE       0     0     0
            c0t9d0  ONLINE       0     0     0
        logs
          c0t10d0   ONLINE       0     0     0

errors: No known data errors
# zpool remove pool c0t10d0

Exemplo 3-4 Adicionando e removendo dispositivos de cache

É possível adicionar dispositivos de cache ao pool de armazenamento do ZFS e removê-los se não forem mais necessários.

Use o comando zpool add para adicionar dispositivos de cache. Por exemplo:

# zpool add tank cache c2t5d0 c2t8d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
        cache
          c2t5d0    ONLINE       0     0     0
          c2t8d0    ONLINE       0     0     0

errors: No known data errors

Os dispositivos de cache não podem ser espelhados ou fazer parte de uma configuração RAID-Z.

Use o comando zpool remove para remover dispositivos de cache. Por exemplo:

# zpool remove tank c2t5d0 c2t8d0
# zpool status tank
 pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0

errors: No known data errors

Atualmente, o comando zpool remove suporta apenas remover discos de reserva com reposição em funcionamento, dispositivos de log e dispositivos de cache. Os dispositivos fazem parte da configuração de pool espelhado principal e podem ser removidos usando o comando zpool detach. Dispositivos não-redundantes e RAID-Z não podem ser removidos de um pool.

Para obter mais informações sobre como utilizar dispositivos de cache em um pool de armazenamento ZFS, consulte Criando um pool de armazenamento do ZFS com dispositivos de cache.

Anexando e desanexando dispositivos em um pool de armazenamento

Além do comando zpool add, é possível utilizar o comando zpool attach para adicionar um novo dispositivo a um dispositivo existente espelhado ou não espelhado.

Se estiver anexando um disco para criar um pool raiz espelhado, consulte Como migrar um pool raiz espelhado do ZFS (pós-instalação).

Se você estiver substituindo um disco em um pool raiz do ZFS, consulte Recuperando o pool raiz ZFS ou instantâneos do pool raiz.

Exemplo 3-5 Convertendo um pool de armazenamento espelhado bidirecional em um pool de armazenamento espalhado tridirecional

Neste exemplo, zeepool é um espelho bidirecional existente que é transformado em um espelho tridirecional ao anexar c2t1d0, o novo dispositivo, ao dispositivo existente c1t1d0.

# zpool status zeepool
  pool: zeepool
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        zeepool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c0t1d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0

errors: No known data errors
# zpool attach zeepool c1t1d0 c2t1d0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Fri Jan  8 12:59:20 2010
config:

        NAME        STATE     READ WRITE CKSUM
        zeepool     ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c0t1d0  ONLINE       0     0     0
            c1t1d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0  592K resilvered

errors: No known data errors

Se o dispositivo existente é parte de um espelho bidirecional, a anexação do novo dispositivo criará um espelho quadridirecional, e assim por diante. Em qualquer caso, o novo dispositivo começa a realizar resilvering imediatamente.

Exemplo 3-6 Convertendo um pool de armazenamento não redundante do ZFS em um pool de armazenamento espelhado do ZFS

Além disso, é possível converter um pool de armazenamento não redundante em um pool de armazenamento redundante utilizando o comando zpool attach. Por exemplo:

# zpool create tank c0t1d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:
        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          c0t1d0    ONLINE       0     0     0

errors: No known data errors
# zpool attach tank c0t1d0 c1t1d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Fri Jan  8 14:28:23 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  73.5K resilvered

errors: No known data errors

O comando zpool detach pode ser usado para desanexar um dispositivo de um pool de armazenamento espelhado. Por exemplo:

# zpool detach zeepool c2t1d0

Entretanto, esta operação falha se nenhuma outra réplica válida dos dados existir. Por exemplo:

# zpool detach newpool c1t2d0
cannot detach c1t2d0: only applicable to mirror and replacing vdevs

Criando um novo pool ao dividir um pool de armazenamento espelhado do ZFS

Um pool de armazenamento espelhado do ZFS pode ser rapidamente clonado como um pool de backup com o comando zpool split. Você pode usar esse recurso para dividir um pool raiz espelhado, mas o pool que é dividido não é inicializável até que você execute algumas etapas adicionais.

É possível utilizar o comando zpool split para desanexar um ou mais discos de um pool de armazenamento ZFS espelhado para criar um novo pool com o disco ou discos desanexados. O novo pool possuirá conteúdo idêntico ao pool original de armazenamento espelhado do ZFS.

Por padrão, uma operação zpool split em um pool espelhado desanexa o último disco do pool recém criado. Após a operação de divisão, importe o novo pool. Por exemplo:

# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c1t2d0  ONLINE       0     0     0

errors: No known data errors
# zpool split tank tank2
# zpool import tank2
# zpool status tank tank2
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          c1t0d0    ONLINE       0     0     0

errors: No known data errors

  pool: tank2
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank2       ONLINE       0     0     0
          c1t2d0    ONLINE       0     0     0

errors: No known data errors

É possível identificar qual disco deve ser utilizado para o pool recém criado ao especificá-lo com o comando zpool split. Por exemplo:

# zpool split tank tank2 c1t0d0

Antes que a real operação de divisão ocorra, os dados na memória são descarregados para os discos espelhados. Depois que os dados são esvaziados, o disco é desanexado do pool e atribuído a um novo GUID de pool. O novo GUID de pool é gerado para que o pool possa ser importado no mesmo sistema no qual foi dividido.

Se o pool a ser dividido possuir pontos de montagem não padrões no sistema de arquivos e o novo pool for criado no mesmo sistema, você deverá utilizar a opção zpool split -R para identificar um diretório raiz alternativo para o novo pool para que qualquer ponto de montagem existente não entre em conflito. Por exemplo:

# zpool split -R /tank2 tank tank2

Se não utilizar a opção zpool split -R e for possível visualizar que os pontos de montagem entram em conflito quando tentam importar o novo pool, importe o novo pool com a opção -R. Se o novo pool for criado em um sistema diferente, então não será necessário especificar um diretório raiz alternativo, a não ser que ocorra um conflito no ponto de montagem.

Revise as considerações a seguir antes de utilizar o recurso zpool split:

Exemplo 3-7 Dividindo um pool espelhado do ZFS

No exemplo a seguir, um pool de armazenamento espelhado denominado mothership com três discos é dividido. Os dois pools resultantes são o pool espelhado mothership, com dois discos, e o novo pool, luna , com um disco. Cada pool possui conteúdo idêntico.

O pool luna pode ser importado em outro sistema para fins de backup. Depois da conclusão do backup, o pool luna pode ser destruído e o disco reanexado a mothership. Em seguida, é possível repetir o processo.

# zpool status mothership
  pool: mothership
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        mothership                 ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0

errors: No known data errors
# zpool split mothership luna
# zpool import luna 
# zpool status mothership luna
  pool: luna
 state: ONLINE
  scan: none requested
config:

        NAME                     STATE     READ WRITE CKSUM
        luna                     ONLINE       0     0     0
          c0t5000C500335F907Fd0  ONLINE       0     0     0

errors: No known data errors

  pool: mothership
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        mothership                 ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0

errors: No known data errors

Colocando dispositivos off-line e on-line em um pool de armazenamento

O ZFS permite que dispositivos sejam colocados off-line ou on-line. Quando o hardware não é confiável ou não funciona corretamente, o ZFS continua a ler ou gravar dados no dispositivo, pressupondo que a condição é apenas temporária. Se a condição não for temporária, é possível instruir o ZFS a ignorar o dispositivo colocando-o off-line. O ZFS não envia solicitações a um dispositivo off-line.


Observação - Não é necessário colocar os dispositivos off-line para substituí-los.


Colocando um dispositivo off-line

É possível colocar um dispositivo off-line com o uso do comando zpool offline. Se o dispositivo for um disco, ele pode ser especificado pelo caminho ou por um nome abreviado. Por exemplo:

# zpool offline tank c0t5000C500335F95E3d0

Considere os pontos a seguir ao tornar um dispositivo off-line:

Os dispositivos off-line aparecem no estado OFF-LINE quando é consultado o estado do pool. Para obter informações sobre consultas de status do pool, consulte Consultando status de pool de armazenamento do ZFS.

Para obter mais informações sobre a integridade de dispositivos, consulte Determinando o status de integridade de pools de armazenamento do ZFS.

Colocando um dispositivo on-line

Depois de colocar um dispositivo off-line, ele pode ser colocado novamente on-line com a utilização do comando zpool online. Por exemplo:

# zpool online tank c0t5000C500335F95E3d0

Quando um dispositivo é colocado on-line, quaisquer dados que tenham sido gravados no pool são sincronizados novamente com o dispositivo recém disponível. Observe que não é possível colocar dispositivos on-line para substituir um disco. Se ao colocar um dispositivo off-line, substituir o dispositivo e colocá-lo on-line, ele permanecerá no estado UNAVAIL..

Se você tentar colocar um dispositivo UNAVAIL.on-line, será exibida uma mensagem semelhante à seguinte:

# zpool online tank c1t0d0
warning: device 'c1t0d0' onlined, but remains in faulted state
use 'zpool replace' to replace devices that are no longer present

Também pode ser possível visualizar a mensagem de disco danificado exibida no console ou no arquivo /var/adm/messages. Por exemplo:

SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Wed Jun 20 11:35:26 MDT 2012
PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo
SOURCE: zfs-diagnosis, REV: 1.0
EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8
DESC: A ZFS device failed.  Refer to http://sun.com/msg/ZFS-8000-D3 for more information.
AUTO-RESPONSE: No automated response will occur.
IMPACT: Fault tolerance of the pool may be compromised.
REC-ACTION: Run 'zpool status -x' and replace the bad device.

Para obter mais informações sobre a substituição de um dispositivo danificado, consulte Resolvendo um Dispositivo Ausente ou Removido.

Você pode usar o comando zpool online -e para expandir o tamanho do pool se um disco maior foi conectado ao pool ou se um disco menor foi substituído por um disco maior. Por padrão, um disco que é adicionado a um pool não é expandido ao seu tamanho total a não ser que a propriedade do pool autoexpand esteja ativada. É possível expandir automaticamente o pool utilizando o comando zpool online -e, mesmo se o disco de substituição já estiver on-line ou se o disco estiver atualmente off-line. Por exemplo:

# zpool online -e tank c0t5000C500335F95E3d0

Limpando erros de dispositivo do pool de armazenamento

Se um dispositivo for colocado off-line devido a uma falha que cause erros a serem listados na saída zpool status, você poderá limpar as contagens de erro com o comando zpool clear.

Se especificado sem argumentos, este comando limpará todos os erros de dispositivos dentro do pool. Por exemplo:

# zpool clear tank

Se um ou mais dispositivos forem especificados, este comando limpará somente erros associados aos dispositivos especificados. Por exemplo:

# zpool clear tank c0t5000C500335F95E3d0

Para obter mais informações sobre a limpeza de erros de zpool, consulte Apagando Erros Transitórios do Dispositivo.

Substituindo dispositivos em um pool de armazenamento

É possível substituir um dispositivo em um pool de armazenamento usando o comando zpool replace.

Se estiver substituindo fisicamente um dispositivo por outro dispositivo na mesma localização em um pool redundante, só será preciso identificar o dispositivo substituído. Em alguns hardwares, o ZFS reconhece que o dispositivo é um disco diferente no mesmo local. Por exemplo, para substituir um disco danificado (c1t1d0) ao remover o disco e substituindo-o na mesma localização, utilize a sintaxe semelhante à seguinte:

# zpool replace tank c1t1d0

Se estiver substituindo um dispositivo em um pool de armazenamento por um disco em uma localização física diferente, você deverá especificar ambos os dispositivos. Por exemplo:

# zpool replace tank c1t1d0 c1t2d0

Se você estiver substituindo um disco no pool de raiz do ZFS, consulte Recuperando o pool raiz ZFS ou instantâneos do pool raiz.

A seguir, as etapas básicas para substituir um disco:

  1. Coloque o disco off-line, se necessário, com o comando zpool offline.

  2. Remova o disco que será substituído.

  3. Insira o disco de substituição.

  4. Examine a saída format para determinar se o disco sobressalente está visível.

    Além disso, verifique se o ID do dispositivo foi alterado. Se o disco sobressalente tiver um WWN, o ID do dispositivo do disco com falha será alterado.

  5. Informe ao ZFS que o disco foi substituído. Por exemplo:

    # zpool replace tank c1t1d0

    Se o disco sobressalente tiver um ID de dispositivo diferente do identificado acima, inclua o novo ID do dispositivo.

    # zpool replace tank c0t5000C500335FC3E7d0 c0t5000C500335BA8C3d0
  6. Se necessário, coloque o disco on-line outra vez com o comando zpool online.

  7. Notifique o FMA de que o dispositivo foi substituído.

    Na saída fmadm faulty, identifique a sequência de caracteres zfs://pool=name/vdev=guid na seção Affects: e especifique essa sequência de caracteres como um argumento para o comando fmadm repaired.

    # fmadm faulty
    # fmadm repaired zfs://pool=name/vdev=guid

Em alguns sistemas com discos SATA, é necessário desconfigurar um disco antes de colocá-lo off-line. Se estiver substituindo um disco na mesma posição de slot neste sistema, então é possível apenas executar o comando zpool replace como descrito no primeiro exemplo nesta seção.

Para obter um exemplo de substituição do disco SATA, consulte o Exemplo 10-1.

Considere o seguinte ao substituir dispositivos em um pool de armazenamento do ZFS:

Para obter mais informações sobre a substituição de dispositivos, consulte Resolvendo um Dispositivo Ausente ou Removido e Substituindo ou reparando um dispositivo modificado.

Designando discos de reserva com reposição em funcionamento no pool de armazenamento

O recurso de discos de reserva com reposição em funcionamento permite identificar os discos que poderiam ser usados para substituir um dispositivo danificado em um pool de armazenamento. A atribuição de um dispositivo como reserva significa que o dispositivo não é um dispositivo ativo em um pool, mas se um dispositivo ativo no pool falhar, o de reserva substituirá automaticamente o dispositivo danificado.

Os dispositivos podem ser designados como reserva nas seguintes situações:

Os seguintes exemplos mostram como atribuir dispositivos como discos de reserva com reposição em funcionamento quando o pool é criado:

# zpool create zeepool mirror c0t5000C500335F95E3d0 c0t5000C500335F907Fd0 
mirror c0t5000C500335BD117d0 c0t5000C500335DC60Fd0 spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  ONLINE       0     0     0
        spares
          c0t5000C500335E106Bd0    AVAIL   
          c0t5000C500335FC3E7d0    AVAIL   

errors: No known data errors

O seguinte exemplo mostra como atribuir discos de reserva com reposição em funcionamento ao adicioná-los a um pool depois que o pool é criado:

# zpool add zeepool spare c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  ONLINE       0     0     0
        spares
          c0t5000C500335E106Bd0    AVAIL   
          c0t5000C500335FC3E7d0    AVAIL   

errors: No known data errors

Os discos de reserva com reposição em funcionamento podem ser removidos de um pool de armazenamento com o comando zpool remove. Por exemplo:

# zpool remove zeepool c0t5000C500335FC3E7d0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  ONLINE       0     0     0
        spares
          c0t5000C500335E106Bd0    AVAIL   

errors: No known data errors

Um disco de reserva com reposição em funcionamento não pode ser removido se estiver sendo utilizado atualmente por um pool de armazenamento.

Considere o seguinte quando estiver usando discos de reserva com reposição em funcionamento do ZFS:

Ativando e desativando discos de reserva com reposição em funcionamento no pool de armazenamento

Os discos de reserva com reposição em funcionamento são ativados das seguintes maneiras:

Um dispositivo UNAVAIL é substituído automaticamente quando um disco de reserva está disponível. Por exemplo:

# zpool status -x
  pool: zeepool
 state: DEGRADED
status: One or more devices are unavailable in response to persistent errors.
        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: resilvered 3.15G in 0h0m with 0 errors on Mon Nov 12 15:53:42 2012
config:

        NAME                         STATE     READ WRITE CKSUM
        zeepool                      DEGRADED     0     0     0
          mirror-0                   ONLINE       0     0     0
            c0t5000C500335F95E3d0    ONLINE       0     0     0
            c0t5000C500335F907Fd0    ONLINE       0     0     0
          mirror-1                   DEGRADED     0     0     0
            c0t5000C500335BD117d0    ONLINE       0     0     0
            spare-1                  DEGRADED   449     0     0
              c0t5000C500335DC60Fd0  UNAVAIL      0     0     0
              c0t5000C500335E106Bd0  ONLINE       0     0     0
        spares
          c0t5000C500335E106Bd0      INUSE   

errors: No known data errors

Atualmente, é possível desativar um disco de reserva das seguintes maneiras:

Exemplo 3-8 Desanexando um disco de reserva depois que o disco danificado é substituído

Neste exemplo, o disco danificado (c0t5000C500335DC60Fd0) é substituído fisicamente e o ZFS é notificado ao utilizar o comando zpool replace.

# zpool replace zeepool c0t5000C500335DC60Fd0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: resilvered 3.15G in 0h0m with 0 errors on Thu Jun 21 16:53:43 2012
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  ONLINE       0     0     0
        spares
          c0t5000C500335E106Bd0    AVAIL   

Se necessário, você pode utilizar o comando zpool detach para retornar o disco de reserva para o pool disponível. Por exemplo:

# zpool detach zeepool c0t5000C500335E106Bd0

Exemplo 3-9 Desanexando um disco danificado e utilizando o disco de reserva

Se quiser substituir um disco danificado, fazendo uma permuta temporária ou permanente do disco de reserva que está atualmente substituindo-o, desanexe o disco original (com falha). Se o disco danificado é substituído eventualmente, você poderá adicioná-lo de volta ao pool de armazenamento como um disco de reserva. Por exemplo:

# zpool status zeepool
  pool: zeepool
 state: DEGRADED
status: One or more devices are unavailable in response to persistent errors.
        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: resilver in progress since Mon Nov 12 16:04:12 2012
     4.80G scanned out of 12.0G at 55.8M/s, 0h2m to go
     4.80G scanned out of 12.0G at 55.8M/s, 0h2m to go
     4.77G resilvered, 39.97% done
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    DEGRADED     0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 DEGRADED     0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335DC60Fd0  UNAVAIL      0     0     0
        spares
          c0t5000C500335E106Bd0    AVAIL   

errors: No known data errors
# zpool detach zeepool c0t5000C500335DC60Fd0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: resilvered 11.3G in 0h3m with 0 errors on Mon Nov 12 16:07:12 2012
config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335E106Bd0  ONLINE       0     0     0

errors: No known data errors
(Original failed disk c0t5000C500335DC60Fd0 is physically replaced)
# zpool add zeepool spare c0t5000C500335DC60Fd0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
  scan: resilvered 11.2G in 0h3m with 0 errors on Mon Nov 12 16:07:12 2012

config:

        NAME                       STATE     READ WRITE CKSUM
        zeepool                    ONLINE       0     0     0
          mirror-0                 ONLINE       0     0     0
            c0t5000C500335F95E3d0  ONLINE       0     0     0
            c0t5000C500335F907Fd0  ONLINE       0     0     0
          mirror-1                 ONLINE       0     0     0
            c0t5000C500335BD117d0  ONLINE       0     0     0
            c0t5000C500335E106Bd0  ONLINE       0     0     0
        spares
          c0t5000C500335DC60Fd0    AVAIL   

errors: No known data errors

Depois que um disco é substituído e o disco de reserva é desanexado, informe ao FMA que o disco foi reparado.

# fmadm faulty
# fmadm repaired zfs://pool=name/vdev=guid