JavaScript is required to for searching.
Ignorar Links de Navegao
Sair do Modo de Exibio de Impresso
Guia de administração do ZFS Oracle Solaris
search filter icon
search icon

Informação sobre o documento

Prefácio

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

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

Visão geral dos instantâneos do ZFS

Criando e destruindo instantâneos do ZFS

Contendo 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

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

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

A.  Descrição da versão do ZFS do Oracle Solaris

Índice

Enviando e recebendo dados do ZFS

O comando zfs send cria uma representação do fluxo de um instantâneo gravado em uma saída padrão. Por padrão, um fluxo inteiro é gerado. Você pode redirecionar a saída para um arquivo ou para outro sistema. O comando zfs receive cria um instantâneo cujo conteúdo está especificado no fluxo fornecido na entrada padrão. Se um fluxo inteiro for recebido, um novo sistema de arquivos também é criado. Com estes comandos, é possível enviar os dados do instantâneo do ZFS e receber os dados do instantâneo e os sistemas de arquivos ZFS. Consulte os exemplos nesta seção.

Estão disponíveis as seguintes soluções de backup para salvamento de dados do ZFS:

Salvando dados do ZFS com outros produtos de backup

Além dos comandos zfs send e zfs receive, você também pode usar utilitários de arquivo, como os comandos tar e cpio, para salvar os arquivos ZFS. Estes utilitários salvam e restauram ACLs e atributos do arquivo do ZFS. Verifique as opções adequadas para os comandos tar e cpio.

Para obter informações atualizadas sobre problemas com o ZFS e produtos de backup de terceiros, consulte as notas da versão do Solaris 10 ou o FAQ do ZFS, disponível aqui:

http://hub.opensolaris.org/bin/view/Community+Group+zfs/faq/#backupsoftware

Enviando um instantâneo do ZFS

Você pode utilizar o comando zfs send para enviar uma cópia de um fluxo de instantâneo e receber o fluxo de instantâneo em outro conjunto do mesmo sistema ou em outro conjunto de outro sistema utilizado para armazenar dados de backup. Por exemplo, para enviar o fluxo de instantâneo de outro conjunto do mesmo sistema, utilize uma sintaxe semelhante à seguinte:

# zfs send tank/dana@snap1 | zfs recv spool/ds01

O zfs recv pode ser usado como um alias do comando zfs receive.

Se estiver enviando o fluxo de instantâneo a outro sistema, conduza a saída de zfs send através do comando ssh. Por exemplo:

host1# zfs send tank/dana@snap1 | ssh host2 zfs recv newtank/dana

Ao enviar um fluxo completo, o sistema de arquivos de destino não deve existir.

É possível salvar dados incrementais usando a opção i do -zfs send . Por exemplo:

host1# zfs send -i tank/dana@snap1 tank/dana@snap2 | ssh host2 zfs recv newtank/dana

Observe que o primeiro argumento (snap1) é o instantâneo mais antigo e o segundo (snap2) é o instantâneo mais recente. Nesse caso, o sistema de arquivos newtank/dana deve existir para que o recebimento incremental tenha êxito.

A origem do snap1 incremental pode ser especificada como o último componente do nome do instantâneo. Este atalho significa que é necessário especificar o nome do snap1 somente depois do símbolo @, que se supõe ser do mesmo sistema de arquivos que o snap2. Por exemplo:

host1# zfs send -i snap1 tank/dana@snap2 > ssh host2 zfs recv newtank/dana

Esta sintaxe de atalho é equivalente à sintaxe incremental no exemplo anterior.

Se você tentar gerar um fluxo incremental do instantâneo1 de um sistema de arquivos diferente, é exibida a seguinte mensagem:

cannot send 'pool/fs@name': not an earlier snapshot from the same fs

Se precisar restaurar várias cópias, considere compactar uma representação de fluxo de instantâneo do ZFS com o comando gzip. Por exemplo:

# zfs send pool/fs@snap | gzip > backupfile.gz

Recebendo um instantâneo do ZFS

Leve em consideração as seguintes questões ao receber um instantâneo de um sistema de arquivos:

Por exemplo:

# zfs send tank/gozer@0830 > /bkups/gozer.083006
# zfs receive tank/gozer2@today < /bkups/gozer.083006
# zfs rename tank/gozer tank/gozer.old
# zfs rename tank/gozer2 tank/gozer

Se fizer uma alteração no sistema de arquivos de destino, e quiser efetuar outro envio incremental de um instantâneo, é necessário, primeiramente, reverter o sistema de arquivos receptor.

Considere o seguinte exemplo. Primeiro, faça uma alteração ao sistema de arquivos, como segue:

host2# rm newtank/dana/file.1

Então, efetue um envio incremental de tank/dana@snap3. No entanto, é necessário reverter o sistema de arquivos receptor para receber o novo instantâneo incremental. Ou então, a etapa de reversão pode ser eliminada utilizando a opção -F . Por exemplo:

host1# zfs send -i tank/dana@snap2 tank/dana@snap3 | ssh host2 zfs recv -F newtank/dana

Quando um instantâneo incremental é recebido, o sistema de arquivos de destino já dever existir.

Se fizer alterações ao sistema de arquivos e não reverter o sistema de arquivos receptores para receber o novo instantâneo incremental ou não utilizar a opção -F, será exibida uma mensagem similar à seguinte:

host1# zfs send -i tank/dana@snap4 tank/dana@snap5 | ssh host2 zfs recv newtank/dana
cannot receive: destination has been modified since most recent snapshot

As verificações seguintes são realizadas antes que a opção -F seja realizada:

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

Você pode enviar um fluxo de instantâneos com um determinado valor de propriedade do sistema de arquivos, mas pode especificar um valor de propriedade local quando o fluxo de instantâneos for recebido. Ou você pode especificar que o valor de propriedade original seja usado quando o fluxo de instantâneos for recebido para recriar o sistema de arquivos original. Além disso, você pode desativar uma propriedade do sistema de arquivos quando o fluxo de instantâneos for recebido.

Em alguns casos, as propriedades do sistema de arquivos em um fluxo de envio podem não se aplicar ao sistema de arquivos de recebimento ou às propriedades do sistema de arquivos local, como o valor de propriedade mountpoint, que pode interferir em uma restauração.

Por exemplo, o sistema de arquivos tank/data tem a propriedade de compactação desativada. Um instantâneo do sistema de arquivos tank/data- é enviado com propriedades (opção p) para um pool de backup e é recebido com a propriedade de compactação ativada.

# zfs get compression tank/data
NAME       PROPERTY     VALUE     SOURCE
tank/data  compression  off       default
# zfs snapshot tank/data@snap1
# zfs send -p tank/data@snap1 | zfs recv -o compression=on -d bpool
# zfs get -o all compression bpool/data
NAME        PROPERTY     VALUE     RECEIVED  SOURCE
bpool/data  compression  on        off       local

No exemplo, a propriedade compression é ativada quando o instantâneo é recebido em bpool. Portanto, para bpool/data, o valor de compactação é on.

Se este fluxo de instantâneos for envado para um novo pool, restorepool, para fins de recuperação, você pode manter toas as propriedades originais do instantâneo. Nesse caso, você usaria o comando zfs send -b para restaurar as propriedades originais do instantâneo. Por exemplo:

# zfs send -b bpool/data@snap1 | zfs recv -d restorepool
# zfs get -o all compression restorepool/data
NAME              PROPERTY     VALUE     RECEIVED  SOURCE
restorepool/data  compression  off       off       received 

No exemplo, o valor de compactação é off, que representa o valor de compactação do instantâneo do sistema de arquivos tank/data original.

Se você tiver um valor de propriedade do sistema de arquivos local em um fluxo de instantâneos e quiser desativar a propriedade quando for recebida, use o comando zfs receive -i. Por exemplo, o comando a seguir envia um fluxo de instantâneos recursivo de sistemas de arquivos do diretório inicial com todas as propriedades do sistema de arquivos reservadas para um pool de backup, mas sem os valores de propriedade de cota:

# zfs send -R tank/home@snap1 | zfs recv -x quota bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   local
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     none   default
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     none   default
bpool/home/mark@snap1  quota     -      -

Se o instantâneo recursivo não foi recebido com a opção -i, a propriedade de cota seria definida nos sistemas de arquivos recebidos.

# zfs send -R tank/home@snap1 | zfs recv bpool/home
# zfs get -r quota bpool/home
NAME                   PROPERTY  VALUE  SOURCE
bpool/home             quota     none   received
bpool/home@snap1       quota     -      -
bpool/home/lori        quota     10G    received
bpool/home/lori@snap1  quota     -      -
bpool/home/mark        quota     10G    received
bpool/home/mark@snap1  quota     -      -

Enviando e recebendo fluxos complexos de instantâneos do ZFS

Esta seção descreve como usar as opções zfs send -I e -R para enviar e receber fluxos de instantâneos mais complexos.

Considere os pontos a seguir ao enviar e receber fluxos de instantâneos do ZFS complexos:

Exemplo 7-1 Enviando e recebendo fluxos complexos de instantâneos do ZFS

É possível combinar um grupo de instantâneos incrementais em um instantâneo usando a opçãozfs send -I. Por exemplo:

# zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@all-I

Então, deve-se remover snapB, snapC e snapD.

# zfs destroy pool/fs@snapB
# zfs destroy pool/fs@snapC
# zfs destroy pool/fs@snapD

Para receber o instantâneo combinado, utilize o comando a seguir.

# zfs receive -d -F pool/fs < /snaps/fs@all-I
# 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  -

Você também pode usar o comando zfs send -I para combinar um instantâneo e um instantâneo de clone a fim de criar um conjunto de dados combinado. Por exemplo:

# zfs create pool/fs
# zfs snapshot pool/fs@snap1
# zfs clone pool/fs@snap1 pool/clone
# zfs snapshot pool/clone@snapA
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I
# zfs destroy pool/clone@snapA
# zfs destroy pool/clone
# zfs receive -F pool/clone < /snaps/fsclonesnap-I

Utilize o comando zfs send -R para replicar um sistema de arquivos ZFS e todos os sistemas de arquivos descendentes, até o instantâneo nomeado. Quando este fluxo é recebido, todas as propriedades, instantâneos, sistemas de arquivo descendentes e clones são preservados.

No exemplo seguinte, são criados instantâneos para os sistemas de arquivos do usuário. Um fluxo de replicação é criado para todos os instantâneos do usuário. A seguir, os instantâneos e sistemas de arquivos originais são destruídos e, então, recuperados.

# zfs snapshot -r users@today
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               187K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -
# zfs send -R users@today > /snaps/users-R
# zfs destroy -r users
# zfs receive -F -d users < /snaps/users-R
# zfs list
NAME                USED  AVAIL  REFER  MOUNTPOINT
users               196K  33.2G    22K  /users
users@today            0      -    22K  -
users/user1          18K  33.2G    18K  /users/user1
users/user1@today      0      -    18K  -
users/user2          18K  33.2G    18K  /users/user2
users/user2@today      0      -    18K  -
users/user3          18K  33.2G    18K  /users/user3
users/user3@today      0      -    18K  -

No exemplo a seguir, o comando zfs send -R foi utilizado para replicar o conjunto de dados users e seus descendentes, e enviar o fluxo replicado para outro conjunto, users2.

# zfs create users2 mirror c0t1d0 c1t1d0
# zfs receive -F -d users2 < /snaps/users-R
# zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
users                224K  33.2G    22K  /users
users@today             0      -    22K  -
users/user1           33K  33.2G    18K  /users/user1
users/user1@today     15K      -    18K  -
users/user2           18K  33.2G    18K  /users/user2
users/user2@today       0      -    18K  -
users/user3           18K  33.2G    18K  /users/user3
users/user3@today       0      -    18K  -
users2               188K  16.5G    22K  /users2
users2@today            0      -    22K  -
users2/user1          18K  16.5G    18K  /users2/user1
users2/user1@today      0      -    18K  -
users2/user2          18K  16.5G    18K  /users2/user2
users2/user2@today      0      -    18K  -
users2/user3          18K  16.5G    18K  /users2/user3
users2/user3@today      0      -    18K  -

Replicação remota de dados do ZFS

Os comandos zfs send e zfs recv podem ser usados para copiar remotamente uma representação de fluxo do instantâneo de um sistema a outro. Por exemplo:

# zfs send tank/cindy@today | ssh newsys zfs recv sandbox/restfs@today

Este comando envia os dados do instantâneo tank/cindy@today e os recebe no sistema de arquivos sandbox/restfs. O comando também cria um instantâneo restfs@today no sistema newsys. Neste exemplo, o usuário foi configurado para que use ssh no sistema remoto.