JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de administração do ZFS Oracle Solaris
search filter icon
search icon

Informação sobre o documento

Prefácio

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

2.  Introdução ao ZFS do Oracle Solaris

3.  Diferenças entre o sistema de arquivos tradicional e o ZFS do Oracle Solaris

4.  Gerenciando conjuntos de armazenamento ZFS do Oracle Solaris

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

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 um pool de armazenamento do ZFS

Criando um pool de armazenamento básico

Criando um pool de armazenamento espelhado

Criando um pool raiz ZFS

Criando um conjunto de armazenamento RAID-Z

Criando um conjunto de armazenamento do ZFS com dispositivos de log

Criando um conjunto de armazenamento do ZFS com dispositivos de cache

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 falhos

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 conjunto ao dividir um conjunto de armazenamento ZFS espelhado

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 de conjunto de armazenamento

Substituindo dispositivos em um pool de armazenamento

Designando sobressalentes no pool de armazenamento

Ativando e desativando sobressalentes 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 conjuntos de armazenamento ZFS

Listando informações sobre todos os conjuntos de armazenamento ou de um conjunto específico

Listando 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 E/S para conjuntos de armazenamento ZFS

Listando estatísticas E/S amplas de conjunto

Listando estatísticas 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 conjuntos 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

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

6.  Gerenciando sistemas de arquivos ZFS do Oracle Solaris

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

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

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

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

11.  Solução de problemas e conjunto de recuperação do Oracle Solaris ZFS

A.  Descrição da versão do ZFS do Oracle Solaris

Índice

Migrando pools de armazenamento do ZFS

Ocasionalmente, pode ser necessário mover um conjunto de armazenamento entre sistemas. Para tal, os dispositivos de armazenamento devem ser desconectados do sistema original e reconectados ao sistema de destino. Esta tarefa pode ser realizada tornando a ligar fisicamente os cabos dos dispositivos ou utilizando dispositivos de portas múltiplas, como os dispositivos em uma SAN. O ZFS permite exportar o conjunto de uma máquina e importá-lo para o sistema de destino, mesmo que os sistemas tenham arquitetura de endian diferentes. Para obter informações sobre replicação ou migração de sistemas de arquivos entre diferentes pools de armazenamento que possam residir em diferentes máquinas, consulte Enviando e recebendo dados do ZFS.

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

Os pools de armazenamento devem ser exportados explicitamente para indicar que estão prontos para ser migrados. Esta operação libera quaisquer dados não gravados para o disco, grava os dados para o disco indicando que a exportação foi feita e remove do sistema toda a informação sobre o conjunto.

Se o pool não for explicitamente exportado, mas em vez disso for removido manualmente do disco, será possível importar o pool resultante em outro sistema. No entanto, pode ocorrer a perda dos últimos segundos das transações de dados, e o conjunto aparecerá falho no sistema original porque os dispositivos não estão mais presentes. Por padrão, o sistema de destino não pode importar um conjunto que não tenha sido exportado explicitamente. Essa condição é necessária para impedir a importação acidental de um conjunto ativo composto por armazenamentos de rede anexados que ainda estejam sendo utilizados em outro sistema.

Exportando um pool de armazenamento do ZFS

Para exportar um pool, use o comando zpool export. Por exemplo:

# zpool export tank

O comando tenta desmontar quaisquer sistemas de arquivos montados dentro do pool antes de continuar. Se qualquer um dos sistemas de arquivos não for desmontado, você poderá forçar a desmontagem com o uso da opção -f. Por exemplo:

# zpool export tank
cannot unmount '/export/home/eschrock': Device busy
# zpool export -f tank

Depois que o comando é executado, o conjunto tank deixa de ser visível no sistema.

Se os dispositivos estiverem indisponíveis no momento da exportação, os dispositivos não poderão ser especificados como exportados corretamente. Se um destes dispositivos for posteriormente anexado a um sistema sem nenhum dos dispositivos em funcionamento, ele aparecerá como "potencialmente ativo".

Se os volumes ZFS estiverem em uso no pool, o pool não poderá ser exportado, mesmo com a opção -f. Para exportar um conjunto com um volume ZFS, primeiro certifique-se de que todos os consumidores do volume não estão mais ativos.

Para obter mais informações sobre volumes ZFS, consulte Volumes ZFS.

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

Depois que o conjunto é removido do sistema (através de exportação explícita ou remoção forçada dos dispositivos), é possível anexar os dispositivos ao sistema de destino. O ZFS pode manipular algumas situações onde apenas alguns dispositivos estão disponíveis, mas uma migração de conjunto com êxito depende da integridade geral dos dispositivos. Além disso, os dispositivos não têm que estar necessariamente anexados sobre o mesmo nome de dispositivo. O ZFS detecta quaisquer dispositivos movidos ou renomeados e ajusta a configuração adequadamente. Para descobrir pools disponíveis, execute o comando zpool import sem opções. Por exemplo:

# zpool import
 pool: tank
    id: 11809215114195894163
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

Neste exemplo, o pool tank está disponível para ser importado no sistema de destino. Cada pool é identificado por um nome e por um identificador numérico exclusivo. Se vários conjuntos com o mesmo nome estiverem disponíveis para importação, é possível utilizar identificadores numéricos para fazer a distinção entre eles.

Da mesma forma que o comando zpool status, o comando zpool import inclui um link a um artigo informativo disponível na Web com as informações mais atualizadas em relação aos procedimentos para correção de um problema que esteja impedindo um conjunto de ser importado. Neste caso, o usuário pode forçar o pool a ser importado. No entanto, a importação de um pool que esteja atualmente em uso por outro sistema em uma rede de armazenamento pode resultar na corrupção de dados e em avisos graves, uma vez que ambos os sistemas tentam gravar no mesmo armazenamento. Se alguns dispositivos não estiverem disponíveis no conjunto, mas houver redundância disponível suficiente para fornecer um conjunto utilizável, o conjunto aparecerá no estado DEGRADED. Por exemplo:

# zpool import
  pool: tank
    id: 11809215114195894163
 state: DEGRADED
status: One or more devices are missing from the system.
action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://www.sun.com/msg/ZFS-8000-2Q
config:

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

Neste exemplo, o primeiro disco está danificado ou ausente, embora você ainda possa importar o pool devido ao fato de que os dados espelhados ainda estão acessíveis. Se houver muitos dispositivos falhos ou ausentes, o pool não poderá ser importado. Por exemplo:

# zpool import
  pool: dozer
    id: 9784486589352144634
 state: FAULTED
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        raidz1-0       FAULTED
          c1t0d0       ONLINE
          c1t1d0       FAULTED
          c1t2d0       ONLINE
          c1t3d0       FAULTED

Neste exemplo, dois discos de um dispositivo virtual RAID-Z estão ausentes, o que significa que não há dados replicados suficientes para reconstruir o pool. Em alguns casos, não há dispositivos suficientes para determinar a configuração completa. Neste caso, o ZFS não pode determinar quais eram os outros dispositivos que faziam parte do conjunto, embora o ZFS relate o máximo de informações possíveis sobre a situação. Por exemplo:

# zpool import
pool: dozer
    id: 9784486589352144634
 state: FAULTED
status: One or more devices are missing from the system.
action: The pool cannot be imported. Attach the missing
        devices and try again.
   see: http://www.sun.com/msg/ZFS-8000-6X
config:
        dozer          FAULTED   missing device
          raidz1-0     ONLINE
            c1t0d0     ONLINE
            c1t1d0     ONLINE
            c1t2d0     ONLINE
            c1t3d0     ONLINE
Additional devices are known to be part of this pool, though their
exact configuration cannot be determined.

Importando conjuntos de armazenamento ZFS de diretórios alternativos

Por padrão, o comando zpool import procura apenas dispositivos dentro do diretório /dev/dsk. Se existirem dispositivos em outro diretório, ou se estiver utilizando conjuntos apoiados por arquivos, será necessário utilizar a opção -d para pesquisar diretórios alternativos. Por exemplo:

# zpool create dozer mirror /file/a /file/b
# zpool export dozer
# zpool import -d /file
  pool: dozer
    id: 7318163511366751416
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer        ONLINE
          mirror-0   ONLINE
            /file/a  ONLINE
            /file/b  ONLINE
# zpool import -d /file dozer

Se houver dispositivos em vários diretórios, você pode especificar várias opções -d.

Importando pools de armazenamento do ZFS

Depois que um conjunto é identificado para importação, é possível importá-lo especificando o nome do conjunto ou o seu identificador numérico como um argumento para o comando zpool import. Por exemplo:

# zpool import tank

Se vários conjuntos disponíveis tiverem o mesmo nome, especifique o conjunto que será importando utilizando o identificador numérico. Por exemplo:

# zpool import
  pool: dozer
    id: 2704475622193776801
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t9d0    ONLINE

  pool: dozer
    id: 6223921996155991199
 state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

        dozer       ONLINE
          c1t8d0    ONLINE
# zpool import dozer
cannot import 'dozer': more than one matching pool
import by numeric ID instead
# zpool import 6223921996155991199

Se o nome do pool estiver em conflito com um nome de pool existente, você poderá importar o pool com outro nome. Por exemplo:

# zpool import dozer zeepool

Este comando importa o pool exportado dozer usando o novo nome zeepool. O nome do novo pool é persistente.

Se o pool não tiver sido exportado corretamente, o ZFS precisará do sinalizador -f para impedir que os usuários importem por acidente um pool ainda em uso em outro sistema. Por exemplo:

# zpool import dozer
cannot import 'dozer': pool may be in use on another system
use '-f' to import anyway
# zpool import -f dozer

Observação - Não tente importar um conjunto que está ativo em um sistema para outro sistema. O ZFS não é um sistema de arquivos cluster nativo, distribuído ou paralelo, e não pode fornecer acesso de vários host diferentes.


Os pools também podem ser importados em uma raiz alternativa com o uso da opção -R. Para obter mais informações sobre pools raiz alternativos, consulte Usando pools de raiz alternativa do ZFS.

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

Por padrão, um pool com um dispositivo de log ausente não pode ser importado. Você pode usar o comando zpool import -m para forçar um pool a ser importado com um dispositivo de log ausente. Por exemplo:

# zpool import dozer
The devices below are missing, use '-m' to import the pool anyway:
            c3t3d0 [log]

cannot import 'dozer': one or more devices is currently unavailable

Importe o pool com o dispositivo de log ausente. Por exemplo:

# zpool import -m dozer
# zpool status dozer
  pool: dozer
 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 Fri Oct 15 16:43:03 2010
config:

        NAME                    STATE     READ WRITE CKSUM
        dozer                   DEGRADED     0     0     0
          mirror-0              ONLINE       0     0     0
            c3t1d0              ONLINE       0     0     0
            c3t2d0              ONLINE       0     0     0
        logs
          14685044587769991702  UNAVAIL      0     0     0  was c3t3d0

Depois de conectar o dispositivo de log ausente, execute o comando zpool clear para limpar os erros do pool.

Uma recuperação semelhante pode ser tentada com dispositivos de log espelhados ausentes. Por exemplo:

# zpool import dozer
The devices below are missing, use '-m' to import the pool anyway:
            mirror-1 [log]
              c3t3d0
              c3t4d0

cannot import 'dozer': one or more devices is currently unavailable
# zpool import -m dozer
# zpool status dozer
  pool: dozer
 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 Fri Oct 15 16:51:39 2010
config:

        NAME                      STATE     READ WRITE CKSUM
        dozer                     DEGRADED     0     0     0
          mirror-0                ONLINE       0     0     0
            c3t1d0                ONLINE       0     0     0
            c3t2d0                ONLINE       0     0     0
        logs
          mirror-1                UNAVAIL      0     0     0  insufficient replicas
            13514061426445294202  UNAVAIL      0     0     0  was c3t3d0
            16839344638582008929  UNAVAIL      0     0     0  was c3t4d0

Depois de conectar os dispositivos de log ausentes, execute o comando zpool clear para limpar os erros do pool.

Importação de um pool no modo somente leitura

Você pode importar um pool no modo somente leitura. Se um pool for danificado de forma que não possa ser acessado, esse recurso pode permitir a recuperação dos dados do pool. Por exemplo:

# zpool import -o readonly=on tank
# zpool scrub tank
cannot scrub tank: pool is read-only

Quando um pool é importado no modo somente leitura, as seguintes condições se aplicam:

Um pool somente leitura pode ser definido de volta para o modo leitura-gravação exportando e importando o pool. Por exemplo:

# zpool export tank
# zpool import tank
# zpool scrub tank

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

O seguinte comando importa o pool dpool identificando um dos dispositivos específicos do pool, /dev/dsk/c2t3d0, neste exemplo.

# zpool import -d /dev/dsk/c2t3d0s0 dpool
# zpool status dpool
  pool: dpool
 state: ONLINE
 scan: resilvered 952K in 0h0m with 0 errors on Thu Mar 10 10:28:46 2011
config:

        NAME        STATE     READ WRITE CKSUM
        dpool       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            c2t3d0  ONLINE       0     0     0
            c2t1d0  ONLINE       0     0     0

Uma limitação existente é que, embora este pool esteja composto por discos inteiros, o comando deve incluir o identificador de parte do dispositivo específico.

Recuperando pools de armazenamento destruídos do ZFS

O comando zpool import -D pode ser usado para recuperar um pool de armazenamento destruído. Por exemplo:

# zpool destroy tank
# zpool import -D
  pool: tank
    id: 5154272182900538157
 state: ONLINE (DESTROYED)
action: The pool can be imported using its name or numeric identifier.
config:

        tank        ONLINE
          mirror-0  ONLINE
            c1t0d0  ONLINE
            c1t1d0  ONLINE

Na saída zpool import acima, é possível identificar o conjunto tank como o conjunto destruído por causa das informações de estado a seguir:

state: ONLINE (DESTROYED)

Para recuperar o conjunto destruído, execute o comando zpool import - D novamente com o conjunto a ser recuperado. Por exemplo:

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

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

errors: No known data errors

Se um dos dispositivos do pool destruído estiver falho ou não estiver disponível, você poderá recuperar o pool destruído mesmo assim, ao incluir a opção -f . Neste cenário, importe o conjunto degradado e, em seguida, tente corrigir a falha do dispositivo. Por exemplo:

# zpool destroy dozer
# zpool import -D
pool: dozer
    id: 13643595538644303788
 state: DEGRADED (DESTROYED)
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
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    35     1  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool import -Df dozer
# zpool status -x
  pool: dozer
 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 Thu Jan 21 15:38:48 2010
config:

        NAME         STATE     READ WRITE CKSUM
        dozer        DEGRADED     0     0     0
          raidz2-0   DEGRADED     0     0     0
            c2t8d0   ONLINE       0     0     0
            c2t9d0   ONLINE       0     0     0
            c2t10d0  ONLINE       0     0     0
            c2t11d0  UNAVAIL      0    37     0  cannot open
            c2t12d0  ONLINE       0     0     0

errors: No known data errors
# zpool online dozer c2t11d0
Bringing device c2t11d0 online
# zpool status -x
all pools are healthy