Guia de administração do ZFS Oracle Solaris

Introduzindo as propriedades do ZFS

As propriedades são o mecanismo principal usado para controlar o comportamento de sistemas de arquivos, volumes, instantâneos e clones. A menos que fique estabelecido de outra forma, as propriedades definidas na seção são válidas para todos os tipos de conjunto de dados.

As propriedades estão dividas em dois tipos: propriedades nativas e propriedades definidas pelo usuário. As propriedades nativas exportam estatísticas internas ou controlam o sistema de arquivos ZFS. Além disso, as propriedades nativas ou são definíveis ou somente leitura. As propriedades de usuário não afetam o comportamento do ZFS, mas podem ser usadas para anotar conjuntos de dados de forma significativa no ambiente. Para mais informações sobre as propriedades de usuário, consulte Propriedades de usuário do ZFS.

A maioria das propriedades configuráveis também são herdáveis. Uma propriedade herdável é uma propriedade que, quando configurada no conjunto de dados pai, é propagada para todos os seus descendentes.

Todas as propriedades herdáveis possuem uma origem associada que indica como a propriedade foi obtida. A origem de uma propriedade pode ter os seguintes valores:

local

Indique que a propriedade foi definida explicitamente no conjunto de dados utilizando o comando zfs set conforme descrito em Definindo propriedades do ZFS.

inherited from nome-do-conjunto-de-dados

Indique que a propriedade foi herdada do predecessor nomeado.

default

Indique que o valor de propriedade não foi herdado ou configurado localmente. Essa origem é resultado de nenhum predecessor possuir a propriedade definida como origem local.

A tabela seguinte identifica as propriedades nativas somente leitura e definíveis dos sistema de arquivos ZFS. As propriedades nativas somente leitura são identificadas como tal. Todas as outras propriedades nativas listadas nesta tabela são definíveis. Para obter informações sobre as propriedades de usuário, consulte Propriedades de usuário do ZFS.

Tabela 6–1 Descrições de propriedades nativas do ZFS

Nome da propriedade 

Tipo 

Valor padrão 

Descrição 

aclinherit

Seqüência 

secure

Controla como as entradas ACL são herdadas quando os arquivos e diretórios são criados. Os valores são discard, noallow, secure e passthrough. Para uma descrição desses valores, consulte Propriedades da ACL.

aclmode

Sequência 

groupmask

Controla como uma entrada ACL é modificada durante uma operação chmod. Os valores são discard, groupmask e passthrough. Para uma descrição desses valores, consulte Propriedades da ACL.

atime

Booleano 

on

Controla se o tempo de acesso dos arquivos é atualizado quando eles são lidos. A desativação dessa propriedade evita o tráfego de gravação de produção durante a leitura de arquivos e pode proporcionar melhoras significativas no desempenho, embora possa confundir utilitários de correio e similares.

available

Número 

N/D 

A propriedade de somente leitura que identifica a quantidade de espaço em disco disponível no conjunto de dados e todos os seus filhos, mas não assume nenhuma outra atividade no conjunto. Como o espaço em disco é compartilhado dentro de um conjunto, o espaço disponível pode ser limitado por vários fatores, inclusive tamanho físico do conjunto, cotas, reservas ou outros conjuntos de dados dentro do conjunto.

A abreviatura da propriedade é avail.

Para mais informações sobre contabilidade de espaço em disco, consulte Contabilidade de espaço em disco do ZFS.

canmount

Booleano 

on

Controla se um sistema de arquivos pode ser montado com o comando zfs mount. Essa propriedade pode ser definida em qualquer sistema de arquivos e a propriedade em si não pode ser herdada. No entanto, quando essa propriedade estiver definida como off, um ponto de montagem pode ser herdado pelos sistemas de arquivos descendentes, mas o sistema de arquivos em si nunca é montado.

Quando a opção noauto estiver definida, um conjunto de dados pode ser montado e desmontado apenas explicitamente. O conjunto de dados não é montado automaticamente ao ser criado ou importado, e também não é montado pelo comando zfs mount- a nem desmontado pelo comando zfs unmount-a.

Para mais informações, consulte A propriedade canmount.

soma de verificação

Sequência 

on

Controla a soma de verificação usada para verificar a integridade dos dados. O valor padrão é on, que seleciona automaticamente um algoritmo apropriado, atualmente fletcher4. Os valores são on, off, fletcher2 , fletcher4 e sha256. O valor de off desativa a verificação da integridade dos dados do usuário. Não se recomenda o valor off.

compression

Sequência 

off

Ativa ou desativa a compactação de um conjunto de dados. Os valores são on, off, lzjb, gzip e gzip-N. Nesse momento, definir esta propriedade como lzjb, gzip ou gzip- N tem o mesmo efeito que defini-la como on. A ativação da compactação em um sistema de arquivos com dados existentes compacta somente os novos dados. Os dados existentes permanecem descompactados.

A abreviatura da propriedade é compress.

compressratio

Número 

N/D 

Propriedade de somente leitura que identifica a taxa de compactação atingida para um conjunto de dados, expressa como um multiplicador. A compactação pode ser ativada pelo zfs set compression=on conjunto de dados comando.

O valor é calculado a partir do tamanho lógico de todos os arquivos e da quantidade de dados físicos referenciados. Isso inclui economias explícitas através do uso da propriedade compression.

copies

Número 

1

Define o número de cópias de dados do usuário por sistema de arquivos. Os valores disponíveis são 1, 2 ou 3. Essas cópias são adicionais a qualquer redundância de nível de pool. O espaço em disco utilizado por várias cópias de dados do usuário é cobrado até o arquivo, conjunto de dados e contagens correspondentes contra cotas e reservas. Além disso, a propriedade used é atualizada quando várias cópias são ativadas. Leve em consideração definir essa propriedade quando o sistema de arquivos for criado porque alterá-la em um sistema de arquivos existente afeta somente os dados recém-gravados.

creation

Seqüência 

N/D 

A propriedade de somente leitura identifica a data e a hora em que um conjunto de dados foi criado.

devices

Booleano 

on

Controle se os arquivos do dispositivo no sistema de arquivos podem ser abertos.

exec

Booleano 

on

Controle se os programas dentro de um sistema de arquivos possuem permissão para serem executados. Também, quando definido como off, as chamadas de mmap(2) com PROT_EXEC não são permitidas.

mounted

Booleano 

N/D 

Propriedade de somente leitura que indica se um sistema de arquivos, clone ou instantâneo estão atualmente montados. Esta propriedade não se aplica aos volumes. O valor pode ser sim ou não.

mountpoint

Sequência 

N/D 

Controla o ponto de montagem usado neste sistema de arquivos. Quando a propriedade mountpoint é alterada para um sistema de arquivos, o sistema de arquivos e os descendentes que herdam o ponto de montagem são desmontados. Se o novo valor for legacy, então eles permanecem desmontados. Do contrário, serão remontados automaticamente no novo local se a propriedade anterior era legacy ou none ou se foram montados antes de a propriedade ter sido alterada. Além disso, quaisquer sistemas de arquivos compartilhados serão descompartilhados e compartilhados no novo local.

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

primarycache

Sequência 

tudo

Controle o que é armazenado no cache primário (ARC). Os valores possíveis são all, none e metadata. Se definido como all, os dados do usuário e os metadados serão colocado no cache. Se definir como nenhum, nem os dados do usuário, nem os metadados serão armazenados em cache. Se configurar para metadados, somente os metadados serão armazenados.

origin

Seqüência 

N/D 

Propriedade somente leitura para volumes ou sistemas de arquivos clonados que identifica o instantâneo a partir do qual o clone foi criado. A origem não pode ser destruída (mesmo com as opções -r ou -f) enquanto o clone existir.

Os sistemas de arquivos não clonados apresentam uma origem de nenhum.

quota

Número (ou none)

none

Limita a quantidade de espaço em disco que um conjunto de dados e seus descendentes podem utilizar. Essa propriedade impõe um limite de disco rígido na quantidade do espaço em disco utilizado, incluindo todo o espaço utilizado pelos descendentes, inclusive os sistemas de arquivos e os instantâneos. A definição de uma cota em um descendente de um sistema de arquivos que já possui uma cota, não substitui a cota do antepassado, mas sim impõe um limite adicional. As cotas não podem ser definidas em volumes, já que a propriedade volsize age como uma cota implícita.

Para mais informações sobre a definição de cotas, consulte Definindo cotas em sistemas de arquivos ZFS.

readonly

Booleano 

off

Controla se um conjunto de dados pode ser modificado. Ao definir como on, nenhuma modificação pode ser feita.

A abreviatura da propriedade é rdonly.

recordsize

Número 

128K

Especifica um tamanho do bloco sugerido para os arquivos no sistema de arquivos.

A abreviatura da propriedade é rcsize. Para uma descrição detalhada, consulte A propriedade recordsize.

referenced

Número 

N/D 

Propriedade de somente leitura que identifica a quantidade de dados acessíveis por um conjunto de dados que pode, ou não, ser compartilhado com outros conjuntos de dados no conjunto.

Quando um instantâneo ou um clone é criado, inicialmente faz referência a mesma quantidade de espaço em disco do sistema de arquivos ou do instantâneo a partir do qual foi criado, pois seus conteúdos são idênticos. 

A abreviatura da propriedade é refer.

refquota

Número (ou none) 

none

Define a quantidade de espaço em disco que um conjunto de dados pode consumir. Essa propriedade reforça um limite rígido na quantidade de espaço usado. Esse limite de disco rígido não inclui o espaço em disco utilizado pelos descendentes, como instantâneos e clones.

refreservation

Número (ou none) 

none

Define a quantidade mínima de espaço em disco que é garantido para um conjunto de dados, não incluindo seus descendentes, como instantâneos e clones. Quando a quantidade de espaço em disco utilizada está abaixo desse valor, o conjunto de dados é tratado como se estivesse ocupando a quantidade de espaço especificada por refreservation. As reservas de refreservation são calculadas no espaço em disco utilizado do conjunto de dados pai e contadas em relação às cotas e reservas do conjunto de dados pai.

Se refreservation estiver configurado, um instantâneo é permitido somente se houver disponível espaço livre suficiente no conjunto fora da reserva para alojar o número atual de bytes referenciados no conjunto de dados.

A abreviatura da propriedade é refreserv.

reservation

Número (ou none) 

none

Configure a quantidade mínima de espaço em disco garantida para um conjunto de dados e seus descendentes. Quando a quantidade de espaço em disco utilizada está abaixo desse valor, o conjunto de dados é tratado como se estivesse utilizando a quantidade de espaço especificada por sua reserva. As reservas são calculadas no espaço em disco do conjuntos de dados pai utilizado e contadas em relação às cotas e reservas do conjunto de dados pai.

A abreviatura da propriedade é reserv.

Para mais informações, consulte Definindo reservas nos sistemas de arquivos ZFS.

secondarycache

Sequência 

tudo

Controla o que é armazenado no cache secundário (L2ARC). Os valores possíveis são all, none e metadata. Se definido como all, os dados do usuário e os metadados serão colocado no cache. Se definir como nenhum, nem os dados do usuário, nem os metadados serão armazenados em cache. Se configurar para metadata, somente metadados são armazenados em cache.

setuid

Booleano 

on

Controla se o bit setuid é respeitado nos sistemas de arquivos.

shareiscsi

Sequência 

off 

Controla se um volume ZFS está compartilhado como um destino iSCSI. Os valores das propriedades são on ,off e type=dysk. Se você desejar configurar o shareiscsi=on para um sistema de arquivos, então todos os volumes ZFS dentro do sistema de arquivos serão compartilhados por padrão. No entanto, ao configurar essas propriedades em um sistema de arquivos não possuirá nenhum efeito direto.

sharenfs

Seqüência 

off

Controla se o sistema de arquivos está disponível no NFS e quais opções são utilizadas. Se for definido como on, o comando zfs share é chamado sem opções. Do contrário, o comando zfs share é chamado com opções equivalentes ao conteúdo desta propriedade. Se for definida como off, o sistema de arquivos é gerenciado com os comandos share e unshare de legado e com o arquivo dfstab.

Para mais informações sobre compartilhamento de sistemas de arquivos ZFS, consulte Compartilhando e descompartilhando sistemas de arquivos ZFS.

snapdir

Seqüência 

hidden

Controla se o diretório .zfs está oculto ou visível na raiz do sistema de arquivos. Para mais informações sobre o uso de instantâneos, consulte Visão geral dos instantâneos do ZFS.

type

Seqüência 

N/D 

Propriedade somente leitura que identifica o tipo de conjunto de dados como filesystem (sistema de arquivos ou clone), volume ou snapshot.

used

Número 

N/D 

Propriedade de somente leitura que identifica a quantidade de espaço em disco utilizada pelo conjunto de dados e todos os seus descendentes.

Para uma descrição detalhada, consulte A propriedade used.

usedbychildren

Número 

off

A propriedade de somente leitura identifica a quantidade de espaço em disco utilizada pelos filhos desse conjunto de dados, que seria liberado se os filhos do conjunto de dados fossem destruídos. A abreviatura da propriedade é usedchild.

usedbydataset

Número 

off

A propriedade de somente leitura identifica a quantidade de espaço em disco utilizada por esse próprio conjunto de dados, que seria liberado se conjunto de dados fosse destruído, depois de destruir quaisquer instantâneos e remover quaisquer reservas refreservation. A abreviatura da propriedade é usedds.

usedbyrefreservation

Número 

off

A propriedade de somente leitura identifica a quantidade de espaço em disco que é utilizada por uma refreservation definida em um conjunto de dados, que seria liberado se a refreservation fosse removida. A abreviatura da propriedade é usedrefreserv.

usedbysnapshots

Número 

off

A propriedade de somente leitura identifica a quantidade de espaço em disco que é utilizado por instantâneos de um conjunto de dados. Em particular, essa é a quantidade de espaço em disco que seria liberado se todos os instantâneos dos conjunto de dados fossem destruídos. Observe que esse valor não é simplesmente a soma das propriedades utilizadas dos instantâneos, porque o espaço pode ser compartilhado por instantâneos múltiplos. A abreviatura da propriedade é usedsnap.

version

Número 

N/D 

Identifique a versão em disco do sistema de arquivos, que é independente da versão do conjunto. Essa propriedade pode somente ser configurada para uma versão posterior que esteja disponível a partir da versão do software suportado. Para mais informação, consulte o comando zfs upgrade.

volsize

Número 

N/D 

Para volumes, especifica o tamanho lógico do volume.

Para uma descrição mais detalhada, consulte A propriedade volsize.

volblocksize

Número 

8 KB

Para volumes, especifica o tamanho do bloco do volume. O tamanho do bloco não pode ser alterado depois que o volume foi gravado, portanto, defina o tamanho do bloco no momento da criação do volume. O tamanho padrão do bloco para volumes é de 8 KB. Qualquer potência de 2 a partir de 512 bytes até 128 KB é válida.

A abreviatura da propriedade é volblock.

zoned

Booleano 

N/D 

Indica se um conjunto de dados foi adicionado à região não global. Se esta propriedade estiver definida, o ponto de montagem não é respeitado na região global e o ZFS não pode montar tal sistema de arquivos quando solicitado. Quando uma região é instalada pela primeira vez, esta propriedade é definida para todos os sistemas de arquivos adicionados.

Para obter mais informações sobre o uso do ZFS com regiões instaladas, consulte Usando ZFS em um sistema Solaris com regiões instaladas.

xattr

Booleano 

on

Indica se os atributos estendidos estão ativados (on) ou desativados (off) para esse sistema de arquivos.

Propriedades nativas somente leitura do ZFS

As propriedades nativas de somente leitura podem ser recuperadas mas não configuradas. As propriedades nativas somente leitura não são herdadas. Algumas propriedades nativas são específicas para um determinado tipo de conjunto de dados. Nesses casos, um tipo de conjunto de dados é mencionado na descrição em Tabela 6–1.

As propriedades nativas de somente leitura estão listadas aqui e são descritas em Tabela 6–1.

Para mais informações sobre a contabilidade de espaço em disco, incluindo as propriedades utilizadas, referenciadas e disponíveis, consulte Contabilidade de espaço em disco do ZFS.

A propriedade used

A propriedade utilizada é uma propriedade de somente leitura que identifica a quantidade de espaço em disco utilizada pelo conjunto de dados e todos seus descendentes. Este valor é verificado de acordo com a cota e a reserva do conjunto de dados. O espaço em disco utilizado não inclui a reserva do conjunto de dados, mas leva em consideração a reserva dos conjuntos de dados descendentes. A quantidade de espaço em disco que um conjunto de dados utiliza a partir do pai, assim como a quantidade de espaço em disco que é liberada quando o conjunto de dados é destruído recursivamente, é a maior de seu espaço utilizado e de sua reserva.

Quando os instantâneos são criados, seu espaço em disco é inicialmente compartilhado entre o instantâneo e o sistema de arquivos e possivelmente com os instantâneos anteriores. Conforme o sistema de arquivos é alterado, o espaço previamente compartilhado torna-se único para o instantâneo e é incluído no espaço do instantâneo utilizado. O espaço em disco utilizado por um instantâneo representa seus dados únicos. Adicionalmente, a exclusão de instantâneos pode aumentar a quantidade de espaço em disco único para (e ser utilizada por) outros instantâneos. Para obter mais informações sobre instantâneos e problemas de espaço, consulte Comportamento por espaço excedido.

A quantidade do espaço em disco utilizado, disponível e referenciado não inclui alterações pendentes. As alterações pendentes são consideradas em geral depois de alguns segundos. A realização de uma alteração no disco utilizando a função fsync(3c) ou O_SYNC não garante necessariamente que as informações sobre o uso de espaço em disco sejam atualizadas imediatamente.

As informações das propriedades usedbychildren, usedbydataset , usedbyrefreservation e usedbysnapshots podem ser exibidas com o comando zfs list - o space . Essas propriedades identificam a propriedade utilizada no espaço em disco que é consumido por descendentes. Para obter mais informações, consulte a Tabela 6–1.

Propriedades nativas definíveis do ZFS

As propriedades nativas definíveis são propriedades cujos valores podem ser recuperados e alterados. As propriedades nativas definíveis são definidas usando o comando zfs set, conforme descrito em Definindo propriedades do ZFS ou usando o comando zfs create conforme descrito em Criando um sistema de arquivos ZFS. Com exceção das cotas e reservas, as propriedades nativas definíveis são herdadas. Para obter mais informações sobre cotas e reservas, consulte Definindo cotas e reservas do ZFS.

Algumas propriedades nativas definíveis são específicas para um determinado tipo de conjunto de dados. Nesses casos, um tipo de conjunto de dados é mencionado na descrição em Tabela 6–1. Se não for especificamente mencionado, um propriedade se aplica a todos os tipos de conjunto de dados: sistemas de arquivos, volumes, clones e instantâneos.

As propriedades configuráveis estão listadas aqui e são descritas em Tabela 6–1.

A propriedade canmount

Se a propriedade canmount for definida como off, o sistema de arquivos não pode ser montando utilizando os comandos zfs mount ou zfs mount -a. Configurar essa propriedade para off é semelhante a configurar a propriedade mountpoint como nenhum, exceto que o conjunto de dados ainda apresenta uma propriedade mountpoint normal que pode ser herdada. Por exemplo, é possível definir essa propriedade como off, estabelecer propriedades herdáveis para os sistemas de arquivos descendentes, mas o sistema de arquivos pai em si nunca é montado nem pode ser acessado pelos usuários. Nesse caso, o sistema de arquivos pai serve como um recipiente, de modo que é possível definir propriedades no contêiner, mas o contêiner em si nunca está acessível.

No exemplo a seguir, userpool é criado e sua propriedade canmount é definida como desativadaoff. Os pontos de montagem dos sistemas de arquivos descendentes de usuário são definidos como um ponto de montagem comum, /export/home. As propriedades que estão definidas no sistema de arquivos pai são herdadas pelos sistemas de arquivos descendentes, mas o sistema de arquivos pai em si nunca é montado.


# zpool create userpool mirror c0t5d0 c1t6d0
# zfs set canmount=off userpool
# zfs set mountpoint=/export/home userpool
# zfs set compression=on userpool
# zfs create userpool/user1
# zfs create userpool/user2
# zfs mount
userpool/user1                  /export/home/user1
userpool/user2                  /export/home/user2

Se a propriedade canmount for definida como noauto, significa que o conjunto de dados pode ser montado apenas explicitamente, não automaticamente. Essa configuração é utilizada pelo software de atualização do Oracle Solaris de modo que somente os conjuntos de dados pertencentes ao ambiente de inicialização ativo são montados no momento da inicialização.

A propriedade recordsize

A propriedade recordsize especifica um tamanho de bloco sugerido para os arquivos no sistema de arquivos.

Esta propriedade é designada unicamente para uso com volumes de trabalho de banco de dados que acessam arquivos em registros de tamanho fixo. O ZFS ajusta automaticamente os tamanhos do bloco de acordo com os algoritmos internos otimizados para padrões de acesso típicos. Para bancos de dados que criam arquivos muito grandes, mas que acessam os arquivos em pequenos blocos aleatórios, esses algoritmos podem ser ideais. Especificar um valor recordsize maior ou igual ao tamanho do registro do banco de dados pode resultar em melhoras significativas no desempenho. A utilização dessa propriedade para sistemas de arquivos com fins gerais é totalmente desaconselhado e pode afetar negativamente o desempenho. O tamanho especificado deve ser uma potência de 2 maior ou igual a 512 bytes e menor ou igual a 128 KB. Alterar o valor recordsize do sistema de arquivos afeta somente os arquivos criados posteriormente. Os arquivos existentes não são afetados.

A abreviatura da propriedade é rcsize.

A propriedade volsize

A propriedade volsize especifica o tamanho lógico do volume. Por padrão, a criação de um volume estabelece uma reserva para a mesma quantidade. Quaisquer alterações do volsize se refletem em uma alteração equivalente na reserva. Estas verificações são usadas para evitar comportamentos inesperados para os usuários. Um volume que contém menos espaço do que ele exige pode resultar em um comportamento indefinido ou corrupção de dados, dependendo de como o volume é usado. Esses efeitos também podem ocorrer quando o tamanho do volume é alterado enquanto ele é utilizado, particularmente quando o espaço é diminuído. Tenha extremo cuidado ao ajustar o tamanho do volume.

Embora não seja recomendável, é possível criar um volume esparso especificando o sinalizador -s para zfs create -V ou alterando a reserva depois que o volume for criado. Um volume esparso é um volume em que a reserva não é igual ao tamanho do volume. Em um volume esparso, as alterações para volsize não se refletem na reserva.

Para obter mais informações sobre o uso de volumes, consulte Volumes ZFS.

Propriedades de usuário do ZFS

Além das propriedades nativas, o ZFS oferece suporte a propriedades arbitrárias do usuário. As propriedades de usuário não afetam o comportamento do ZFS, mas podem ser usadas para anotar conjuntos de dados com informações significativas no ambiente.

Os nomes das propriedades do usuário devem estar de acordo com as convenções a seguir:

A convenção esperada é que o nome da propriedade esteja dividido nos dois componentes seguintes, mas que este espaço de nome não seja imposto pelo ZFS:


module:property

Ao fazer utilização programática das propriedades do usuário, utilize um nome de domínio DNS reverso para o componente módulo dos nomes da propriedade para diminuir a possibilidade de que dois pacotes desenvolvidos independentemente utilizem o mesmo nome de propriedade para fins diferentes. Os nomes de propriedade que começam com com.sun. estão reservados para utilização da Oracle Corporation.

O valor da propriedade do usuário deve estar de acordo com as convenções a seguir:

Por exemplo:


# zfs set dept:users=finance userpool/user1
# zfs set dept:users=general userpool/user2
# zfs set dept:users=itops userpool/user3

Todos os comandos que operam em propriedades, tais como zfs list, zfs get, zfs set, etc., podem ser usados para manipular propriedades nativas e de usuário.

Por exemplo:


zfs get -r dept:users userpool
NAME            PROPERTY    VALUE           SOURCE
userpool        dept:users  all             local
userpool/user1  dept:users  finance         local
userpool/user2  dept:users  general         local
userpool/user3  dept:users  itops           local

Para limpar uma propriedade de usuário, use o comando zfs inherit. Por exemplo:


# zfs inherit -r dept:users userpool

Se a propriedade não estiver definida em nenhum conjunto de dados pai, ela é totalmente removida.