Ignorar Links de Navegao | |
Sair do Modo de Exibio de Impresso | |
Guia de administração do ZFS Oracle Solaris |
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 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
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
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.
Determinando pools de armazenamento disponíveis para importação
Importando conjuntos 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 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.
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.
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.
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.
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.
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.
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 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.
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