Solaris 10 10/09 e Oracle Solaris 10 9/10: os aprimoramentos do sistema de arquivos do ZFS a seguir estão incluídos nessas 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 - |