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

Criando e destruindo pools de armazenamento do ZFS

As seções seguintes descrevem diferentes situações de criação e destruição de pools de armazenamento do ZFS:

Criar e destruir pools é rápido e fácil. Entretanto, seja cuidadoso ao efetuar estas operações. Embora sejam realizadas verificações para impedir o uso de dispositivos que estão sendo usados em um novo pool, o ZFS nem sempre sabe quando um dispositivo está sendo utilizado. Destruir um pool é mais fácil do que construir um. Use zpool destroy com cuidado. Este comando simples tem consequências significantes.

Criando Pools de Armazenamento do ZFS

Para criar um pool de armazenamento, use o comando zpool create. Este comando adota um nome de pool e qualquer quantidade de dispositivos virtuais como argumentos. O nome do pool deve cumprir as convenções de identificação descritas em Requisitos para nomeação de componentes do ZFS.

Criando um pool de armazenamento básico

O seguinte comando cria um novo pool denominado tank que contém os discos c1t0d0 e c1t1d0:

# zpool create tank c1t0d0 c1t1d0

Nomes de dispositivos representando discos inteiros são encontrados no diretório /dev/dsk e estão legendados adequadamente pelo ZFS para conter um único e grande segmento. Os dados são distribuídos dinamicamente nos dois discos.

Criando um pool de armazenamento espelhado

Para criar um pool espelhado, use a palavra-chave mirror, seguida de uma quantidade de dispositivos de armazenamento que formarão o espelho. É possível especificar vários espelhos com a repetição da palavra-chave mirror na linha de comando. O comando abaixo cria um pool com dois espelhos bidirecionais:

# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

A segunda palavra-chave mirror indica que um novo dispositivo virtual de primeiro nível está sendo especificado. Os dados são distribuídos dinamicamente nos dois espelhos e redundados adequadamente em cada disco.

Para obter mais informações sobre recomendações de configurações espelhadas, consulte o Capítulo 11, Práticas Recomendadas do Oracle Solaris ZFS.

No momento, as operações a seguir são suportadas em uma configuração espelhada do ZFS:

Não é possível remover completamente um dispositivo que não é um disco de reserva, um dispositivo de log ou um dispositivo de cache de um pool de armazenamento espelhado.

Criando um pool raiz do ZFS

Considere os seguintes requisitos de configuração do pool raiz:

Para mais informações sobre a instalação e a inicialização de um sistema de arquivos raiz ZFS, consulte Capítulo 4, Instalando e inicializando um sistema de arquivos raiz do Oracle Solaris ZFS.

Criando um pool de armazenamento RAID-Z

A criação de um pool RAID-Z de paridade única é idêntica à criação de um pool espelhado, exceto que a palavra-chave raidz ou raidz1 é usada em lugar de mirror. O exemplo abaixo mostra como criar um pool com um dispositivo RAID-Z único que está composto por dois discos:

# zpool create tank raidz c1t0d0 c2t0d0 c3t0d0 c4t0d0 /dev/dsk/c5t0d0

Este exemplo ilustra que os discos podem ser especificados ao utilizar seus nomes de dispositivo de estenografia ou seus nomes de dispositivos completos. Tanto /dev/dsk/c5t0d0 quanto c5t0d0 fazem referência ao mesmo disco.

É possível criar configurações RAID-Z de paridade dupla ou tripla ao utilizar a palavra-chave raidz2 ou raidz3 ao criar o pool. Por exemplo:

# zpool create tank raidz2 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0
# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c3t0d0  ONLINE       0     0     0
            c4t0d0  ONLINE       0     0     0
            c5t0d0  ONLINE       0     0     0

errors: No known data errors
# zpool create tank raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0
c5t0d0 c6t0d0 c7t0d0 c8t0d0
# zpool status -v tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          raidz3-0  ONLINE       0     0     0
            c0t0d0  ONLINE       0     0     0
            c1t0d0  ONLINE       0     0     0
            c2t0d0  ONLINE       0     0     0
            c3t0d0  ONLINE       0     0     0
            c4t0d0  ONLINE       0     0     0
            c5t0d0  ONLINE       0     0     0
            c6t0d0  ONLINE       0     0     0
            c7t0d0  ONLINE       0     0     0
            c8t0d0  ONLINE       0     0     0
errors: No known data errors

No momento, as operações a seguir são suportadas em uma configuração RAID-Z do ZFS:

No momento, as operações seguintes não são suportadas em uma configuração RAID-Z:

Para obter informações sobre a configuração RAID-Z, consulte Configuração de pool de armazenamento RAID-Z.

Criando um pool de armazenamento do ZFS com dispositivos de log

O ZIL (ZFS intent log) é fornecido para satisfazer requisitos de POSIX de transações síncronas. Por exemplo, em geral os bancos de dados exigem que suas transações estejam em dispositivos de armazenamento estáveis ao retornar de uma chamada do sistema. O NFS e outros aplicativos também podem usar o fsync() para garantir a estabilidade de dados.

Por padrão, o ZIL é alocado dos blocos no pool principal. Entretanto, talvez seja possível obter um desempenho melhor com o uso separado de dispositivos de log, como NVRAM ou um disco dedicado.

Ao determinar se a configuração de um dispositivo de registro ZFS é apropriada para o seu ambiente, leve em consideração o seguinte:

É possível configurar um dispositivo de log ZFS quando o pool de armazenamento for criado ou depois da sua criação.

O seguinte exemplo mostra como criar um pool de armazenamento espelhado com dispositivos de log espelhados:

# zpool create datap mirror c0t5000C500335F95E3d0 c0t5000C500335F907Fd0 mirror
c0t5000C500335BD117d0 c0t5000C500335DC60Fd0 log mirror c0t5000C500335E106Bd0 c0t5000C500335FC3E7d0
# zpool status datap
  pool: datap
 state: ONLINE
 scrub: none requested
config:

        NAME                       STATE     READ WRITE CKSUM
        datap                      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
        logs
          mirror-2                 ONLINE       0     0     0
            c0t5000C500335E106Bd0  ONLINE       0     0     0
            c0t5000C500335FC3E7d0  ONLINE       0     0     0

errors: No known data errors

Para obter informações sobre como recuperar de um dispositivo de registro com falha, consulte Exemplo 10-2.

Criando um pool de armazenamento do ZFS com dispositivos de cache

Os dispositivos de cache fornecem uma camada adicional de cache entre a memória principal e o disco. A utilização dos dispositivos de cache oferece a maior melhoria de desempenho para cargas de trabalho de leitura aleatória do conteúdo geralmente estático.

Você pode criar um pool de armazenamento com dispositivos de cache para dados de pool de armazenamento cache. Por exemplo:

# zpool create tank mirror c2t0d0 c2t1d0 c2t3d0 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

Depois que os dispositivos de cache são adicionados, eles gradualmente são preenchidos com o conteúdo da memória principal. Dependendo do tamanho do dispositivo de cache, poderá demorar mais de uma hora para que os dispositivos sejam preenchidos. A capacidade e as leituras podem ser monitoradas usando o comando zpool iostat como segue:

# zpool iostat -v pool 5

Os dispositivos de cache podem ser adicionados ou removidos de um pool depois dele ser criado.

Considere os seguintes pontos ao determinar a criação de um pool de armazenamento do ZFS com dispositivos de cache:

Cuidados para a Criação de Pools de Armazenamento

Examine os cuidados a seguir quando criar e gerenciar pools de armazenamento do ZFS.

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

Cada pool de armazenamento contém um ou mais dispositivos virtuais. Um dispositivo virtual é uma representação interna do pool de armazenamento que descreve o layout do armazenamento físico e suas características de falha. Como tal, um dispositivo virtual representa os dispositivos de disco ou arquivos que são usados para criar o pool de armazenamento. Um pool pode ter qualquer número de dispositivos virtuais na parte superior da configuração, conhecida como top-level vdev.

Se o dispositivo virtual de nível superior contém dois ou mais dispositivos físicos, a configuração fornece redundância de dados como dispositivos de espelho ou virtual RAID-Z. Estes dispositivos virtuais consistem em discos, faixas de discos ou arquivos. Um disco de reserva é um dispositivo virtual especial que rastreia discos de reserva com reposição em funcionamento disponíveis para um pool.

Os seguintes exemplos mostram como criar um pool que consiste em dois dispositivos virtuais de nível superior, cada um com espelho de dois discos:

# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0

O exemplo abaixo mostra como criar um pool que consiste em um dispositivo virtual de nível superior de quatro discos:

# zpool create mypool raidz2 c1d0 c2d0 c3d0 c4d0

É possível adicionar outro dispositivo virtual de nível superior a este pool utilizando o comando zpool add. Por exemplo:

# zpool add mypool raidz2 c2d1 c3d1 c4d1 c5d1

Os discos, segmentos de discos ou arquivos que são utilizados em pools não redundantes que funcionam como dispositivos virtuais de nível superior. Os pools de armazenamento normalmente contêm múltiplos dispositivos virtuais de primeiro nível. O ZFS cria dinamicamente faixas de dados entre todos os dispositivos virtuais de primeiro nível em um pool.

Os dispositivos virtuais e os dispositivos físicos contidos no pool de armazenamento do ZFS são exibidos com o comando zpool status. 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
            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

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

Os erros de criação de pool podem ocorrer por vários motivos. Alguns desses motivos são óbvios, como quando um dispositivo especificado não existe, enquanto outros são mais sutis.

Detectando dispositivos em uso

Antes de formatar um dispositivo, o ZFS determina se o disco está sendo usado pelo ZFS ou por alguma outra parte do sistema operacional. Se o disco estiver em uso, poderão ser exibidos erros como os seguintes:

# zpool create tank c1t0d0 c1t1d0
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t0d0s0 is currently mounted on /. Please see umount(1M).
/dev/dsk/c1t0d0s1 is currently mounted on swap. Please see swap(1M).
/dev/dsk/c1t1d0s0 is part of active ZFS pool zeepool. Please see zpool(1M).

Alguns destes erros podem ser ignorados utilizando a opção -f, mas grande parte deles não. As condições a seguir não podem ser ignoradas utilizando a opção -f, sendo necessário corrigí-los manualmente:

Sistema de arquivos montado

O disco ou uma de suas faixas contém um sistema de arquivos que está montado atualmente. Para corrigir este erro, use o comando umount.

Sistema de arquivos em /etc/vfstab

O disco contém um sistema de arquivos que está listado no arquivo /etc/vfstab , mas o sistema de arquivos não está montado atualmente. Para corrigir este erro, remova ou anote a linha no arquivo /etc/vfstab.

Dispositivo de dump dedicado

O disco está em uso como o dispositivo de dump dedicado para o sistema. Para corrigir este erro, use o comando dumpadm.

Parte de um pool do ZFS

O disco ou o arquivo faz parte de um pool de armazenamento ativo do ZFS. Para corrigir este erro, use o comando zpool destroy para destruir o pool, se este não for mais necessário. Ou, use o comando zpool detach para desanexar o disco do outro pool. Somente é possível desanexar um disco do pool de armazenamento espelhado.

As verificações de dispositivo em uso abaixo servem como avisos úteis e podem ser ignoradas com o uso da opção -f para criar o pool:

Contém um sistema de arquivos

O disco contém um sistema de arquivos conhecido, embora não esteja montado e não pareça estar em uso.

Parte de volume

Este disco é parte de um volume do Solaris Volume Manager.

Live Upgrade

O disco está em utilização como um ambiente de inicialização alternativo para o Oracle Solaris Live Upgrade.

Parte de pool exportado do ZFS

O disco faz parte de um pool de armazenamento que foi exportado ou removido manualmente de um sistema. Neste último caso, o pool é relatado como potentially active, uma vez que o disco pode ser ou não uma unidade anexada a uma rede em uso por outro sistema. Tome cuidado ao substituir um pool potencialmente ativo.

O exemplo abaixo mostra como a opção -f é usada:

# zpool create tank c1t0d0
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c1t0d0s0 contains a ufs filesystem.
# zpool create -f tank c1t0d0

O ideal é corrigir os erros, em vez de utilizar a opção -f para substituí-los.

Níveis de replicação inconsistentes

Não é recomendável criar pools com dispositivos virtuais de diferentes níveis de replicação. O comando zpool tenta impedir que você crie por acidente um pool com níveis de redundância inconsistentes. Se tentar criar um pool com uma configuração assim, serão exibidos erros como os seguintes:

# zpool create tank c1t0d0 mirror c2t0d0 c3t0d0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: both disk and mirror vdevs are present
# zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0 c5t0d0
invalid vdev specification
use '-f' to override the following errors:
mismatched replication level: 2-way mirror and 3-way mirror vdevs are present

É possível substituir estes erros com a opção -f, mas deve-se evitar esta prática. O comando também avisa sobre a criação de um pool espelhado ou RAID-Z que use dispositivos de diferentes tamanhos. Apesar desta configuração ser permitida, níveis de redundância incompatíveis resultam em espaço de disco inutilizado no dispositivo maior. A opção -f é necessária para substituir os avisos.

Simulando uma criação de pool de armazenamento

A tentativa de criar um pool pode falhar de forma inesperada de diferentes maneiras, e formatar discos é uma ação potencialmente prejudicial. Para estas razões, o comando zpool create possui a opção adicional, -n, que simula a criação do pool sem realmente gravar no dispositivo. Esta opção simulação efetua a verificação do dispositivo em uso e a validação do nível de replicação, e relata quaisquer erros durante o processo. Se nenhum erro for encontrado, será exibida uma saída semelhante à seguinte:

# zpool create -n tank mirror c1t0d0 c1t1d0
would create 'tank' with the following layout:

        tank
          mirror
            c1t0d0
            c1t1d0

Alguns erros não podem ser detectados sem a criação real do pool. O exemplo mais comum é a especificação do mesmo dispositivo duas vezes na mesma configuração. Não é possível detectar este erro com certeza sem realmente gravar os dados, de forma que o comando zpool create -n pode relatar êxito e ainda assim falhar em criar o pool quando realmente executado sem esta opção.

Ponto de montagem padrão para pools de armazenamento

Quando um pool é criado, o ponto de montagem padrão para o sistema de arquivos de raiz de nível superior é /pool-name. Este diretório não deve existir ou deve estar vazio. Se o diretório não existir, será criado automaticamente. Se o diretório estiver vazio, o sistema de arquivos de s raiz será montado em cima do diretório existente. Para criar um pool com um ponto de montagem padrão diferente, use a opção -m do comando zpool create. Por exemplo:

# zpool create home c1t0d0
default mountpoint '/home' exists and is not empty
use '-m' option to provide a different default
# zpool create -m /export/zfs home c1t0d0

Este comando cria um novo pool home e o sistema de arquivos home com um ponto de montagem /export/zfs.

Para obter mais informações sobre pontos de montagem, consulte Gerenciando pontos de montagem do ZFS.

Destruindo pools de armazenamento do ZFS

Os pools são destruídos com o uso do comando zpool destroy. Este comando destrói o pool mesmo se contiver conjuntos de dados montados.

# zpool destroy tank

Cuidado

Cuidado - Tome muito cuidado ao destruir um pool. Certifique-se de que está destruindo o pool certo e sempre tenha cópias dos dados. Se destruir por acidente o pool errado, poderá tentar recuperá-lo. Para obter mais informações, consulte Recuperando pools de armazenamento destruídos do ZFS.


Se você destruir um pool com o comando zpool destroy, o pool ainda ficará disponível para importação, como descrito em Recuperando pools de armazenamento destruídos do ZFS. Isso significa que os dados confidenciais ainda podem estar disponíveis nos discos que eram parte do pool. Se você quiser destruir dados nos discos destruídos do pool, deverá usar um recurso como a opção analyze->purge do utilitário format em todos os discos do pool destruído.

Destruindo um pool com dispositivos indisponíveis

O ato de destruir um pool requer que os dados sejam gravados em disco para indicar que o pool deixou de ser válido. Estas informações de estado evitam que o dispositivo apareça como um possível pool ao realizar uma importação. Se um ou mais dispositivos não estiverem disponíveis, o pool pode ainda assim ser destruído. No entanto, as informações de estado necessárias não serão gravadas nestes dispositivos indisponíveis.

Estes dispositivos, quando reparados de maneira adequada, são reportados como potencialmente ativos ao criar um novo pool. Eles aparecem como dispositivos válidos ao buscar por pools para importar. Se um pool apresentar dispositivos UNAVAIL suficientes, de forma que o próprio pool fique UNAVAIL (o que significa que o dispositivo virtual de primeiro nível é UNAVAIL), o comando imprimirá um aviso e não poderá ser concluído sem a opção -f. Esta opção é necessária porque o pool não pode ser aberto, então não é possível saber se os dados estão armazenados lá. Por exemplo:

# zpool destroy tank
cannot destroy 'tank': pool is faulted
use '-f' to force destruction anyway
# zpool destroy -f tank

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

Para obter mais informações sobre a importação de pools, consulte Importando pools de armazenamento do ZFS.