Mapeamentos do FlashCopy

A função FlashCopy cria uma cópia point-in-time de dados que são armazenados em um volume de origem para um volume de destino. Em seu modo básico, a função FlashCopy cria cópias de conteúdo em um volume de origem para um volume de destino em um mapeamento. A função associa um volume de origem e um volume de destino em um mapeamento. Se os dados existirem no volume de destino, esses dados serão substituídos pelos dados copiados.

A função FlashCopy® cria uma cópia instantânea de um volume no momento em que ele é iniciado. Para criar uma cópia instantânea de um volume, deve-se primeiro criar um mapeamento entre o volume de origem (o disco que é copiado) e o volume de destino (o disco que recebe a cópia). Os volumes de origem e de destino devem ter o mesmo tamanho.

Um mapeamento de FlashCopy define o relacionamento que copia dados entre um volume de origem e um volume de destino. Um mapeamento pode ser criado entre qualquer um dos dois volumes em um sistema. Os volumes não precisam estar no mesmo grupo de E/S ou conjunto. Quando uma operação FlashCopy é iniciada, é feito um ponto de verificação do volume de origem. Nenhum dado é copiado no momento em que ocorre uma operação de início. Em vez disso, o ponto de verificação cria um bitmap que indica que nenhuma parte do volume de origem foi copiada. Cada bit no bitmap representa uma região do volume de origem. Cada região é chamada de granularidade. Durante uma operação de leitura para o volume de destino, o bitmap é usado para determinar se a granularidade foi copiada. Se a granularidade foi copiada, os dados serão lidos a partir do volume de destino. Se a granularidade não foi copiada, os dados serão lidos a partir do volume de origem.

Embora seja difícil fazer uma cópia consistente de um conjunto de dados que é constantemente atualizado, as técnicas de cópia momentânea ajudam a resolver esse problema. Se uma cópia de um conjunto de dados for criada usando uma tecnologia que não fornece técnicas momentâneas e o conjunto de dados for alterado durante a operação de cópia, a cópia resultante poderá conter dados que não são consistentes. Por exemplo, se uma referência para um objeto for copiada anteriormente ao próprio objeto e o objeto for movido antes de ser copiado, a cópia conterá o objeto de referência em seu novo local, mas a referência copiada ainda apontará para o local anterior. Também é possível designar cópia em plano de fundo e taxas de limpeza a um mapeamento de FlashCopy para controlar a taxa na qual as atualizações são propagadas ao sistema remoto. Os valores de taxa de cópia do mapeamento de FlashCopy podem ser de 128 KBps a 2 GBps e podem ser mudados quando o mapeamento de FlashCopy está em qualquer estado.

Os mapeamentos de FlashCopy podem ser designados a um grupo de propriedades. Um grupo de propriedades define um subconjunto de usuários e objetos no sistema. É possível criar grupos de propriedades para restringir ainda mais o acesso a recursos específicos que estão definidos no grupo de propriedades. Somente usuários com funções de Administrador de segurança podem configurar e gerenciar grupos de propriedades.

A propriedade pode ser definida explicitamente ou pode ser herdada do usuário, do grupo de usuários ou de outros recursos pai, dependendo do tipo de recurso. Os mapeamentos de FlashCopy herdam a propriedade do recurso pai. Um usuário não pode mudar o grupo de propriedades do recurso, mas pode mudar o grupo de propriedades do objeto pai. As regras a seguir se aplicam a mapeamentos de FlashCopy que estão definidos em grupos de propriedades:

  • Mapeamentos de FlashCopy herdam o grupo de propriedades de ambos os volumes definidos no mapeamento.
  • Assim como ocorre com grupos de consistências de FlashCopy, é possível que um grupo de consistências e seus mapeamentos pertençam a grupos de propriedades diferentes. No entanto, a propriedade do grupo de consistências não afeta a propriedade dos mapeamentos que ele contém.

Mapeamentos incrementais do FlashCopy

Em um FlashCopy incremental, o mapeamento inicial copia todos os dados do volume de origem para o volume de destino. Os mapeamentos subsequentes de FlashCopy copiam apenas os dados que foram modificados após o mapeamento inicial de FlashCopy, conforme mostrado em Figura 1. Esse processo reduz a quantidade de tempo que é necessário para recriar uma imagem independente do FlashCopy. É possível definir um mapeamento do FlashCopy como incremental somente ao criar o mapeamento do FlashCopy.

Figura 1. FlashCopy incremental de diferenças
FlashCopy Incremental de Diferenças

Mapeamentos de parceiro do FlashCopy

É possível criar um mapeamento para espelhar um mapeamento incremental existente do FlashCopy. Os mapeamentos que são emparelhados são chamados de parceiros. Um mapeamento pode ter apenas um parceiro. Por exemplo, se você tiver o volume A e o volume B com dois mapeamentos (Mapeamento 0 do volume A para o volume B e Mapeamento 1 do volume B para o volume A), o Mapeamento 0 e o Mapeamento 1 serão parceiros.

Os mapeamentos incrementais do FlashCopy compartilham os metadados para a gravação das alterações. Portanto, se um mapeamento em um par espelhado (parceria) for incremental, o outro mapeamento se tornará incremental automaticamente e permanecerá incremental até que ele seja excluído.

Mapeamentos do FlashCopy em cascata

A função FlashCopy em cascata permite que um volume de destino FlashCopy seja o volume de origem de outro mapeamento FlashCopy, conforme mostrado em Figura 2.

Figura 2. Volumes do FlashCopy em cascata
Exibindo volumes FlashCopy em cascata

Até 256 mapeamentos podem existir em uma cascata. Se os mapeamentos em cascata e vários mapeamentos de destino forem usados, uma árvore de até 256 mapeamentos poderão ser criados.

Vários mapeamentos do FlashCopy de destino

É possível copiar até 256 volumes de destino de um único volume de origem. Cada relacionamento entre um volume de origem e de destino é gerenciado por um mapeamento exclusivo, de forma que um único volume possa ser o volume de origem em até 256 mapeamentos.

Cada um dos mapeamentos de uma única origem pode ser iniciado e parado de forma independente. Se vários mapeamentos da mesma origem estiverem ativos (nos estados de cópia ou parada), existirá uma dependência entre esses mapeamentos.

Por exemplo, o Mapeamento A dependerá do Mapeamento B se as seguintes condições forem verdadeiras:
  • O mapeamento A e o mapeamento B possuem o mesmo volume de origem.
  • Os mapeamentos A e B estão no estado copiando ou de parada.
  • O mapeamento B foi iniciado mais recentemente que o mapeamento A.
    Nota: Se ambos os mapeamentos estavam no mesmo grupo de consistências e iniciaram ao mesmo tempo, a ordem de dependência será decidida internamente quando o grupo de consistências for iniciado.
  • O mapeamento A não possui uma cópia concluída da origem porque o progresso copiando para o mapeamento é menor que 100.
  • Um mapeamento não existe na mesma origem que foi iniciada mais recentemente que A e mais posteriormente que B que possui uma cópia completa da origem porque o progresso da cópia do mapeamento é menor que 100.

Como outro exemplo, o volume de destino A dependerá do volume de destino B se o mapeamento ao qual o volume A pertence depender do mapeamento ao qual o volume de destino B pertence. O volume de destino do mapeamento iniciado mais recentemente a partir do volume de origem dependerá do volume de origem até que uma cópia completa da origem seja criada (o progresso é 100%).

Taxa de limpeza, taxa de cópia e exclusão automática

Ao criar um mapeamento, você especificará uma taxa de limpeza. A taxa de limpeza é usada para controlar a taxa em que os dados são copiados do volume de destino do mapeamento para o volume de destino de um mapeamento que é a cópia mais recente do volume de destino, ou é a próxima cópia mais antiga do volume de origem. A taxa de limpeza é usada nas situações a seguir:
  • O mapeamento está no estado de parada.
  • O mapeamento está no estado copiando e possui uma taxa de cópia de zero.
  • O mapeamento está no estado copiando e a cópia em plano de fundo foi concluída.

É possível usar a taxa de limpeza para minimizar a quantia de tempo que um mapeamento está no estado de parada. Se o mapeamento não estiver concluído, o volume de destino ficará off-line enquanto o mapeamento estiver parando. O volume de destino permanece off-line até que o mapeamento seja reiniciado.

Você também especificará uma taxa de cópia ao criar um mapeamento. Quando o mapeamento estiver no estado copiando, a taxa de cópia determinará a prioridade fornecida ao processo de cópia em segundo plano. Se desejar uma cópia do volume de origem inteiro para que um mapeamento possa ser excluído e ainda ser acessado a partir do volume de destino, você deverá copiar todos os dados que estão no volume de origem para o volume de destino.

Os valores padrão para a taxa limpa e a taxa de cópia é de 50.

Quando um mapeamento é iniciado e a taxa de cópia é maior que zero, os dados inalterados são copiados para o volume de destino. O bitmap é atualizado para mostrar que os dados foram copiados. Depois de um tempo, o volume inteiro é copiado para o destino, cujo comprimento depende da prioridade que foi determinada pela taxa de cópia e pelo tamanho do volume. O mapeamento retorna para o estado idle_or_copied e agora é possível reiniciar o mapeamento a qualquer momento para criar uma nova cópia no destino.

Enquanto o mapeamento estiver no estado copiando, será possível configurar a taxa de cópia para zero e a taxa de limpeza para um valor diferente de zero para minimizar a quantia de tempo que um mapeamento está no estado de parada.

Se você usar diversos mapeamentos de destino, o mapeamento poderá ficar no estado copiando após todos os dados de origem serem copiados para o destino (o progresso é de 100%). Essa situação poderá ocorrer se os mapeamentos que foram iniciados anteriormente e usam o mesmo disco de origem ainda não estejam 100% copiados.

Se a taxa de cópia for zero, somente os dados que alteram na origem são copiados para o destino. O destino nunca contém uma cópia da origem inteira a menos que cada extensão seja sobrescrita na origem. É possível usar essa taxa de cópia quando você precisar de uma cópia temporária da origem.

É possível parar o mapeamento a qualquer momento. Entretanto, a menos que o volume de destino já contenha uma cópia completa do volume de origem, quando o mapeamento for interrompido, o destino se tornará inconsistente e o volume de destino será colocado no modo off-line. O volume de destino permanece off-line até que o mapeamento seja reiniciado.

Também é possível configurar o atributo de exclusão automática. Se esse atributo estiver configurado como on, o mapeamento será automaticamente excluído quando o mapeamento atingir o estado idle_or_copied e o progresso for de 100%.

Estados de mapeamento do FlashCopy

Em qualquer ponto, um mapeamento estará em um dos estados a seguir:
Inativo ou copiado
Os volumes de origem e de destino agem como volumes independentes, mesmo se existir um mapeamento entre os dois. O armazenamento em cache de leitura e gravação é ativado para os volumes de origem e de destino.

Se o mapeamento for incremental e a cópia em segundo plano for concluída, o mapeamento registrará apenas as diferenças entre os volumes de origem e de destino. Se a conexão com ambos os nós no grupo de E/S ao qual o mapeamento é designado for perdida, os volumes de origem e de destino ficarão off-line.

Copiar
A cópia está em progresso. O armazenamento em cache de leitura e gravação é ativado nos volumes de origem e de destino.
Preparado
O mapeamento está pronto para ser iniciado. O volume de destino está on-line, mas não está acessível. O volume de destino não pode executar o cache de leitura ou gravação. O cache de leitura e gravação falhou pelo front-end do SCSI como um erro de hardware. Se o mapeamento for incremental e um mapeamento anterior tiver sido concluído, o mapeamento registrará apenas as diferenças entre os volumes de origem e destino. Se a conexão com ambos os nós no grupo de E/S à qual o mapeamento está atribuído for perdida, os volumes de origem e de destino ficarão off-line.
Preparando
O volume de destino está on-line, mas não está acessível. O volume de destino não pode executar o cache de leitura ou gravação. O cache de leitura e gravação falhou pelo front-end do SCSI como um erro de hardware. Qualquer dado de gravação alterado para o volume de origem é limpo do cache. Qualquer dado de leitura ou gravação para o volume de destino é descartado do cache. Se o mapeamento for incremental e um mapeamento anterior tiver sido concluído, o mapeamento registrará apenas as diferenças entre os volumes de origem e destino. Se a conexão com ambos os nós no grupo de E/S à qual o mapeamento está atribuído for perdida, os volumes de origem e de destino ficarão off-line.
Interrompido
O mapeamento é interrompido porque você emitiu um comando de parada ou ocorreu um erro de E/S. O volume de destino está off-line e seus dados serão perdidos. Para acessar o volume de destino, você deve reiniciar ou excluir o mapeamento. O volume de origem está acessível e o cache de leitura e gravação está ativado. Se o mapeamento for incremental, o mapeamento estará registrando operações de gravação para o volume de origem. Se a conexão com ambos os nós no grupo de E/S à qual o mapeamento está atribuído for perdida, os volumes de origem e de destino ficarão off-line.
Parada
O mapeamento está copiando dados para outro mapeamento.
  • Se o processo de cópia em plano de fundo for concluído, o volume de destino ficará on-line enquanto o processo de cópia parando é concluído.
  • Se o processo de cópia em plano de fundo não for concluído, os dados serão descartados do cache do volume de destino. O volume de destino permanece off-line enquanto o processo de cópia parando é executado.
O volume de origem está acessível para as operações de E/S.
Suspenso
O mapeamento foi iniciado, mas ele não concluído. O acesso aos metadados é perdido, o que faz com que o volume de origem e de destino fique off-line. Quando o acesso aos metadados for restaurado, o mapeamento retornará para o estado de cópia ou parada e os volumes de origem e de destino retornarão on-line. O processo de cópia em plano de fundo continua. Se os dados não foram limpos e foram gravados no volume de origem ou de destino antes da suspensão, eles ficarão no cache até que o mapeamento deixe o estado suspenso.
Observações:
  1. Se um volume de origem FlashCopy ficar off-line, quaisquer volumes de destino FlashCopy que dependem desse volume também ficarão off-line.
  2. Se um volume de destino FlashCopy ficar off-line, quaisquer volumes de destino FlashCopy que dependem desse volume também ficarão off-line. O volume de origem permanece on-line.
Antes de iniciar o mapeamento, você deverá prepará-lo. Preparando o mapeamento assegura que os dados no cache serão migrados para disco e uma cópia consistente da origem existe no disco. O cache entra no modo de gravação no cache e na memória principal (write-through). Os dados gravados na origem não são armazenados em cache nos nós do SAN Volume Controller ; eles são transmitidos diretamente através do MDisks. A operação de preparação para o mapeamento pode levar algum tempo para ser concluída; a quantidade de tempo real depende do tamanho do volume de origem. Você deve coordenar a operação de preparação com o sistema operacional. Dependendo do tipo de dados que está no volume de origem, o sistema operacional ou o software de aplicativo também pode armazenar em cache as operações de gravação de dados. Você deverá limpar ou sincronizar, o sistema de arquivos e o programa de aplicativo antes de preparar e iniciar o mapeamento.
Nota: Os comandos startfcmap e startfcconsistgrp podem levar algum tempo para serem processados.

Se você não desejar usar grupos de consistências, o sistema permitirá que um mapeamento seja tratado como uma entidade independente. Nesse caso, o mapeamento é conhecido como um mapeamento independente. Para os mapeamentos que foram configurados dessa maneira, use os comandos prestartfcmap e startfcmap em vez dos comandos prestartfcconsistgrp e startfcconsistgrp.

Restauração de mapeamento FlashCopy

É possível iniciar um mapeamento com um volume de destino que seja o volume de origem de outro mapeamento ativo nos estados idle_copied, stopped ou copying. Se o mapeamento estiver no estado copying, o parâmetro restore será necessário para os comandos startfcmap e prestartfcmap. É possível restaurar o conteúdo de um volume de origem do FlashCopy usando o destino do mesmo mapeamento de FlashCopy ou um mapeamento diferente de FlashCopy sem esperar que o mapeamento fique inativo e sem perda do conteúdo de qualquer outro volume de destino FlashCopy.

Veritas Volume Manager

Para os volumes de destino FlashCopy, o sistema configura um bit nos dados de consulta para esses estados de mapeamento em que o volume de destino pode ser uma imagem exata do volume de origem. A configuração desse bit permite que o Veritas Volume Manager faça distinção entre os volumes de origem e de destino e forneça acesso independente a ambos.