Trabalhando com pastas montadas e pontos de nova análise
O processamento de um dos conjuntos de arquivos de um componente pode exigir que um solicitante percorra uma árvore de diretório recursivamente, o que pode exigir que o solicitante manipule pastas montadas e reparse pontos (como links) que apontam para dados que não estão no volume atual.
Espera-se que os solicitantes sigam pastas montadas e reparsem pontos ao percorrer uma árvore de diretório, e o VSS tem diretrizes bem definidas para lidar com elas para operações de backup e restauração.
Para ilustrar essas diretrizes, considere o seguinte exemplo:
- O volume \\?\Volume{GUID_1} tem a letra da unidade C:\.
- Um conjunto de arquivos tem um caminho de C:\WriterData.
- Uma especificação de arquivo *.dat é usada pelo conjunto de arquivos.
- A recursão do conjunto de arquivos é definida como TRUE.
- O diretório C:\WriterData está localizado no volume \\?\Volume{GUID_1}.
- O diretório C:\WriterData\Archive é uma pasta montada.
- O volume \\?\Volume{GUID_2} está associado à pasta montada C:\WriterData\Archive.
Manipulando pastas montadas e pontos de nova análise durante o backup
As regras básicas para lidar com pastas montadas e pontos de nova análise no VSS ao executar um backup recursivo podem ser resumidas da seguinte maneira:
- Os caminhos são seguidos entre pastas montadas e pontos de nova análise.
- Se uma pasta montada ou um ponto de nova análise apontar para um volume, esse volume deverá ser copiado por sombra.
- Se um volume contiver pastas montadas ou pontos de nova análise, eles aparecerão na cópia de sombra do volume.
- Os dados que estão sob a pasta montada ou o ponto de nova análise são capturados na cópia de sombra do volume para o qual a pasta montada ou o ponto de nova análise aponta.
Para ilustrar o uso do exemplo acima, porque o sinalizador recursivo está definido, o solicitante deve examinar todos os dados em C:\WriterData\Archive e abaixo.
O solicitante deve adicionar o volume com a letra da unidade C:\ (\\?\Volume{GUID_1}) e o volume associado à pasta montada C:\WriterData\Archive (\\?\Volume{GUID_2}) para o conjunto de cópias de sombra usando IVssBackupComponents::AddToSnapshotSet.
A pasta montada C:\WriterData\Archive aparece na cópia de sombra do volume \\?\Volume{GUID_1}, que tem um objeto de dispositivo chamado deviceObject1.
No entanto, o VSS não copiará nenhum dado nessa pasta montada (dados em \\?\Volume{GUID_2}) para a cópia de sombra referenciada por deviceObject1. Em vez disso, esses dados são capturados na cópia de sombra de \\?\Volume{GUID_2}, que tem um objeto de dispositivo chamado deviceObject2.
Portanto, um solicitante que está fazendo backup de arquivos copiados de sombra em C:\WriterData usará um caminho de deviceObject1\WriterData para pesquisar arquivos correspondentes a C:\WriterData\*.dat.
Para fazer backup de arquivos copiados por sombra em C:\WriterData\Archive, o solicitante usará um caminho de deviceObject2 (porque o diretório raiz de \\?\Volume{GUID_2} foi associado à pasta montada C:\Writer\Archive) para pesquisar arquivos correspondentes a C:\WriterData\Archive\*.dat.
Observe que um ponto de nova análise é tratado da mesma forma que uma pasta montada. O ponto de nova análise aparece na cópia de sombra do primeiro volume. Os dados sob o ponto de nova análise aparecem na cópia de sombra do segundo volume.
Durante o backup, os solicitantes devem armazenar informações sobre pastas montadas e os volumes associados a elas, bem como pontos de nova análise e seus destinos para garantir que todos os dados sejam copiados em backup e restaurados corretamente.
Manipulando pontos de montagem e nova análise durante a restauração
Ao restaurar arquivos, o solicitante deve seguir diretrizes um pouco diferentes daquelas que foram usadas durante o backup (ignorando problemas como mapeamento de localização alternativo e novo local de destino):
- Como antes, se a recursão for necessária, os caminhos serão seguidos entre pastas montadas e pontos de nova análise.
- As pastas montadas devem ser restauradas.
- Os locais de restauração de pastas montadas e pontos de nova análise são aqueles determinados por seus caminhos originais.
Se os nomes de volume persistirem entre o backup e a restauração, ou seja, você não recriar os volumes, as pastas montadas restauradas e os pontos de nova análise deverão apontar para os volumes corretos.
Portanto, no exemplo discutido acima, se a pasta montada C:\WriterData\Archive foi restaurada para (\\?\Volume{GUID_1}) e o volume anteriormente associado a ela foi restaurado para (\\?\Volume{GUID_2}), os arquivos restaurados e a estrutura de arquivos seriam corretos e consistentes.
Pode acontecer que os dados sejam restaurados para um sistema em que os nomes de volume foram alterados. Isso pode ocorrer devido a falhas de disco, em que talvez seja necessário executar uma recuperação manual do sistema e recriar volumes. Nesse tipo de situação, as pastas montadas e os pontos de nova análise não serão mais válidos após a restauração. Para recriar os arquivos e a estrutura de arquivos no volume restaurado, será necessário excluir as pastas montadas restauradas e os pontos de nova análise e recriá-los no disco. Cabe ao aplicativo de backup decidir se isso é apropriado.
Observe que é possível que o destino de restauração de uma pasta montada já esteja ocupado. Por exemplo, C:\WriterData\Archive já pode conter alguns arquivos. Cabe ao aplicativo de backup decidir como lidar com essa situação.