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
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 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
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
Ocasionalmente, pode ser necessário mover um pool 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 pool de um sistema 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 sistemas, consulte Enviando e recebendo dados do ZFS.
Determinando pools de armazenamento disponíveis para importação
Importando pools de armazenamento ZFS de diretórios alternativos
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 pool.
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 pool aparecerá como UNAVAIL no sistema original porque os dispositivos não estão mais presentes. Por padrão, o sistema de destino não pode importar um pool que não tenha sido exportado explicitamente. Essa condição é necessária para impedir a importação acidental de um pool ativo composto por armazenamentos de rede anexados que ainda estejam sendo utilizados em outro sistema.
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/eric': Device busy # zpool export -f tank
Depois que o comando é executado, o pool 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 pool 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.
Depois que o pool é 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 pool 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 pools 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 pool 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 pool, mas houver redundância disponível suficiente para fornecer um pool utilizável, o pool 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 indisponíveis, o pool não poderá ser importado.
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 poderá determinar quais eram os outros dispositivos que faziam parte do pool, 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.
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 você estiver utilizando pools baseados em 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.
Depois que um pool é identificado para importação, é possível importá-lo especificando o nome do pool ou o seu identificador numérico como um argumento para o comando zpool import. Por exemplo:
# zpool import tank
Se vários pools disponíveis tiverem o mesmo nome, especifique o pool 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 pool 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.
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: none requested config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 logs 2189413556875979854 UNAVAIL 0 0 0 errors: No known data errors
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.
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:
Todos os sistemas e volumes são montados no modo somente leitura.
O processamento de transações do pool é desativado. Isso também significa que qualquer gravação síncrona pendente no log de intenções não será reproduzida até que o pool seja importado no modo leitura-gravação.
As tentativas de definir uma propriedade do pool durante a importação somente leitura são ignoradas.
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
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 Fri Jun 29 16:22:06 2012 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
Embora este pool esteja composto por discos inteiros, o comando deve incluir o identificador de parte do dispositivo específico.
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 pool tank como o pool destruído por causa das seguintes informações de estado:
state: ONLINE (DESTROYED)
Para recuperar o pool destruído, execute o comando zpool import -D novamente com o pool 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 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 pool degradado e, em seguida, tente corrigir a falha do dispositivo. Por exemplo:
# zpool destroy dozer # zpool import -D pool: dozer id: 4107023015970708695 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: dozer DEGRADED raidz2-0 DEGRADED c8t0d0 ONLINE c8t1d0 ONLINE c8t2d0 ONLINE c8t3d0 UNAVAIL cannot open c8t4d0 ONLINE 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 scan: none requested config: NAME STATE READ WRITE CKSUM dozer DEGRADED 0 0 0 raidz2-0 DEGRADED 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 c8t2d0 ONLINE 0 0 0 4881130428504041127 UNAVAIL 0 0 0 c8t4d0 ONLINE 0 0 0 errors: No known data errors # zpool online dozer c8t4d0 # zpool status -x all pools are healthy