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)
Novos recursos de instalação do Oracle Solaris ZFS
Aprimoramentos no fluxo de envio do ZFS
Diferenças do instantâneo do ZFS (zfs diff)
Recuperação do pool de armazenamento do ZFS e aprimoramentos no desempenho
Ajuste do comportamento síncrono do ZFS
Mensagens aprimoradas do pool ZFS
Aprimoramentos de interoperabilidade ACL do ZFS
Dividindo um conjunto de armazenamento do ZFS espelhado (zpool split)
Aprimoramentos no comando zpool list
Recuperação do conjunto de armazenamento do ZFS
Aprimoramentos no dispositivo de log do ZFS
RAID-Z de paridade tripla (raidz3)
Aprimoramentos de substituição de dispositivo do ZFS
Suporte de instalação do ZFS e Flash
Cotas de usuário e grupo do ZFS
Herança ACL de passar para permissões de executar ZFS
Aprimoramentos de propriedades do ZFS
Recuperação do dispositivo de registro do ZFS
Utilizando dispositivos de cache no conjunto de armazenamento do ZFS
Migração de região em um ambiente do ZFS
Suporte à inicialização e instalação do ZFS
Revertendo um conjunto de dados sem desmontar
Aprimoramentos no comando zfs send
Cotas e reservas do ZFS somente para dados do sistema de arquivos
Propriedades do pool de armazenamento do ZFS
Aprimoramentos no histórico do comando do ZFS (zpool history)
Atualizando os sistemas de arquivos do ZFS (zfs upgrade)
Configurando dispositivos de log do ZFS separados
Criando conjuntos de dados do ZFS intermediários
Aprimoramentos de conexão automática do ZFS
Renomear recursivamente instantâneos do ZFS (zfs rename -r)
gzip A compactação está disponível para ZFS
Armazenamento de várias cópias de dados de usuário do ZFS
Aprimoramentos na iSCSI do Solaris e ZFS
Histórico do comando ZFS (zpool history)
Melhorias das propriedades do ZFS
Propriedades de usuário do ZFS
Definindo propriedades ao criar sistemas de arquivos do ZFS
Exibindo todas as informações do sistema de arquivos do ZFS
Instantâneos recursivos do ZFS
RAID-Z de paridade dupla (raidz2)
Sobressalentes para dispositivos do pool de armazenamento do ZFS
Substituindo um sistema de arquivos do ZFS por um clone do ZFS (zfs promote)
Atualizando conjuntos de armazenamento do ZFS (zpool upgrade)
Comandos de restauração e backup do ZFS renomeados
Recuperando conjuntos de armazenamento destruídos
O ZFS é integrado com o gerenciador de falhas
Somas de verificação e autocorreção de dados
Requisitos para nomeação de componentes do ZFS
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
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
Esta seção resume os novos recursos do sistema de arquivos ZFS.
Diferenças do instantâneo do ZFS (Diferenças do instantâneo do ZFS (zfs diff))
Recuperação do pool de armazenamento do ZFS e aprimoramentos no desempenho
Dividindo um conjunto de armazenamento do ZFS espelhado (zpool split)
Utilizando dispositivos de cache no conjunto de armazenamento do ZFS
Cotas e reservas do ZFS somente para dados do sistema de arquivos
Aprimoramentos no histórico do comando do ZFS (zpool history)
Sobressalentes para dispositivos do pool de armazenamento do ZFS
Substituindo um sistema de arquivos do ZFS por um clone do ZFS (zfs promote)
Atualizando conjuntos de armazenamento do ZFS (zpool upgrade)
Oracle Solaris 10 8/11: Nesta versão, os novos recursos de instalação a seguir estão disponíveis:
Você pode usar o método de instalação no modo de texto para instalar um sistema com um arquivo flash ZFS. Para obter mais informações, consulte o Exemplo 5-3.
Você pode usar o comando luupgrade do Oracle Solaris Live Upgrade para instalar um arquivo flash raiz ZFS. Para obter mais informações, consulte o Exemplo 5-8.
Você pode usar o comando lucreate do Oracle Solaris Live Upgrade para especificar um sistema de arquivos /var separado. Para obter mais informações, consulte o Exemplo 5-5.
Oracle Solaris versão 10 8/11: Nesta versão, você pode definir propriedades do sistema de arquivos que são enviadas e recebidas em um fluxo de instantâneo. Esses aprimoramentos oferecem flexibilidade na aplicação de propriedades do sistema em um fluxo de envio para o sistema de arquivos de recebimento ou ao determinar se as proprieddaes do sistema de arquivos local, como o valor de propriedade mountpoint, devem ser ignorados quando recebidos.
Para obter mais informações, consulte Aplicação de valores de propriedade diferentes a um fluxo de instantâneos do ZFS.
Oracle Solaris versão 10 8/11: Nesta versão, você pode determinar diferenças do instantâneo ZFS usando o comando zfs diff.
Por exemplo, considere que estes dois instantâneos sejam criados:
$ ls /tank/cindy fileA $ zfs snapshot tank/cindy@0913 $ ls /tank/cindy fileA fileB $ zfs snapshot tank/cindy@0914
Por exemplo, para identificar as diferenças entre dois instantâneos, use sintaxe semelhante à seguinte:
$ zfs diff tank/cindy@0913 tank/cindy@0914 M /tank/cindy/ + /tank/cindy/fileB
Na saída, M indica que o diretório foi modificado. + indica que fileB existe no instantâneo posterior.
Para obter mais informações, consulte Identificação de diferenças do instantâneo do ZFS (zfs diff.
Oracle Solaris versão 10 8/11: Nesta versão, os seguintes novos recursos do pool de armazenamento ZFS são fornecidos:
Você pode importar um pool com um log ausente usando o comando zpool import -m. Para obter mais informações, consulte Importação de um pool com um dispositivo de log ausente.
Você pode importar um pool no modo somente leitura. Este recurso é principalmente para recuperação do pool. Se um pool danificado não puder ser acessado porque os dispositivos subjacentes estão danificados, você poderá importar o pool somente leitura para recuperar os dados. Para obter mais informações, consulte Importação de um pool no modo somente leitura.
Um pool de armazenamento RAID-Z (raidz1, raidz2 ou raidz3)que é criado nesta versão e atualizado para pelo menos a versão do pool 29 terá alguns metadados sensíveis à latência espelhados automaticamente para aprimorar o desempenho de transferência de E/S de leitura. Para pools RAID-Z existentes atualizados para pelo menos o pool versão 29, alguns metadados serão espelhados para todos os dados recém-gravados.
Os metadados espelhados em um pool RAID-Z não fornece proteção adicional contra falhas de hardware, semelhante ao que um pool de armazenamento espelhado oferece. Espaço adicional é consumido por metadados espelhados, mas a proteção RAID-Z permanece igual à de versões anteriores. Este aprimoramento é para fins de desempenho apenas.
Solaris versão 10 8/11: Nesta versão, você pode determinar o comportamento síncrono de um sistema de arquivos ZFS usando a propriedade sync.
O comportamento síncrono padrão é gravar todas as transações do sistema de arquivos síncronas no log de intenção e descarregar todos os dispositivos para garantir que os dados estejam estáveis. A desativação do comportamento síncrono padrão não é recomendada. Aplicativos que dependem de suporte síncrono podem ser afetados e pode ocorrer perda de dados.
A propriedade sync pode ser configurada antes ou após a criação do sistema de arquivos. Em qualquer dos casos, o valor de propriedade é efetivado imediatamente. Por exemplo:
# zfs set sync=always tank/neil
O parâmetro zil_disable não está mais disponível nas versões do Oracle Solaris que incluem a propriedade sync.
Para obter mais informações, consulte a Tabela 6-1.
Oracle Solaris versão 10 8/11: Nesta versão, você pode usar a opção -T para oferecer um intervalo e valor de contagem para os comandos zpool list e zpool status para exibir informações adicionais.
Além disso, mais informações de scrub (escovação) e resilver (polimento) do pool são fornecidas pelo comando zpool status, conforme a seguir:
Relatório de andamento do polimento. Por exemplo:
scan: resilver in progress since Thu May 26 11:26:32 2011 1.26G scanned out of 2.40G at 6.15M/s, 0h3m to go 1.26G resilvered, 56.3% done
Relatório de andamento de depuração. Por exemplo:
scan: scrub in progress since Fri May 27 08:24:17 2011 18.0M scanned out of 2.35G at 8.99M/s, 0h4m to go 0 repaired, 0.75% done
Mensagem de conclusão de polimento. Por exemplo:
scan: resilvered 2.34G in 1h2m with 0 errors on Thu May 26 11:56:40 2011
Mensagem de conclusão de depuração. Por exemplo:
scan: scrub repaired 512B in 1h2m with 0 errors on Fri May 27 08:54:50 2011
Mensagem de cancelamento de depuração em andamento. Por exemplo:
scan: scrub canceled on Wed Fri Jun 10 09:06:24 2011
Mensagens de finalização de escovação e de polimento persistem através das reinicializações do sistema
As seguinte sintaxe usa o intervalo e a opção de contagem para exibir informações constantes de polimento do pool. Você pode usar o valor -T d para exibir as informações no formato de data padrão ou -T u para exibir as informações em um formato interno.
# zpool status -T d tank 3 2 Wed Jun 22 14:35:40 GMT 2011 pool: tank state: ONLINE status: One or more devices is currently being resilvered. The pool will continue to function, possibly in a degraded state. action: Wait for the resilver to complete. scan: resilver in progress since Wed Jun 22 14:33:29 2011 3.42G scanned out of 7.75G at 28.2M/s, 0h2m to go 3.39G resilvered, 44.13% done config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c2t7d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 (resilvering) errors: No known data errors
Oracle Solaris versão 10 8/11: Nesta versão, os seguintes aprimoramentos da ACL são fornecidos:
ACLs triviais não exigem ACEs negadas, exceto para permissões não usuais. Por exemplo, um modo de 0644, 0755 ou 0664 não precisa de ACEs negadas, mas modos como 0705, 0060, e assim por diante, exigem ACEs negadas.
O comportamento antigo inclui ACEs negadas em qualquer ACL trivial, como 644. Por exemplo:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 14 11:52 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
O novo comportamento para um ACL trivial, como 644, não inclui as ACEs negadas. Por exemplo:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 22 14:30 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
ACLs não são mais divididas em várias ACEs durante a herança para tentar preservar a permissão não modificada original. Em vez disso, as permissões são modificadas conforme necessário para impor o modo de criação de arquivo.
O comportamento da propriedade aclinherit inclui uma redução de permissões quando a propriedade é definida como restricted, o que significa que as ACLs não são mais divididas em várias ACEs durante a herança.
Uma ACL existente é descartada durante operações chmod(2) por padrão. Essa alteração significa que a propriedade aclmode ZFS não está mais disponível.
Uma nova regra de cálculo do modo de permissão especifica que, se uma ACL tiver uma ACE de usuário que também seja o proprietário do arquivo, então essas permissões serão incluídas no cálculo do modo de permissão. A mesma regra será aplicada se uma ACE ao grupo for o proprietário do grupo do arquivo.
Para obter mais informações, consulte Capítulo 8Uso de ACLs e atributos para proteger arquivos ZFS do Oracle Solaris.
Versão 10 9/10 do Oracle : nessa versão do Solaris, você pode utilizar o comandozpool split para dividir um conjunto de armazenamento espelhado, o que desanexa um disco ou discos do conjunto espelhado original para criar outro conjunto idêntico.
Para maiores informações, consulte Criando um novo conjunto ao dividir um conjunto de armazenamento ZFS espelhado.
Versão 10 9/10 do Oracle : nessa versão do Solaris, cada conjunto de armazenamento do ZFS possui um processo associado, zpool-poolname. Os segmentos nesse processo são os segmentos de processamento de E/S do conjunto que manipulam tarefas de E/S tais como compactação e validação da soma de verificação, que estão associadas ao pool. O propósito deste processo é fornecer visibilidade em cada utilização da CPU do conjunto de armazenamento.
Informações sobre estes processos em execução podem ser revisadas utilizando os comandos ps e prstat. Estes processos só estão disponíveis em uma região global. Para obter mais informações, consulte SDC(7).
Versão 10 9/10 do Oracle : nessa versão do Solaris, a saída zpool list mudou para oferecer melhores informações de alocação de espaço. Por exemplo:
# zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 136G 55.2G 80.8G 40% ONLINE -
Os campos USED e AVAIL anteriores foram substituídos por ALLOC e FREE.
O campo ALLOC identifica a quantidade de espaço físico alocado para todos os conjuntos de dados e metadados internos. O campo FREE identifica a quantidade de espaço não alocada no conjunto.
Para maiores informações, consulte, Exibindo informações sobre os conjuntos de armazenamento ZFS.
Oracle Solaris versão 10 9/10: um pool de armazenamento pode ser danificado se dispositivos subjacentes ficarem indisponíveis, se ocorrer uma falha de energia ou se mais que o número suportado de dispositivos falharem em uma configuração ZFS redundante. Essa versão oferece novos recursos de comandos para recuperar seu conjunto de armazenamento danificado. No entanto, utilizar esse recurso de recuperação significa que as últimas transações que ocorreram previamente à interrupção do conjunto podem ser perdidas.
Ambos os comandos zpool clear e zpool import suportam a opção -F para possivelmente recuperar o conjunto danificado. Além disso, a execução dos comandos zpool status, zpool clear ou zpool import reporta automaticamente um pool danificado, e esses comandos descrevem como recuperá-lo.
Para mais informações, consulte Reparando o dano de todo o pool de armazenamento do ZFS.
Oracle Solaris versão 10 9/10: estão disponíveis os seguintes aprimoramentos de dispositivo de log:
A propriedade logbias - pode ser utilizada para instruir o ZFS sobre como manipular as solicitações sincronizadas para um conjunto de dados específico. Se logbias estiver definida como latência, o ZFS utiliza os dispositivos de log separados do conjunto, se houver algum, para manipular as solicitações em baixa latência. Se logbias estiver definida como throughput, o ZFS não utiliza os dispositivos de log separados do conjunto. Em vez disso, o ZFS otimiza operações síncronas para throughput de conjunto global e uso eficiente de recursos. O valor padrão é latência. Para a maioria das configurações, é recomendado o valor padrão. Utilizar o valor logbias=throughput pode melhorar o desempenho da gravação de arquivos de banco de dados.
Remoção do dispositivo de log: agora é possível remover um dispositivo de log de um conjunto de armazenamento do ZFS utilizando o comando zpool remove. Você pode remover um único dispositivo de log especificando o nome do dispositivo. Você pode remover um dispositivo de log espelhado especificando um espelhamento de nível superior para o log. Quando você remove um dispositivo de log separado do sistema, os registros de transação ZIL são gravados no pool principal.
Os dispositivos virtuais de nível superior redundantes são agora identificados por um identificador em numérico. Por exemplo, em um conjunto de armazenamento espelhado de dois discos, o dispositivo virtual de nível superior é mirror-0. Esse aprimoramento significa que um dispositivo de log espelhado pode ser removido especificando seu identificador numérico.
Para obter mais informações, consulte o Exemplo 4-3.
Oracle Solaris versão 10 9/10: Nessa versão, uma configuração RAID-Z redundante agora pode possuir proteção de paridade única, dupla ou tripla, o que significa que uma, duas ou três falhas de dispositivo podem ser sustentadas respectivamente, sem qualquer perda de dados. Você pode especificar a palavra-chave raidz3 para uma configuração de RAID-Z de paridade tripla. Para mais informações, consulte Criando um conjunto de armazenamento RAID-Z.
Oracle Solaris versão 10 9/10: se implementar diferentes políticas de instantâneo automáticas de maneira que instantâneos mais antigos estejam sendo inadvertidamente destruídos por zfs receive por não existirem mais no lado de envio, você pode considerar utilizar o recurso de contenção de instantâneos nessa versão.
A preservação de instantâneos impede que os mesmos sejam destruídos. Além disso, esse recurso permite que um instantâneo com clones seja excluído, ficando pendente a remoção do último clone utilizando o comando zfs destroy -d.
É possível conter um instantâneo ou conjunto de instantâneos. Por exemplo, a sintaxe a seguir coloca uma marcação de contenção, keep, em tank/home/cindy/snap@1 :
# zfs hold keep tank/home/cindy@snap1
Para mais informações, consulte Contendo instantâneos do ZFS.
Oracle Solaris versão 10 9/10: Nesta versão, um evento do sistema ou sysevent é fornecido quando os discos em um pool são substituídos por discos maiores. O ZFS foi aprimorado para reconhecer esses eventos e ajustar o conjunto com base no novo tamanho do disco, dependendo da configuração da propriedade autoexpand. Você pode usar a propriedade do pool autoexpand para ativar ou desativar a expansão automática do pool quando um disco maior substituir um disco menor.
Esses aprimoramentos permitem aumentar o tamanho do pool sem precisar exportar e importar o pool ou reinicializar o sistema.
Por exemplo, a expansão LUN automática é ativada no conjunto tank.
# zpool set autoexpand=on tank
Ou você pode criar o conjunto com a propriedade autoexpand ativada.
# zpool create -o autoexpand=on tank c1t13d0
A propriedade autoexpand é desativada por padrão, portanto você pode decidir se deseja que o tamanho do pool seja expandido quando um disco maior substituir um disco menor.
O tamanho do pool também pode ser expandido utilizando o comando zpool online - e. Por exemplo:
# zpool online -e tank c1t6d0
É possível redefinir a propriedade autoexpand depois de o LUN ser anexado ou disponibilizado com a utilização do comando zpool replace. Por exemplo, o conjunto a seguir é criado com um disco de 8 GB (c0t0d0). O disco de 8 GB é substituído por um disco de 16 GB (c1t13d0), mas o tamanho do conjunto não é expandido até que a propriedade autoexpand seja ativada.
# zpool create pool c0t0d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace pool c0t0d0 c1t13d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 91.5K 8.44G 0% ONLINE - # zpool set autoexpand=on pool # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 91.5K 16.8G 0% ONLINE -
Outra maneira de expandir o disco sem ativar a propriedade autoexpand é utilizar o comando zpool online - e mesmo que o dispositivo já esteja on-line. Por exemplo:
# zpool create tank c0t0d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace tank c0t0d0 c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 91.5K 8.44G 0% ONLINE - # zpool online -e tank c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 16.8G 90K 16.8G 0% ONLINE -
Os aprimoramentos adicionais de substituição de dispositivo nesta versão incluem o seguinte:
Em versões anteriores, o ZFS não conseguia substituir um disco existente por outro disco ou anexar um disco se o disco de substituição fosse de um tamanho ligeiramente diferente. Nessa versão, é possível substituir um disco existente por outro disco ou anexar um novo disco que seja quase do mesmo tamanho, desde que o pool não esteja cheio.
Nesta versão, não é necessário reinicializar o sistema ou exportar e importar um pool para expandir o tamanho do pool. Conforme descrito anteriormente, você pode ativar a propriedade autoexpand ou utilizar o comando zpool online -e para expandir o tamanho do pool.
Para obter informações sobre a substituição de dispositivos, consulte Substituindo dispositivos em um pool de armazenamento.
Versão 10 10/09 do : nessa versão do Solaris, é possível configurar um perfil JumpStart para identificar um arquivo Flash de um conjunto raiz ZFS. Para mais informações, consulte Instalando um sistema de arquivos raiz ZFS (instalação de arquivo do Oracle Solaris Flash).
Versão 10 10/09 do : em versões anteriores do Solaris, você podia aplicar cotas e reservas para um sistema de arquivos ZFS para gerenciar e reservar espaço em disco.
Nessa versão do , é possível definir uma cota na quantidade de espaço em disco utilizado por arquivos que pertencem a um determinado usuário ou grupo. Você pode considerar definir cotas de usuário e grupo em um ambiente com um grande número de usuários ou grupos.
É possível definir uma cota de usuário utilizando a propriedade zfs userquota. Para definir uma cota de grupo, utilize a propriedade zfs groupquota. Por exemplo:
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins
Você pode exibir o valor de cota atual de um usuário ou grupo como a seguir:
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local
Você pode exibir informações gerais de cota, conforme a seguir:
# zfs userspace tank/data TYPE NAME USED QUOTA POSIX User root 3K none POSIX User user1 0 5G
# zfs groupspace tank/staff/admins TYPE NAME USED QUOTA POSIX Group root 3K none POSIX Group staff 0 10G
É possível exibir a utilização de espaço de um usuário individual visualizando o valor de propriedade userused@user. É possível exibir a utilização de espaço de diso de um grupo visualizando o valor da propriedade groupused@ group. Por exemplo:
# zfs get userused@user1 tank/staff NAME PROPERTY VALUE SOURCE tank/staff userused@user1 213M local # zfs get groupused@staff tank/staff NAME PROPERTY VALUE SOURCE tank/staff groupused@staff 213M local
Para mais informações sobre como definir cotas de usuário, consulte Definindo cotas e reservas do ZFS.
Solaris versão 10 10/09: em versões anteriores, era possível aplicar a herança de ACL para que todos os arquivos fossem criados com as permissões 0664 ou 0666. Nessa versão, se você quiser opcionalmente incluir o bit executar do modo de criação de arquivo no ACL herdado, é possível definir o modo aclinherit para passar a permissão de executar ao ACL herdado.
Se aclinherit=passthrough-x estiver ativado em um conjunto de dados ZFS, você pode incluir a permissão de execução para um arquivo de saída que seja gerado a partir das ferramentas de compilação cc ou gcc. Se a ACL herdada não inclui permissões de execução, então a saída executável do compilador não será executável até o uso do comando chmod para alterar as permissões do arquivo.
Para obter mais informações, consulte o Exemplo 8-12.
Solaris versão 10 10/09 e Oracle Solaris versão 10 9/10: os aprimoramentos do sistema de arquivos ZFS a seguir foram incluídos nestas versões.
Aprimoramentos de propriedade de fluxo de instantâneos do ZFS: é possível definir uma propriedade recebida que seja diferente de sua configuração de propriedade local. Por exemplo, é possível receber um fluxo com a propriedade de compactação desativada, mas você deseja a compactação ativada no sistema de arquivos recebedor. Isso significa que o fluxo recebido possui um valor de compactação recebido de off e um valor de compactação local deon. Uma vez que o valor local ignora o valor recebido, não é necessário se preocupar com a configuração no lado de envio substituindo o valor do lado recebido. O comando zfs get mostra o valor efetivo da propriedade de compactação na coluna VALUE.
As novas propriedades e opções de comando do ZFS para suportar valores de propriedade locais e de envio são como a seguir:
Utilize o zfs inherit - S para reverter um valor de propriedade local para o valor recebido, se houver algum. Se uma propriedade não possuir um valor recebido, o comportamento do comando zfs inherit - S é o mesmo do comando zfs inherit sem a opção- S. Se a propriedade não possuir um valor recebido, o comando zfs inherit mascara o valor recebido com o valor herdado até que a emissão de um comando zfs inherit -S o reverta para o valor recebido.
É possível utilizar o zfs get -o para incluir a nova coluna RECEIVED não padrão. Ou utilize o comando zfs get -o all para incluir todas as colunas, inclusive a RECEIVED.
É possível utilizar a opção zfs send -p para incluir propriedades no fluxo de envio sem a opção -R.
Além disso, é possível utilizar a opção zfs send -e para utilizar o último elemento do nome do instantâneo enviado para determinar o novo nome do instantâneo. O exemplo a seguir envia o instantâneo poola/bee/cee@1 ao sistema de arquivos poold/eee e utiliza somente o último elemento (cee@1) do nome do instantâneo para criar o instantâneo e o sistema de arquivos recebido.
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 - 21K - # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 - 21K -
Definindo as propriedades do sistema de arquivos do ZFS no momento da criação do conjunto: é possível definir as propriedades do sistema de arquivos do ZFS quando o conjunto é criado. No exemplo a seguir, a compactação é ativada no sistema de arquivos do ZFS que é criado quando o conjunto é criado:
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0
Definindo as propriedades do cache em um sistema de arquivos do ZFS: duas novas propriedades do sistema de arquivos do ZFS permitem que você controle o que é armazenado em cache no cache primário (ARC) e no cache secundário (L2ARC). As propriedades do cache são definidas como segue:
primarycache – Controla o que é colocado no cache no ARC.
secondarycache – Controla o que é colocado no cache no L2ARC.
Os valores possíveis para ambas as propriedades – all, none e metadata. Se forem definidas como todos, os dados do usuário e os metadados serão armazenados em cache. Se forem definidas como nenhum, nem os dados do usuário nem os metadados serão armazenados em cache. Se forem definidas como metadados, somente os metadados serão armazenados em cache. O padrão e all.
É possível definir essas propriedades em um sistema de arquivos existente ou quando um sistema de arquivos é criado. Por exemplo:
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab
Quando essas propriedades são definidas no sistema de arquivos existente, somente E/S nova é armazenada em cache com base no valor dessas propriedades.
Alguns ambientes de banco de dados podem se beneficiar de não colocar os dados do usuário no cache. É necessário determinar se as definições das propriedades do cache são apropriadas para seu ambiente.
Visualizar propriedades de contabilidade de espaço em disco: novas propriedades de sistema de arquivos de somente leitura lhe ajudam a identificar o uso do espaço em disco para clones, sistemas de arquivos, volumes e instantâneos. As propriedades são as seguintes:
usedbychildren: identifica a quantidade de espaço em disco utilizado pelos filhos desse conjunto de dados, que seria liberado se todos os filhos do conjunto de dados fossem destruídos. A abreviatura da propriedade é usedchild.
usedbydataset: identifica a quantidade de espaço em disco utilizado por esse próprio conjunto de dados, que seria liberado se o conjunto de dados fosse destruído, depois de primeiramente destruir quaisquer instantâneos e remover quaisquer reservas. A abreviatura da propriedade é usedds.
usedbyrefreservation: identifica a quantidade de espaço em disco utilizado por uma reserva definida nesse conjunto de dados, que seria liberado se a reserva fosse removida. A abreviatura da propriedade é usedrefreserv.
usedbysnapshots: identifica a quantidade de espaço em disco utilizado por instantâneos desse conjunto de dados, que seria liberado se todos os instantâneos do conjunto de dados fossem destruídos. Observe que essa não é a soma das propriedades utilizadas do instantâneo, porque o espaço em disco pode ser compartilhado por instantâneos múltiplos. A abreviatura da propriedade é usedsnap.
Essas novas propriedades discriminam o valor da propriedade utilizado nos diversos elementos que consomem espaço em disco. Em particular, o valor da propriedade utilizado é discriminado como a seguir:
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots
É possível visualizar essas propriedades ao utilizar o comando zfs list - o space. Por exemplo:
$ zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0
O comando acima é equivalente ao comando zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume.
Listando instantâneos: a propriedade listsnapshots do conjunto controla se a exibição das informações do instantâneo estão exibidos pelo comando zfs list. O valor padrão é on, o que significa que as informações do instantâneo são exibidas por padrão.
Se seu sistema possuir muitos instantâneos do ZFS e você desejar desativar a exibição das informações do instantâneo no comando zfs list, desabilite o listsnapshots devidamente como a seguir:
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool
Se você desativar a propriedade listsnapshots, é possível utilizar o comando zfs list -t snapshots para listar as informações do instantâneo. Por exemplo:
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K - 22K - pool/home/user1@today 0 - 18K - pool/home/user2@today 0 - 18K - pool/home/user3@today 0 - 18K -
Versão 10 10/09 do Solaris: nessa versão, o ZFS identifica as falhas de log intencionais na saída do comando zpool status. A Fault Management Architecture (FMA) também reporta esses erros. O ZFS e o FMA descrevem como recuperar uma falha de log intencional.
Por exemplo, se o sistema for desligado abruptamente antes que as operações de gravação síncrona sejam validadas para um conjunto com um dispositivo de log separado, você verá mensagens semelhantes as seguintes:
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open
É possível solucionar a falha do dispositivo de log das seguintes maneiras:
Substitua ou recupere o dispositivo de registro. Neste exemplo, o dispositivo é c0t5d0.
Coloque o dispositivo de registro de volta on-line.
# zpool online pool c0t5d0
Redefina a condição de erro do dispositivo de log falho.
# zpool clear pool
Se desejar recuperar esse erro sem substituir o dispositivo de log falho, é possível limpar o erro com o comando zpool clear. Nesse cenário, o conjunto irá operar em um modo degradado e os logs serão gravados no conjunto principal até que o dispositivo de log separado seja substituído.
Considere o uso de dispositivos de log espelhados para evitar o cenário de falha do dispositivo de log.
Versão 10 10/09 do Solaris: nessa versão, ao criar um conjunto é possível especificar dispositivos de cache, que são utilizados para armazenar em cache dados do conjunto de armazenamento.
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.
Um ou mais dispositivos de cache podem ser especificados quando se cria o conjunto. Por exemplo:
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 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 conjunto depois dele ser criado.
Para mais informações, consulte Criando um conjunto de armazenamento do ZFS com dispositivos de cache e Exemplo 4-4.
Versão 10 5/09 do Solaris: essa versão amplia o suporte à migração de regiões em um ambiente do ZFS com o Oracle Solaris Live Upgrade. Para mais informações, consulte Utilizando o Oracle Solaris Live Upgrade para migrar ou atualizar um sistema com regiões (no mínimo Solaris 10 5/09).
Para obter uma lista dos problemas conhecidos dessa versão, consulte as notas de versão do Solaris 10 5/09.
Versão 10 10/08 do Solaris 10: essa versão permite que você instale e inicialize um sistema de arquivos raiz do ZFS. Você pode usar a opção de instalação inicial ou o recurso JumpStart para instalar um sistema de arquivos raiz ZFS. Ou você pode utilizar o recurso Oracle Solaris Live Upgrade para migrar um sistema de arquivos raiz do UFS para um sistema de arquivos raiz do ZFS. O suporte do ZFS para dispositivos de permuta e despejo também é oferecido. Para mais informações, consulte Capítulo 5Instalando e inicializando um sistema de arquivos raiz ZFS do Oracle Solaris.
Para obter uma lista de problemas conhecidos dessa versão, visite o site a seguir:
http://hub.opensolaris.org/bin/view/Community+Group+zfs/boot
Consulte também as notas de versão do Solaris 10 10/08.
Versão 10 10/08 do Solaris: essa versão permite que você reverta um conjunto de dados sem desmontá-lo primeiro. Dessa forma, a opção zfs rollback - f não é mais necessária para forçar uma operação de desmontagem. A opção -f não possui mais suporte e é ignorada se for especificada.
Versão 10 10/08 do Solaris: essa versão inclui os aprimoramentos a seguir no comando zfs send. Ao utilizar esse comando, é possível efetuar as tarefas a seguir:
Enviar todos os fluxos incrementais de um instantâneo para um instantâneo cumulativo. Por exemplo:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo
Essa sintaxe envia todos os instantâneos incrementais entre fs@snapA e fs@snapD para fs@combo.
Enviar um fluxo incremental de um instantâneo original para criar um clone. O instantâneo original já deve existir no lado de recepção para aceitar o fluxo incremental. Por exemplo:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I
Enviar um fluxo de replicação de todos os sistemas de arquivos descendentes até os instantâneos com nome. Quando recebidos, todas as propriedades, instantâneos, sistemas de arquivo descendentes e clones são preservados. Por exemplo:
# zfs send -R pool/fs@snap > snaps/fs-R
Para um exemplo mais amplo, consulte o Exemplo 7-1.
Enviar um fluxo de replicação incremental. Por exemplo:
# zfs send -R -[iI] @snapA pool/fs@snapD
Para um exemplo mais amplo, consulte o Exemplo 7-1.
Para mais informações, consulte Enviando e recebendo fluxos complexos de instantâneos do ZFS.
Versão 10 10/08 do Solaris: além dos recursos de reserva e cota do ZFS, essa versão inclui as cotas e reservas do conjunto de dados que não incluem descendentes, tais como instantâneos e clones, na contabilidade do espaço em disco.
A propriedade refquota impõe um limite rígido sobre a quantidade de espaço em disco que um conjunto de dados pode utilizar. Esse limite rígido não inclui o espaço em disco utilizado pelos descendentes, como instantâneos e clones.
A propriedade refreservation define a quantidade mínima de espaço em disco que é garantida para um conjunto de dados, não incluindo seus descendentes.
Por exemplo, é possível definir um limite refcota de 10 GB para studentA que define um limite rígido de 10 GB do espaço em disco referenciado. Para obter flexibilidade adicional, você pode ajustar uma cota de 20 GB que lhe permite gerenciar os instantâneos do studentA.
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA
Para mais informações, consulte Definindo cotas e reservas do ZFS.
Versão 10 10/08 do Solaris: as propriedades do conjunto de armazenamento do ZFS foram introduzidas em uma versão anterior. Essa versão oferece duas propriedades cachefile e failmode.
A seguir, são descritas as novas propriedades do conjunto de armazenamento dessa versão:
A propriedade cachefile: essa propriedade controla onde as informações de configuração do conjunto são armazenadas em cache. Todos os conjuntos no cache são automaticamente importados quando o sistema é inicializado. No entanto, os ambientes de instalação e de cluster podem precisar armazenar em cache essas informações em um local diferente, de forma que os conjuntos não sejam automaticamente importados.
É possível configurar essa propriedade para armazenar em cache a configuração de conjunto em um local diferente que possa ser importado depois, utilizando o comando zpool import -c. Na maioria das configurações ZFS, essa propriedade não seria usada.
A propriedade cachefile não é persistente, não sendo armazenada em disco. Essa propriedade substitui a propriedade temporary, que foi usada para indicar que as informações de pool não deveriam ser armazenadas em cache nas versões anteriores do Solaris.
A propriedade failmode: essa propriedade determina o comportamento de uma falha catastrófica de conjunto devido à perda da conectividade do dispositivo ou à falha de todos os dispositivos no conjunto. A propriedade failmode pode ser configurada com estes valores: wait, continue ou panic. O valor padrão é espera, o que significa que você deve reconectar o dispositivo ou substituir um dispositivo com falha e, em seguida, limpar o erro com o comando zpool clear.
A propriedade failmode é definida como outras propriedades ZFS configuráveis, que podem ser configuradas antes ou depois do conjunto ser criado. Por exemplo:
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local
# zpool create -o failmode=continue users mirror c0t1d0 c1t1d0
Para obter uma descrição dessas propriedades, consulte Tabela 4-1.
Versão 10 10/08 do Solaris: o comando zpool history foi aprimorado para oferecer os novos recursos a seguir:
As informações dos eventos do sistema de arquivos do ZFS são exibidos.
A opção -l pode ser utilizada para exibir um formato longo que inclui o nome de usuário, o nome do host e a região na qual a operação foi efetuada.
A opção -i pode ser utilizada para exibir informações de eventos internos para fins de diagnóstico.
Para mais informações sobre utilizar do comando zpool history, consulte Resolvendo problemas com o ZFS.
Versão 10 10/08 do Solaris: o comando zfs upgrade foi incluído nessa versão para proporcionar futuros aprimoramentos do sistema de arquivos do ZFS aos sistemas de arquivos existentes. Os conjuntos de armazenamento do ZFS possuem um recurso de atualização semelhante para fornecer aprimoramentos aos conjuntos de armazenamento existentes.
Por exemplo:
# zfs upgrade This system is currently running ZFS filesystem version 3. All filesystems are formatted with the current version.
Observação - Os sistemas de arquivos atualizados e quaisquer fluxos criados a partir desses sistemas de arquivos atualizados através do comando zfs send não estão acessíveis em sistemas que executam versões mais antigas do software.
Versão 10 10/08 do Solaris: nessa versão, é possível conceder permissões detalhadas para permitir que usuários não privilegiados efetuem tarefas de administração do ZFS.
É possível utilizar os comandos zfs allow e zfs unallow para delegar e remover permissões.
É possível modificar a administração delegada com a propriedade delegação do conjunto. Por exemplo:
# zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation on default # zpool set delegation=off users # zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation off local
Por padrão, a propriedade delegation é habilitada.
Para mais informações, consulte o Capítulo 9Administração delegada do ZFS do Oracle Solaris and zfs(1M).
Versão 10 10/08 do Solaris: o log intencional do ZFS (ZIL) é oferecido para satisfazer as exigências de POSIX para 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. NFS e outros aplicativos também podem utilizar fsync() para garantir a estabilidade dos dados. Por padrão, o ZIL é alocado a partir dos blocos no conjunto de armazenamento principal. Nessa versão do , você pode decidir se deseja que os blocos ZIL continuem a ser alocados a partir do conjunto de armazenamento principal ou a partir de um dispositivo de log separado. Pode ser possível obter melhor desempenho utilizando dispositivos de log intencional separados no conjunto de armazenamento do ZFS, como com NVRAM ou um disco dedicado.
Os dispositivos de log intencional do ZFS não estão relacionados aos arquivos de log do banco de dados.
É possível configurar o dispositivo de log do ZFS quando o conjunto de armazenamento for criado ou depois da sua criação. Para exemplos sobre a configuração dos dispositivos de log, consulte Criando um conjunto de armazenamento do ZFS com dispositivos de log e Adicionando dispositivos a um pool de armazenamento.
É possível anexar um dispositivo de log a um dispositivo de log existente para criar um dispositivo de log espelhado. Essa operação é idêntica à anexação de um dispositivo em um conjunto de armazenamento não espelhado.
Ao determinar se a configuração de um dispositivo de registro ZFS é apropriada para o seu ambiente, leve em consideração o seguinte:
Qualquer melhoria no desempenho visto pela implementação de um dispositivo de log separado depende do tipo de dispositivo, da configuração de hardware do conjunto e da carga de trabalho do aplicativo. Para obter informações preliminares sobre desempenho, consulte este blog:
http://blogs.oracle.com/perrin/entry/slog_blog_or_blogging_on
Os dispositivos de log podem ser não replicado ou espelhados, mas o RAID-Z não é suportado por dispositivos de log.
Se um dispositivo de log separado não for espelhado e o dispositivo que contém o log falhar, o armazenamento dos blocos de log é revertido ao conjunto de armazenamento.
Os dispositivos de log podem ser adicionados, substituídos, anexados, desanexados, importados e exportados como parte do conjunto de armazenamento maior. Dispositivos de log podem ser removidos a partir da versão 10 9/10 do Solaris.
O tamanho mínimo de um dispositivo de log é o mesmo do tamanho mínimo de cada dispositivo em um conjunto, que é de 64 MB. A quantidade de dados em atividade que pode ser armazenada em um dispositivo de registro é relativamente pequena. Os blocos de registro são liberados quando a transação de registro (chamada do sistema) é enviada.
O tamanho máximo de um dispositivo de log deve ser aproximadamente a metade do tamanho da memória física, porque essa é a quantidade máxima de possíveis dados em atividade que podem ser armazenados. Por exemplo, se um sistema possuir 16 GB de memória física, considere que o tamanho máximo de um dispositivo de log será de 8 GB.
Versão 10 10/08 do Solaris: é possível utilizar a opção -p com os comandos zfs create, zfs clone e zfs rename para criar rapidamente um conjunto de dados intermediário não existente, se ele ainda não existir.
No exemplo a seguir, conjuntos de dados do ZFS (users/area51) são criados no conjunto de armazenamento datab.
# zfs list NAME USED AVAIL REFER MOUNTPOINT datab 106K 16.5G 18K /datab # zfs create -p -o compression=on datab/users/area51
O conjunto de dados intermediário já existe durante a operação de criação, a operação será concluída com êxito.
As propriedades especificadas se aplicam ao conjunto de dados de destino e não ao conjunto de dados intermediário. Por exemplo:
# zfs get mountpoint,compression datab/users/area51 NAME PROPERTY VALUE SOURCE datab/users/area51 mountpoint /datab/users/area51 default datab/users/area51 compression on local
O conjunto de dados intermediário é criado com o ponto padrão de montagem. Quaisquer propriedades adicionais são desativadas para o conjunto de dados intermediário. Por exemplo:
# zfs get mountpoint,compression datab/users NAME PROPERTY VALUE SOURCE datab/users mountpoint /datab/users default datab/users compression off default
Para obter mais informações, consulte zfs(1M).
Versão 10 10/08 do Solaris: nessa versão, o ZFS responde de maneira mais eficiente aos dispositivos removidos e pode agora identificar automaticamente dispositivos que são inseridos.
Você pode substituir um dispositivo atual por um dispositivo equivalente, sem precisar usar o comando zpool replace.
A propriedade autoreplace controla a substituição automática de dispositivos. Se for definido como off, a substituição do dispositivo deve ser iniciada pelo administrador utilizando o comando zpool replace. Se for definido como on, qualquer dispositivo novo encontrado no mesmo local físico de um dispositivo que antes pertencia ao conjunto será automaticamente formatado e substituído. O comportamento padrão é off.
O estado do conjunto de armazenamento REMOVED é fornecido quando um dispositivo ou de reserva tiver sido fisicamente removido enquanto o sistema estava em execução. Um dispositivo de reserva é substituído pelo dispositivo removido, se disponível.
Se um dispositivo for removido e depois inserido, o dispositivo será colocado on-line. Se um de reserva foi ativado quando o dispositivo foi reinserido, o de reserva é removido quando a operação on-line for concluída.
Quando os dispositivos são removidos ou inseridos, a detecção automática depende do hardware e pode não ser suportada em todas as plataformas. Por exemplo, os dispositivos USB são configurados automaticamente ao serem inseridos. No entanto, você pode ter que usar o comando cfgadm -c configure para configurar uma unidade SATA.
Os de reservas são verificados periodicamente para garantir que estejam on-line e disponíveis.
Para mais informações, consulte zpool(1M).
Versão 10 10/08 do Solaris: é possível renomear recursivamente todos os instantâneos descendentes do ZFS utilizando o comando zfs rename -r. Por exemplo:
Primeiro, um instantâneo de um conjunto de sistemas de arquivos do ZFS é criado.
# zfs snapshot -r users/home@today # zfs list -t all -r users/home NAME USED AVAIL REFER MOUNTPOINT users/home 2.00G 64.9G 33K /users/home users/home@today 0 - 33K - users/home/mark 1.00G 64.9G 1.00G /users/home/mark users/home/mark@today 0 - 1.00G - users/home/neil 1.00G 64.9G 1.00G /users/home/neil users/home/neil@today 0 - 1.00G -
Depois, os instantâneos são renomeados no dia seguinte.
# zfs rename -r users/home@today @yesterday # zfs list -t all -r users/home users/home 2.00G 64.9G 33K /users/home users/home@yesterday 0 - 33K - users/home/mark 1.00G 64.9G 1.00G /users/home/mark users/home/mark@yesterday 0 - 1.00G - users/home/neil 1.00G 64.9G 1.00G /users/home/neil users/home/neil@yesterday 0 - 1.00G -
Um instantâneo é o único tipo de conjunto de dados que pode ser renomeado recursivamente.
Para mais informações sobre instantâneos, consulte Visão geral dos instantâneos do ZFS e esta entrada do blog que descreve como criar instantâneos sucessivos:
http://blogs.oracle.com/mmusante/entry/rolling_snapshots_made_easy
Versão 10 10/08 do : nessa versão do Solaris, é possível definir a compactação gzip em sistemas de arquivos do ZFS além da compactação lzjb. É possível especificar a compactação como gzip ou gzip-N, em que N é de 1 a 9. Por exemplo:
# zfs create -o compression=gzip users/home/snapshots # zfs get compression users/home/snapshots NAME PROPERTY VALUE SOURCE users/home/snapshots compression gzip local # zfs create -o compression=gzip-9 users/home/oldfiles # zfs get compression users/home/oldfiles NAME PROPERTY VALUE SOURCE users/home/oldfiles compression gzip-9 local
Para mais informações sobre a configuração das propriedades do ZFS, consulte Definindo propriedades do ZFS.
Versão 10 10/08 do Solaris: como um recurso de segurança, os metadados do sistema de arquivos do ZFS são armazenados automaticamente várias vezes em diferentes discos, se possível. Este recurso é conhecido como blocos idem.
Nessa versão, também é possível armazenar cópias múltiplas dos dados do usuário que também são armazenadas por sistema de arquivos ao utilizar o comando zfs set copies. Por exemplo:
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local
Os valores disponíveis são 1, 2 ou 3. O valor padrão é 1. Essas cópias estão em acréscimo a qualquer redundância de nível de conjunto, tal como na configuração espelhada ou RAID-Z.
Os benefícios do armazenamento de cópias múltiplas dos dados do usuário do ZFS são os seguintes:
Melhora a retenção de dados, permitindo recuperações de falhas de leituras em blocos irrecuperáveis, como falhas de mídia (comumente conhecidas como bit rot) em todas as configurações do ZFS.
Oferece proteção de dados, mesmo quando apenas um disco único está disponível.
Permite que você selecione as políticas de proteção de dados por bases de sistema de arquivos, além das capacidades do conjunto de armazenamento.
Observação - Dependendo da alocação de blocos idênticos no conjunto de armazenamento, as cópias múltiplas podem ser colocadas em um único disco. Uma falha de disco cheio subsequente pode fazer com que todos os blocos idênticos fiquem indisponíveis.
É possível levar em consideração o uso de blocos idênticos ao criar acidentalmente um conjunto não redundante e quando precisar definir as políticas de retenção de dados.
Para obter uma descrição detalhada de como armazenar cópias múltiplas em um sistema com um conjunto de disco único ou um conjunto de disco múltiplo pode afetar a proteção geral dos dados, consulte este blog:
http://blogs.oracle.com/relling/entry/zfs_copies_and_data_protection
Para mais informações sobre a configuração das propriedades do ZFS, consulte Definindo propriedades do ZFS.
Versão 10 8/07 do Solaris: é possível utilizar o comando zpool status -v para exibir uma lista de arquivos com erros persistentes. Anteriormente, era necessário utilizar o comando find -inum para identificar os nomes de arquivos na lista de inodes exibida.
Para mais informações sobre a exibição de uma lista de arquivos com erros persistentes, consulte Reparando arquivos ou diretórios corrompidos.
Versão 10 8/07 do : nessa versão do Solaris, é possível criar um volume ZFS como um dispositivo de destino do iSCSI do Solaris definindo a propriedade shareiscsi no volume ZFS. Esse método é uma forma conveniente de configurar rapidamente um destino iSCSI do Solaris. Por exemplo:
# zfs create -V 2g tank/volumes/v2 # zfs set shareiscsi=on tank/volumes/v2 # iscsitadm list target Target: tank/volumes/v2 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0
Depois da criação do destino iSCSI, é possível configurar o iniciador iSCSI. Para mais informações sobre a configuração do iniciador iSCSI do Solaris, consulte o Capítulo 14, Configuring Oracle Solaris iSCSI Targets and Initiators (Tasks), no System Administration Guide: Devices and File Systems.
Para mais informações sobre gerenciamento de volumes do ZFS como um destino de iSCSI, consulte Usando um volume ZFS como um destino iSCSI Solaris.
Versão 10 8/07 do : nessa versão do Solaris, o ZFS registra automaticamente comandos zfs e zpool bem-sucedidos que modificam as informações de estado do conjunto. Por exemplo:
# zpool history History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 History for 'tank': 2007-04-25.11:46:28 zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0
Esses recursos permitem que você ou a equipe de suporte do Oracle identifique os comandos reais do ZFS que foram executados para corrigir um cenário de erro.
É possível identificar um conjunto de armazenamento específico com o comando zpool history. Por exemplo:
# zpool history newpool History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1
Nessa versão do , o comando zpool history não registra o ID de usuário, o nome do host nem o nome da região. No entanto, essas informações são gravadas a partir da versão 10 10/08 do Solaris. Para mais informações, consulte Aprimoramentos no histórico do comando do ZFS (zpool history).
Para mais informações sobre a resolução de problemas ZFS, consulte Resolvendo problemas com o ZFS.
Versão 10 8/07 do Solaris: é possível utilizar a propriedade xattr para desativar ou ativar os atributos estendidos para um sistema de arquivos do ZFS específico. O valor padrão é on. Para obter uma descrição das propriedades do ZFS, consulte Introduzindo as propriedades do ZFS.
Versão 10 8/07 do Solaris: a nova propriedade canmount permite que você especifique se um conjunto de dados pode ser montado através da utilização do comando zfs mount. Para obter mais informações, consulte A propriedade canmount.
Versão 10 8/07 do Solaris: além das propriedades nativas padrão que podem ser utilizadas para exportar estatísticas internas ou controlar o comportamento do sistema de arquivos do ZFS, o ZFS fornece propriedades do usuário. As propriedades do usuário não afetam o comportamento do ZFS, mas podem ser utilizadas para anotar conjuntos de dados com informações significativas no ambiente.
Para mais informações, consulte Propriedades de usuário do ZFS.
Versão 10 8/07 do : nessa versão do Solaris, é possível definir propriedades ao criar um sistema de arquivos, não apenas depois do sistema de arquivos ter sido criado.
Os exemplos abaixo ilustram a sintaxe equivalente:
# zfs create tank/home # zfs set mountpoint=/export/zfs tank/home # zfs set quota=50g tank/home # zfs set compression=on tank/home
# zfs create -o mountpoint=/export/zfs -o quota=50g -o compression=on tank/home
Versão 10 8/07 do : nessa versão do Solaris, é possível utilizar várias formulários do comando zfs get para exibir informações sobre todos os conjuntos de dados caso você não especifique um conjunto de dados ou caso você especifique todos . Em versões anteriores, não era possível recuperar todas as informações do conjunto de dados com o comando zfs get.
Por exemplo:
# zfs get -r -s local all tank/home NAME PROPERTY VALUE SOURCE tank/home atime off local tank/home/jeff atime off local tank/home/mark quota 50G local
Versão 10 8/07 do : nessa versão do Solaris, é possível utilizar a nova opção -F no comando zfs receive para forçar uma reversão do sistema de arquivos ao instantâneo mais recente antes do recebimento ser iniciado. O uso dessa opção pode ser necessário quando o sistema de arquivos for modificado depois da reversão ocorrer, mas antes de o recebimento ser iniciado.
Para mais informações, consulte Recebendo um instantâneo do ZFS.
Versão 10 11/06 do Solaris: ao utilizar o comando zfs snapshot para criar um instantâneo do sistema de arquivos, é possível utilizar a opção - r para criar recursivamente instantâneos para todos os sistemas de arquivos descendentes. Além disso, é possível utilizar a opção-r para destruir recursivamente todos os instantâneos descendentes quando um instantâneo é destruído.
Os instantâneos recursivos do ZFS são criados rapidamente como uma operação atômica. Os instantâneos são criados juntos (todos de uma vez) ou simplesmente não são criados. O benefício de tal operação é que os dados do instantâneo são sempre tirados em momento consistente, mesmo através de sistemas de arquivos descendentes.
Para mais informações, consulte Criando e destruindo instantâneos do ZFS.
Versão 10 11/06 do Solaris: uma configuração RAID-Z redundante agora pode possuir configuração de paridade única ou dupla, o que significa que uma ou duas falhas de dispositivo podem ser sustentadas respectivamente, sem qualquer perda de dados. Você pode especificar a palavra-chave raidz2 para realizar uma configuração de RAID-Z de paridade dupla. Ou você pode especificar as palavras-chave raidz ou raidz1 para realizar uma configuração RAID-Z de paridade única.
Para mais informações, consulte Criando um conjunto de armazenamento RAID-Z ou zpool(1M).
Versão 10 11/06 do Solaris: o recurso de reserva do ZFS permite que você identifique os discos que poderiam ser utilizados para substituir um dispositivo falho ou defeituoso em um ou mais conjuntos de armazenamento. Designar um dispositivo como um de reserva significa que, se um dispositivo ativo no conjunto falhar, o dispositivo de reserva substitui automaticamente o dispositivo falho. Ou então, é possível substituir manualmente um dispositivo em um conjunto de armazenamento por um de reserva.
Para mais informações, consulte Designando sobressalentes no pool de armazenamento e zpool(1M).
Versão 10 11/06 do Solaris: o comando zfs promote permite que você substitua um sistema de arquivos existente do ZFS existente por um clone desse sistema de arquivos. Esse recurso é útil quando você deseja executar testes em uma versão alternativa de um sistema de arquivos e, em seguida, tornar essa versão alternativa em um sistema de arquivos ativo.
Para mais informações, consulte Substituindo um sistema de arquivos ZFS por um clone do ZFS e zfs(1M).
Versão 10 6/06 do Solaris: é possível atualizar seus conjuntos de armazenamento para uma versão mais nova a fim de obter benefícios dos recursos mais recentes por meio do comando zpool upgrade. Além disso, o comando zpool status foi modificado para notificá-lo quando os conjuntos estiverem executando versões mais antigas do ZFS.
Para mais informações, consulte Atualizando pools de armazenamento do ZFS e zpool(1M).
Se desejar utilizar o console de administração do ZFS em um sistema com um conjunto de uma versão anterior do Solaris, certifique-se de atualizar os conjuntos antes de utilizar o console. Para determinar se os conjuntos precisam ser atualizados, utilize o comando zpool status. Para obter informações sobre o console de administração do ZFS, consulte Gerenciamento do ZFS baseado na Web.
Versão 10 6/06 do : nessa versão do Solaris, os comandos zfs backup e zfs restore foram renomeados como zfs send e zfs receive para uma descrição mais exata de suas funções. Esses comandos enviam e recebem representações de fluxo de dados do ZFS.
Para mais informações sobre esses comandos, consulte Enviando e recebendo dados do ZFS.
Versão 10 6/06 do Solaris: essa versão inclui o comando zpool import -D, que permite que você recupere conjuntos que foram destruído anteriormente com o comando zpool destroy.
Para mais informações, consulte Recuperando pools de armazenamento destruídos do ZFS.
Versão 10 6/06 do Solaris: essa versão inclui um mecanismo de diagnóstico do ZFS que é capaz de diagnosticar e relatar falhas do conjunto e do dispositivo. Também são relatados erros na soma de verificação, de E/S, de dispositivo e de pool associados às falhas do dispositivo e do pool.
O mecanismo de diagnóstico não inclui a análise prognóstica de erros de E/S e de soma de verificação, nem ações antecipatórias com base nas análises de falhas.
Se ocorrer uma falha no ZFS, aparecerá uma mensagem similar a seguinte:
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
Ao revisar a ação recomendada, que será seguir as direções mais específicas no comando zpool status, você poderá identificar e resolver rapidamente a falha.
Para obter um exemplo de recuperação de um problema do ZFS reportado, consulte Reparando um dispositivo faltando.
Versão 10 6/06 do Solaris: essa versão inclui o comando zpool clear para limpar contagens de erros associadas a um dispositivo ou a um conjunto. Anteriormente, as contagens de erros eram limpas quando um dispositivo em um conjunto era colocado on-line com o comando zpool online. Para mais informações, consulte Limpando erros de dispositivo de conjunto de armazenamento e zpool(1M).
Versão 10 6/06 do Solaris: nessa versão, é possível definir e exibir ACLs NFSv4 em dois formatos: verboso e compacto. É possível utilizar o comando chmod para definir qualquer um dos formatos ACL. É possível utilizar o comando ls - Vpara exibir o formato compacto da ACL. É possível utilizar o comando ls -vpara exibir o formato verboso da ACL.
Para mais informações, consulte Definindo e exibindo ACLs em arquivos ZFS no formato compacto, chmod(1) e ls(1).
Versão 10 6/06 do Solaris: uma nova ferramenta de monitoração do sistema de arquivos, fsstat, relata as operações dos sistemas de arquivos. A atividade pode ser relatada por ponto de montagem ou por tipo de sistema de arquivos. O exemplo abaixo mostra a atividade geral do sistema de arquivos ZFS:
$ fsstat zfs new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 7.82M 5.92M 2.76M 1.02G 3.32M 5.60G 87.0M 363M 1.86T 20.9M 251G zfs
Para mais informações, consulte fsstat(1M).
Versão 10 6/06 do Solaris: uma ferramenta de gerenciamento do ZFS com base na Web, o console de administração do ZFS, permite que você efetue as tarefas administrativas a seguir:
Criar um novo pool de armazenamento.
Adicionar capacidade a um pool existente.
Mover (exportar) um pool de armazenamento para outro sistema.
Importar um pool de armazenamento exportado anteriormente para torná-lo disponível em outro sistema.
Visualizar informações sobre pools de armazenamento.
Criar um sistema de arquivos.
Criar um volume.
Criar um instantâneo de um sistema de arquivos ou um volume.
Reverter um sistema de arquivos para um instantâneo anterior.
É possível acessar o console de administração do ZFS através de um navegador da Web seguro em:
https://system-name:6789/zfs
Se você digitar o URL apropriado e não conseguir encontrar o console Administração do ZFS, o servidor não deve ter sido iniciado. Para iniciar o servidor, execute o seguinte comando:
# /usr/sbin/smcwebserver start
Se quiser que o servidor seja executado automaticamente quando o sistema for inicializado, execute o seguinte comando:
# /usr/sbin/smcwebserver enable
Observação - Não é possível usar o console de gerenciamento Solaris (smc) para gerenciar pools de armazenamento e sistemas de arquivos ZFS.