JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de administração do Oracle Solaris ZFS     Oracle Solaris 10 1/13 Information Library (Português (Brasil))
search filter icon
search icon

Informação sobre o documento

Prefácio

1.  Sistema de arquivos do Oracle Solaris ZFS (introdução)

2.  Introdução ao ZFS do Oracle Solaris

3.  Gerenciando pools de armazenamento do Oracle Solaris ZFS

4.  Instalando e inicializando um sistema de arquivos raiz do Oracle Solaris ZFS

5.  Gerenciando sistemas de arquivos ZFS do Oracle Solaris

6.  Trabalhando com instantâneos e clones do Oracle Solaris ZFS

Visão geral dos instantâneos do ZFS

Criando e destruindo instantâneos do ZFS

Mantendo instantâneos do ZFS

Renomeando instantâneos do ZFS

Exibindo e acessando instantâneos do ZFS

Contabilidade de espaço em disco para instantâneos do ZFS

Retornando um instantâneo ZFS

Identificação de diferenças do instantâneo do ZFS (zfs diff

Visão geral dos clones do ZFS

Criando um clone do ZFS

Destruindo um clone do ZFS

Substituindo um sistema de arquivos ZFS por um clone do ZFS

Enviando e recebendo dados do ZFS

Salvando dados do ZFS com outros produtos de backup

Identificando fluxos de instantâneos do ZFS

Enviando um instantâneo do ZFS

Recebendo um instantâneo do ZFS

Aplicação de valores de propriedade diferentes a um fluxo de instantâneos do ZFS

Enviando e recebendo fluxos complexos de instantâneos do ZFS

Replicação remota de dados do ZFS

7.  Uso de ACLs e atributos para proteger arquivos do Oracle Solaris ZFS

8.  Administração delegada do ZFS do Oracle Solaris

9.  Tópicos avançados do Oracle Solaris ZFS

10.  Solução de problemas e recuperação de pools do Oracle Solaris ZFS

11.  Práticas Recomendadas do Oracle Solaris ZFS

A.  Descrição das versões do Oracle Solaris ZFS

Índice

Visão geral dos instantâneos do ZFS

Um instantâneo é uma cópia de somente leitura de um sistema de arquivos ou volume. Os instantâneos podem ser criados quase que instantaneamente e, no início, não consomem espaço em disco adicional dentro do pool. No entanto, à medida que os dados do conjunto de dados ativo são alterados, o instantâneo consome espaço em disco, continuando a fazer referência aos dados antigos, o que impede que o espaço em disco seja liberado.

Os instantâneos do ZFS contam com os seguintes recursos:

Os instantâneos de volumes não podem ser acessados diretamente, mas podem ser clonados, revertidos, ter um backup, e assim por diante. Para obter mais informações sobre o backup de um instantâneo do ZFS, consulte Enviando e recebendo dados do ZFS.

Criando e destruindo instantâneos do ZFS

Os instantâneos são criados com o comando zfs snapshot, que apresenta o nome do instantâneo a ser criado como seu único argumento. O nome do instantâneo é especificado da seguinte forma:

filesystem@snapname
volume@snapname

O nome do instantâneo deve estar de acordo com os requisitos de identificação em Requisitos para nomeação de componentes do ZFS.

No exemplo seguinte, é criado um instantâneo de tank/home/cindy denominado friday.

# zfs snapshot tank/home/cindy@friday

É possível criar instantâneos para todos os sistemas de arquivos descendentes com a opção -r. Por exemplo:

# zfs snapshot -r tank/home@snap1
# zfs list -t snapshot -r tank/home
NAME                   USED  AVAIL  REFER  MOUNTPOINT
tank/home@snap1           0      -  2.11G  -
tank/home/cindy@snap1     0      -   115M  -
tank/home/lori@snap1      0      -  2.00G  -
tank/home/mark@snap1      0      -  2.00G  -
tank/home/tim@snap1       0      -  57.3M  -

Os instantâneos não possuem propriedades que possam ser modificadas. E as propriedades do conjunto de dados também não podem ser aplicadas a um instantâneo. Por exemplo:

# zfs set compression=on tank/home/cindy@friday
cannot set property for 'tank/home/cindy@friday': 
this property can not be modified for snapshots

Os instantâneos são destruídos com o comando zfs destroy. Por exemplo:

# zfs destroy tank/home/cindy@friday

Um conjunto de dados não pode ser destruído se existirem instantâneos deste conjunto de dados. Por exemplo:

# zfs destroy tank/home/cindy
cannot destroy 'tank/home/cindy': filesystem has children
use '-r' to destroy the following datasets:
tank/home/cindy@tuesday
tank/home/cindy@wednesday
tank/home/cindy@thursday

Além disso, se foram criados clones de um instantâneo, tais clones devem ser destruídos antes que o instantâneo seja destruído.

Para obter mais informações sobre o subcomando destroy, consulte Destruindo um sistema de arquivos ZFS.

Mantendo instantâneos do ZFS

Se você possui uma política de instantâneo automático diferente, na qual instantâneos mais antigos estão sendo destruídos sem aviso pelo zfs receive por não existirem mais no lado de envio, é possível utilizar a função de contenção de instantâneos.

Conter um instantâneo evita que ele seja destruído. Além disso, este recurso permite que um instantâneo com clones a ser excluídos aguardando a remoção do último clone ao utilizar o comando zfs destroy -d. Cada instantâneo possui uma contagem associada para referência do usuário, inicializada no zero. Esta contagem aumenta de 1 em 1 quando uma contenção é colocada em um instantâneo e diminui de 1 em 1 quando uma contenção é liberada.

Na versão anterior do Oracle Solaris, instantâneos poderiam ser destruídos apenas através do comando zfs destroy se esses não tivessem clones. Nesta versão do Oracle Solaris, o instantâneo também deve possuir uma contagem para referência do usuário em zero.

É possível conter um instantâneo ou conjunto de instantâneos. Por exemplo, a seguinte sintaxe coloca uma tag de contenção, keep, em tank/home/cindy/snap@1 :

# zfs hold keep tank/home/cindy@snap1

É possível utilizar a opção -r como recurso para conter os instantâneos de todos os sistemas de arquivos descendentes. Por exemplo:

# zfs snapshot -r tank/home@now
# zfs hold -r keep tank/home@now

Esta sintaxe adiciona uma única referência, manter, ao instantâneo ou ao conjunto de instantâneos. Cada instantâneo tem sua própria tag de namespace, e as tags de contenção devem ser únicas no espaço. Se existir uma contenção em um instantâneo, as tentativas para destruir o instantâneo contido através do comando zfs destroy falharão. Por exemplo:

# zfs destroy tank/home/cindy@snap1
cannot destroy 'tank/home/cindy@snap1': dataset is busy

Para destruir um instantâneo contido, utilize a opção -d. Por exemplo:

# zfs destroy -d tank/home/cindy@snap1

Utilize o comando zfs holds para exibir uma lista de instantâneos contidos. Por exemplo:

# zfs holds tank/home@now
NAME           TAG   TIMESTAMP                 
tank/home@now  keep  Fri Aug  3 15:15:53 2012  
# zfs holds -r tank/home@now
NAME                 TAG   TIMESTAMP                 
tank/home/cindy@now  keep  Fri Aug  3 15:15:53 2012  
tank/home/lori@now   keep  Fri Aug  3 15:15:53 2012  
tank/home/mark@now   keep  Fri Aug  3 15:15:53 2012  
tank/home/tim@now    keep  Fri Aug  3 15:15:53 2012  
tank/home@now        keep  Fri Aug  3 15:15:53 2012  

É possível utilizar o comando zfs release para liberar a contenção de um instantâneo ou de um conjunto de instantâneos. Por exemplo:

# zfs release -r keep tank/home@now

Se uma contenção for liberada, o instantâneo pode ser destruído através do comando zfs destroy. Por exemplo:

# zfs destroy -r tank/home@now

Duas novas propriedades identificam as informações de contenção de instantâneos.

Renomeando instantâneos do ZFS

É possível renomear instantâneos, porém eles devem ser renomeados dentro do mesmo pool e conjunto de dados a partir do qual foram criados. Por exemplo:

# zfs rename tank/home/cindy@snap1 tank/home/cindy@today

Além disso, a seguinte sintaxe do atalho é equivalente à sintaxe anterior:

# zfs rename tank/home/cindy@snap1 today

A seguinte operação rename de instantâneo não é suportada porque o pool de destino e o nome do sistema de arquivos são diferentes do pool e do sistema de arquivos onde o instantâneo foi criado:

# zfs rename tank/home/cindy@today pool/home/cindy@saturday
cannot rename to 'pool/home/cindy@today': snapshots must be part of same 
dataset

Como recurso, é possível renomear instantâneos com o comando zfs rename -r. Por exemplo:

# zfs list -t snapshot -r users/home
NAME                        USED  AVAIL  REFER  MOUNTPOINT
users/home@now             23.5K      -  35.5K  -
users/home@yesterday           0      -    38K  -
users/home/lori@yesterday      0      -  2.00G  -
users/home/mark@yesterday      0      -  1.00G  -
users/home/neil@yesterday      0      -  2.00G  -
# zfs rename -r users/home@yesterday @2daysago
# zfs list -t snapshot -r users/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
users/home@now            23.5K      -  35.5K  -
users/home@2daysago           0      -    38K  -
users/home/lori@2daysago      0      -  2.00G  -
users/home/mark@2daysago      0      -  1.00G  -
users/home/neil@2daysago      0      -  2.00G  -

Exibindo e acessando instantâneos do ZFS

Você pode ativar ou desativar a exibição das listas de instantâneos na saída zfs list usando a propriedade listsnapshots do pool. Esta propriedade está ativada por padrão.

Se desativar esta propriedade, você pode usar o comando zfs list -t snapshot para exibir as informações do instantâneo. Ou, ative a propriedade listsnapshots do pool. Por exemplo:

# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  on        default
# zpool set listsnapshots=off tank
# zpool get listsnapshots tank
NAME  PROPERTY       VALUE      SOURCE
tank  listsnapshots  off         local

Os instantâneos de sistemas de arquivos podem ser acessados no diretório .zfs/snapshot dentro da raiz do sistema de arquivos. Por exemplo, se ank/home/cindy estiver montado em /home/ahrens, então os dados do instantâneo tank/home/ahrens@thursday poderão ser acessados no diretório /home/ahrens/.zfs/snapshot/thursday .

# ls /tank/home/cindy/.zfs/snapshot
thursday   tuesday    wednesday

Os instantâneos podem ser listados da seguinte forma:

# zfs list -t snapshot -r tank/home
NAME                       USED  AVAIL  REFER  MOUNTPOINT
tank/home/cindy@tuesday     45K      -  2.11G  -
tank/home/cindy@wednesday   45K      -  2.11G  -
tank/home/cindy@thursday      0      -  2.17G  -

Os instantâneos criados para um sistema de arquivos específico podem ser listados da seguinte forma:

# zfs list -r -t snapshot -o name,creation tank/home
NAME                       CREATION
tank/home/cindy@tuesday    Fri Aug  3 15:18 2012
tank/home/cindy@wednesday  Fri Aug  3 15:19 2012
tank/home/cindy@thursday   Fri Aug  3 15:19 2012
tank/home/lori@today       Fri Aug  3 15:24 2012
tank/home/mark@today       Fri Aug  3 15:24 2012

Contabilidade de espaço em disco para instantâneos do ZFS

Quando um instantâneo é criado, seu espaço em disco é inicialmente compartilhado entre o instantâneo e o sistema de arquivos e, possivelmente, com os instantâneos anteriores. À medida que o sistema de arquivos é alterado, o espaço em disco previamente compartilhado torna-se exclusivo do instantâneo e é incluído na propriedade used do instantâneo. Além disso, a exclusão de instantâneos pode aumentar a quantidade de espaço em disco exclusivo de (e conseqüentemente ser utilizado por) outros instantâneos.

Um valor de propriedade referenced do espaço do instantâneo é o mesmo que o do sistema de arquivos quando o instantâneo foi criado.

É possível identificar informações adicionais sobre como os valores da propriedade used são consumidos. Novas propriedades de sistema de arquivos de somente leitura descrevem a utilização do espaço em disco para clones, sistemas de arquivos e volumes. Por exemplo:

$ zfs list -o space -r rpool
NAME                       AVAIL   USED  USEDSNAP  USEDDS  USEDREFRESERV  USEDCHILD
rpool                      59.1G  7.84G       21K    109K              0      7.84G
rpool@snap1                    -    21K         -       -              -          -
rpool/ROOT                 59.1G  4.78G         0     31K              0      4.78G
rpool/ROOT@snap1               -      0         -       -              -          -
rpool/ROOT/zfsBE           59.1G  4.78G     15.6M   4.76G              0          0
rpool/ROOT/zfsBE@snap1         -  15.6M         -       -              -          -
rpool/dump                 59.1G  1.00G       16K   1.00G              0          0
rpool/dump@snap1               -    16K         -       -              -          -
rpool/export               59.1G    99K       18K     32K              0        49K
rpool/export@snap1             -    18K         -       -              -          -
rpool/export/home          59.1G    49K       18K     31K              0          0
rpool/export/home@snap1        -    18K         -       -              -          -
rpool/swap                 61.2G  2.06G         0     16K          2.06G          0
rpool/swap@snap1               -      0         -       -              -          -

Para obter uma descrição dessas propriedades, consulte a Tabela 5-1.

Retornando um instantâneo ZFS

É possível utilizar o comando zfs rollback para descartar todas as alterações feitas ao sistema de arquivos desde a criação de um instantâneo específico. O sistema de arquivos volta ao estado que se encontrava no momento em que o instantâneo foi realizado. Por padrão, o comando só pode reverter um instantâneo ao instantâneo mais recente.

Para reverter a um instantâneo anterior, todos os instantâneos intermediários devem ser destruídos. Os instantâneos anteriores podem ser destruídos especificando a opção -r.

Se os instantâneos intermediários possuírem clones, a opção -R também deve ser especificada para destruí-los.


Observação - Se o sistema de arquivos que deseja reverter estiver atualmente montado, ele será desmontado e remontado. Se o sistema de arquivos não puder ser desmontado, a reversão falhará. A opção -f obriga o sistema de arquivos a ser desmontado, se necessário.


No exemplo abaixo, o sistema de arquivos tank/home/cindy é revertido ao instantâneo tuesday:

# zfs rollback tank/home/cindy@tuesday
cannot rollback to 'tank/home/cindy@tuesday': more recent snapshots exist
use '-r' to force deletion of the following snapshots:
tank/home/cindy@wednesday
tank/home/cindy@thursday
# zfs rollback -r tank/home/cindy@tuesday

Neste exemplo, os instantâneos wednesday e thursday são destruídos porque você reverteu para o instantâneo tuesday.

# zfs list -r -t snapshot -o name,creation tank/home/cindy
NAME                     CREATION
tank/home/cindy@tuesday  Fri Aug  3 15:18 2012

Identificação de diferenças do instantâneo do ZFS (zfs diff

Você pode determinar diferenças de instantâneos do ZFS usando o comando zfs diff.

Por exemplo, considere que estes dois instantâneos sejam criados:

$ ls /tank/home/tim
fileA
$ zfs snapshot tank/home/tim@snap1
$ ls /tank/home/tim
fileA  fileB
$ zfs snapshot tank/home/tim@snap2

Por exemplo, para identificar as diferenças entre dois instantâneos, use sintaxe semelhante à seguinte:

$ zfs diff tank/home/tim@snap1 tank/home/tim@snap2
M       /tank/home/tim/
+       /tank/home/tim/fileB

Na saída, M indica que o diretório foi modificado. + indica que fileB existe no instantâneo posterior.

O R na saída a seguir indica que um arquivo em um instantâneo foi renomeado.

$ mv /tank/cindy/fileB /tank/cindy/fileC
$ zfs snapshot tank/cindy@snap2
$ zfs diff tank/cindy@snap1 tank/cindy@snap2
M       /tank/cindy/
R       /tank/cindy/fileB -> /tank/cindy/fileC

A tabela a seguir resume as alterações de arquivo ou diretório que são identificadas pelo comando zfs diff.

Alteração de arquivo ou diretório
Identificador
O arquivo ou diretório foi modificado ou o link do arquivo ou diretório foi alterado
M
O arquivo ou diretório está presente no instantâneo mais antigo, mas não no instantâneo mais recente
O arquivo ou diretório está presente no instantâneo mais recente, mas não no instantâneo mais antigo
+
O arquivo ou diretório foi renomeado
A

Para obter mais informações, consulte zfs(1M).