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
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
Práticas Recomendadas do Pool de Armazenamento
Práticas de Criação do Pool de Armazenamento do ZFS
Práticas Gerais do Pool de Armazenamento
Práticas de Criação do Pool de Raiz
Práticas da Criação do Pool de Não Raiz
Práticas de Criação de Pool nas Matrizes de Armazenamento Anexadas À Rede ou Locais
Práticas de Criação de Pool para um Oracle Database
Usando Pools de Armazenamento do ZFS no VirtualBox
Práticas do Pool de Armazenamento para Desempenho
Práticas de Monitoramento e Manutenção do Pool de Armazenamento do ZFS
Práticas Recomendadas do Sistema de Arquivos
Práticas para Criação do Sistema de Arquivos
Práticas de Criação de Sistema de Arquivos para um Oracle Database
`Práticas para Monitoramento do Sistema de Arquivos do ZFS
As seções a seguir oferecem práticas recomendadas para a criação e o monitoramento de pools de armazenamento do ZFS. Para obter mais informações sobre solução de problemas do pool de armazenamento, consulte o Capítulo 10, Solução de problemas e recuperação de pools do Oracle Solaris ZFS.
Mantenha o sistema atualizado com as versões e patches mais recentes do Solaris
Confirme se o seu controlador cumpre os comandos de descarregamento de cache para conferir se seus dados foram gravados com segurança, o que é importante antes de alterar os dispositivos do pool ou dividir um pool espelhado. Em geral, isso não é problema para um hardware Oracle/Sun, mas é uma boa prática confirmar se a configuração de descarregamento de cache do hardware está ativada.
Requisitos de tamanho de memória para uma carga de trabalho real do sistema
Com um volume de memória conhecido do aplicativo, como para aplicativo do banco de dados, você pode ocultar o tamanho do ARC para que o aplicativo não precise reclamar sua memória necessária no cache do ZFS.
Considere os requisitos de eliminação de duplicação de memória
Identifique o uso de memória do ZFS com o seguinte comando:
# mdb -k > ::memstat Page Summary Pages MB %Tot ------------ ---------------- ---------------- ---- Kernel 388117 1516 19% ZFS File Data 81321 317 4% Anon 29928 116 1% Exec and libs 1359 5 0% Page cache 4890 19 0% Free (cachelist) 6030 23 0% Free (freelist) 1581183 6176 76% Total 2092828 8175 Physical 2092827 8175 > $q
Considere usar a memória de ECC para se proteger contra corrompimento de memória. O corrompimento silencioso da memória pode danificar seus dados.
Execute backups regulares - Embora um pool criado com redundância de ZFS possa ajudar a reduzir o tempo de inatividade devido a falhas de hardware, ele não está imune a falhas de hardware, falhas de alimentação ou cabos desconectados. Faça backup de dados regularmente. Se seus dados forem importantes, faça backup deles. Estas são diferentes formas de fazer cópias de seus dados:
Instantâneos diários ou regulares do ZFS
Backups semanais dos dados do pool do ZFS. Você pode usar o comando zpool split para criar uma duplicata exata do pool de armazenamento espelhado do ZFS.
Backups mensais com o uso de um produto de backup de nível corporativo
RAID de hardware
Considere usar o modo JBOD para matrizes de armazenamento em vez de RAID de hardware, de forma que o ZFS possa gerenciar o armazenamento e a redundância.
Use redundância de RAID ou ZFS, ou ambas
O uso de redundância do ZFS tem muitas vantagens - Para ambientes de produção, cofigure o ZFS para que ele possa corrigir inconsistência de dados. Use a redundância de ZFS, como RAID-Z, RAID-Z-2, RAID-Z-3, espelho, independentemente do nível de RAID implementado no dispositivo de armazenamento subjacente. Com essa redundância, as falhas do dispositivo de armazenamento subjacente ou suas conexões com o host podem ser descobertas e reparadas pelo ZFS.
Além disso, consulte Práticas de Criação de Pool nas Matrizes de Armazenamento Anexadas À Rede ou Locais.
Os dumps de falha consomem mais espaço em disco, geralmente no tamanho 1/2 - 3/4 do intervalo de memória física.
As seções a seguir oferecem práticas de pool gerais e mais específicas.
Use discos inteiros para ativar o cache de gravação em disco e propiciar manutenção mais fácil. A criação de pools em segmentos adiciona complexidade ao gerenciamento e à recuperação do disco.
Use a redundância de ZFS para que o ZFS possa reparar inconsistências de dados.
A mensagem a seguir é exibida quando um pool não redundante é criado:
# zpool create tank c4t1d0 c4t3d0 'tank' successfully created, but with no redundancy; failure of one device will cause loss of the pool
Para pools espelhados, use pares de discos espelhados
Para pools de RAID-Z, agrupe os discos 3 - 9 por VDEV
Não combine componentes espelhados e RAID-S no mesmo pool. Esses pools são mais difíceis de gerenciar e pode haver problemas no desempenho.
Use dispositivos de reserva para reduzir o tempo de inatividade por falhas de hardware
Use discos de tamanho similares para ter equilíbrio e E/S nos dispositivos
LUNs menores podem ser expandidos para LUNs maiores
Não expanda os LUNs de tamanhos extremamente variados, como 128 MB a 2 TB, para manter os tamanhos ideais de metaslab
Considere criar um pequeno pool de raiz e pools de dados maiores para suportar a recuperação mais rápida do sistema
O tamanho mínimo recomendado para o pool é de 8 GB. Embora o tamanho mínimo do pool seja 64 MB, qualquer tamanho inferior a 8 GB pode dificultar a alocação e a solicitação de espaço livre no pool.
O tamanho máximo de pool recomendado deve acomodar com conforto sua carga de trabalho ou tamanho dos dados. Não tente armazenar mais dados a ponto de não conseguir fazer os backups regulares. Caso contrário, seus dados ficarão em risco no caso de eventos imprevistos.
Crie pools de raiz com segmentos usando o identificador s*. Não use o identificador p*. Em geral, um pool de raiz do ZFS do sistema é criado quando o sistema é instalado. Se você estiver criando um segundo pool de raiz ou recriando um pool de raiz, use a sintaxe semelhante à seguinte:
# zpool create rpool c0t1d0s0
Ou crie um pool de raiz espelhado. Por exemplo:
# zpool create rpool mirror c0t1d0s0 c0t2d0s0
O pool raiz deve ser criado como uma configuração espelhada ou uma configuração de disco único. Nem configuração RAID-Z nem configuração com striping é suportada. Não é possível adicionar discos adicionais pra criar vários dispositivos virtuais espelhados de nível superior ao utilizar o comando zpool add, mas é possível expandir um dispositivo virtual espelhado ao utilizar o comando zpool attach.
Um pool raiz não pode possuir um dispositivo de log separado.
É possível definir as propriedades do pool durante uma instalação de AI, mas o algoritmo de compactação gzip não é suportado nos pools de raiz.
Não renomeie o pool raiz após sua criação por uma instalação inicial. Renomear o pool raiz pode resultar em um sistema não inicializável.
Não crie um pool de raiz em um dispositivo USB para um sistema de produção, pois os discos do pool de raiz são críticos para a operação contínua, especificamente em um ambiente corporativo. Considere usar discos internos de um sistema para o pool de raiz, ou pelo menos use discos da mesma qualidade que os que você usaria para dados não raiz. Além disso, um dispositivo USB pode não ser grande o suficiente para suportar um tamanho de volume de dump equivalente a pelo menos metade do tamanho da memória física.
Crie pools não raiz com discos inteiros usando o identificador d*. Não use o identificador p*.
O ZFS funciona melhor sem um software adicional de gerenciamento de volume.
Para obter melhor desempenho, use discos individuais ou pelo menos LUNs feitos de apenas alguns discos. Se o ZFS recebe mais visibilidade na configuração dos LUNs, pode tomar melhores decisões de agendamento de E/S.
Crie configurações de pool redundantes em vários controladores para reduzir o tempo de inatividade devido a uma falha no controlador.
Pools de armazenamento espelhado – Consome mais espaço em disco mas geralmente tem melhor desempenho com leituras aleatórias menores.
# zpool create tank mirror c1d0 c2d0 mirror c3d0 c4d0
Pools de armazenamento de RAID-Z – Pode ser criado com estratégias de 3 paridades, em que a paridade é igual a 1 (raidz), 2 (raidz2) ou 3 (raidz3). Uma configuração RAID-Z maximiza o espaço em disco e geralmente tem melhor desempenho quando os dados são gravados e lidos em blocos maiores (128 K ou mais).
Considere a configuração de um RAID-Z (raidz) único com 2 VDEVs de 3 discos (2+1) cada.
# zpool create rzpool raidz1 c1t0d0 c2t0d0 c3t0d0 raidz1 c1t1d0 c2t1d0 c3t1d0
Uma configuração de RAIDZ-2 oferece melhor disponibilidade de dados e tem desempenho semelhante ao RAID-Z. O RAIDZ-2 tem MTTDL (tempo médio de perda de dados) significativamente melhor que o RAID-Z ou espelhos bidirecionais. Crie uma configuração de RAID-Z (raidz2) de paridade dupla com 6 discos (4+2).
# zpool create rzpool raidz2 c0t1d0 c1t1d0 c4t1d0 c5t1d0 c6t1d0 c7t1d0 raidz2 c0t2d0 c1t2d0 c4t2d0 c5t2d0 c6t2d0 c7t2d
Uma configuração de RAIDZ-3 maximiza o espaço em disco e oferece excelente disponibilidade, pois pode suportar 3 falhas de disco. Crie uma configuração de RAID-Z (raidz2) de paridade dupla com 9 discos (6+3).
# zpool create rzpool raidz3 c0t0d0 c1t0d0 c2t0d0 c3t0d0 c4t0d0 c5t0d0 c6t0d0 c7t0d0 c8t0d0
Considere as práticas de pool de armazenamento a seguir ao criar um pool de armazenamento do ZFS em uma matriz de armazenamento conectada local ou remotamente.
Se você cria um pool em dispositivos SAN e a conexão de rede está lenta, os dispositivos do pool podem ficar UNAVAIL por um tempo. É necessário avaliar se a conexão de rede é apropriada para fornecer seus dados de maneira contínua. Além disso, considere que se você estiver usando dispositivos SAN para seu pool de raiz, talvez eles não fiquem disponíveis assim que o sistema for inicializado e os dispositivos do pool de raiz talvez fiquem UNAVAIL .
Confirme com seu fornecedor de matrizes se a matriz de disco não está descarregando cache depois que o ZFS solicita o cache de gravação de descarga.
Use discos inteiros, e não segmentos de discos, como dispositivos de pool de armazenamento, para que o Oracle Solaris ZFS ative os caches de discos pequenos locais que são descarregados nos momentos adequados.
Para obter melhor resultado, crie um LUN para cada disco físico da matriz. O uso de apenas um LUN grande pode fazer com que o ZFS enfileire poucas operações de E/S para levar realmente o armazenamento ao desempenho ideal. Por outro lado, o uso de LUNs muito pequenos pode ter efeito de sobrecarregar o armazenamento com um número grande de operações pendentes de E/S.
Uma matriz de armazenamento que usa software de provisionamento dinâmico (ou fino) para implementar alocação de espaço virtual não é recomendada para o Oracle Solaris ZFS. Quando o Oracle Solaris ZFS grava os dados modificados no espaço livre, ele grava todo o LUN. O processo de gravação do Oracle Solaris ZFS aloca todo o espaço virtual do ponto de vista da matriz de armazenamento, que nega o benefício de provisionamento dinâmico.
Considere que o software de provisionamento dinâmico pode ser desnecessário no uso do ZFS:
Você pode expandir um LUN em um pool de armazenamento de ZFS existente e ele usará o novo espaço.
Comportamento semelhante ocorre quando um LUN menor é substituído por um LUN maior.
Se você avaliar as necessidades de armazenamento para seu pool e criar o pool com LUNs menores com as mesmas necessidades de armazenamento, poderá sempre expandir os LUNs para um tamanho maior, caso precise de mais espaço.
Se a matriz puder apresentar dispositivos individuais (modo JBOD), considere criar pools redundantes de armazenamento de ZFS (espelho ou RAID-Z) nesse tipo de matriz, para que o ZFS possa reportar e corrigir inconsistências de dados.
Considere as seguintes práticas de pool de armazenamento ao criar um banco de dados Oracle.
Use um pool espelhado ou RAID de hardware para pools
Os pools RAID-Z geralmente não são recomendados para cargas de trabalho aleatórias de leitura.
Crie um pool pequeno separado com um dispositivo de log à parte para logs de redo do banco de dados.
Crie um pool pequeno separado para o log de arquivamento
Para obter mais informações, consulte o documento a seguir:
http://blogs.oracle.com/storage/entry/new_white_paper_configuring_oracle
O Virtual Box foi configurado para ignorar os comandos de descarga de cache do armazenamento subjacente por padrão. Isso significa que no caso de uma falha no sistema ou de hardware, os dados podem ser perdidos.
Ative a descarga de cache no Virtual Box emitindo este comando:
VBoxManage setextradata <VM_NAME> "VBoxInternal/Devices/<type>/0/LUN#<n>/Config/IgnoreFlush" 0
<VM_NAME> é o nome da máquina virtual
<type> é o tipo de controlador, piix3ide (se você estiver usando o controlador virtual IDE comum) ou ahci, se estiver usando um controlador SATA
<n>é o número do disco
Mantenha a capacidade abaixo de 80% para obter melhor desempenho
Os pools espelhados são recomendados em pools de RAID-Z para cargas de trabalho aleatórias de leitura/gravação
Dispositivos de log separados
Recomendado para aprimorar o desempenho síncrono de gravação
Uma carga de gravação síncrona alta impede a fragmentação de gravação de vários blocos no pool principal
É recomendável separar os dispositivos de cache para melhorar o desempenho de leitura
Scrub/resilver - Um pool RAID-Z muito grande, com vários dispositivos, terá operações mais longas de scrub e resilver
O desempenho do pool está baixo – Use o comando zpool status para eliminar quaisquer problemas de hardware que prejudiquem o desempenho do pool. Se o comando zpool status não mostrar problemas, use o comando fmdump para exibir as falhas de hardware ou o comando fmdump -eV para revisar os erros de hardware que ainda não tenham gerado um relatório de falhas.
Verifique se a capacidade do pool está abaixo de 80% para obter o melhor desempenho.
O desempenho do pool pode ser prejudicado quando ele está muito cheio e os sistemas de arquivos são atualizados frequentemente, como ocorre com um servidor de e-mails ocupado. Pools cheios podem causar problemas de desempenho, mas não outras falhas. Se a carga de trabalho principal for de arquivos imutáveis, mantenha o pool no intervalo de utilização de 95-96%. Mesmo com a maioria do conteúdo estático no intervalo de 95 a 96%, poderá haver problemas no desempenho de leitura, gravação e polimento.
Monitore o espaço do pool e do sistema de arquivos para verificar se eles não estão cheios.
Considere usar cotas e reservas para assegurar que o espaço do sistema de arquivos não ultrapasse a capacidade de pool de 80%.
Monitore a integridade do pool
Em pools redundantes, monitore os pools com zpool status e fmdump semanalmente.
Em pools não redundantes, monitore os pools com zpool status e fmdump duas vezes por semana.
Execute zpool scrub regularmente para identificar problemas de integridade de dados.
Se você tiver unidades de qualidade do consumidor, considere uma programa de scrub semanal.
Se você tiver unidades de qualidade do datacenter, considere uma programa de scrub mensal.
Execute também uma operação de scrub antes de substituir dispositivos ou reduzir temporariamente uma redundância de pool para garantir que todos os dispositivos fiquem operacionais no momento.
Monitorando falhas de pool ou dispositivos - Use zpool status, como descrito abaixo. Além disso, use fmdump ou fmdump -eV para verificar se ocorreram falhas ou erros nos dispositivos.
Em pools redundantes, monitore a integridade dos pools com zpool status e fmdump semanalmente.
Em pools não redundantes, monitore a integridade dos pools com zpool status e fmdump duas vezes por semana.
O dispositivo do pool está UNAVAIL ou OFFLINE – Se um dispositivo de pool não estiver disponível, verifique se ele está listado na saída do comando format. Se o dispositivo não estiver listado na saída format, não ficará visível para o ZFS.
Se um dispositivo de pool estiver UNAVAIL ou OFFLINE, isso geralmente significa que o dispositivo falhou ou o cabo foi desconectado, ou algum outro problema de hardware, como cabo ou controlador danificado, tornou o dispositivo inacessível.
Monitore o espaço do pool de armazenamento – Use o comando zpool list e o comando zfs list para identificar o quanto o disco foi consumido pelos dados do sistema de arquivos. Os instantâneos do ZFS podem consumir espaço em disco e se não estiverem listados pelo comando zfs list, podem consumir silenciosamente espaço em disco. Use o comando do instantâneo zfs list -t para identificar o espaço em disco consumido por instantâneos.