Резервное копирование Hyper-V с диском в тени - когда вызывать «завершение резервного копирования»? - PullRequest
1 голос
/ 03 августа 2011

Я выполняю резервное копирование виртуальных машин Hyper V с использованием diskhadow на основе Windows VSS (служба теневого копирования томов).

Реализация в значительной степени соответствует описанию в DiskShadow / Xcopy BACKUP Hyper-V , где сценарий diskhadow похож на следующий:


set context persistent
set metadata C:\backup.cab
set verbose on
begin backup
     add volume C: alias ConfigVolume
     #The GUID of the Hyper-V Writer
     writer verify {66841cd4-6ded-4f4b-8f17-fd23f8ddc3de}
     create
     EXPOSE %ConfigVolume% Y:
EXEC HyperVBackup.cmd
     UNEXPOSE Y:
end backup    

В HyperVBackup.cmd фактическое копирование теневых копий на резервный диск выполняется с помощью xcopy. Это, очевидно, самая трудоемкая часть процесса резервного копирования.

Команды begin backup и end backup отправляют события средствам записи vss, чтобы они могли подготовиться к созданию теневой копии и реагировать на завершение резервного копирования.

  • Стоит ли звонить end backup ПОСЛЕ EXEC HyperVBackup.cmd? Разве это не заставит писателей vss оставаться в промежуточном состоянии, пока длится длинная часть xcopy?
  • Не было бы целесообразно позвонить end backup ДО линии EXEC HyperVBackup.cmd?

На самом деле я не знаю, что обычно делают писатели vss, когда получают событие, отправленное end backup.

Спасибо, Нанг.

Ответы [ 2 ]

2 голосов
/ 10 марта 2012

в качестве альтернативы diskhadow вы можете также воспользоваться следующим решением для резервного копирования Hyper-V с открытым исходным кодом, поддерживающим CSV и включающим инструмент командной строки:

http://hypervbackup.codeplex.com/

0 голосов
/ 09 марта 2012

end backup в основном сигнализирует всем авторам vss об успешном резервном копировании. Вы, вероятно, не хотите делать это, пока все данные не будут успешно перемещены в безопасное место. В вашем случае вы не захотите сигнализировать о завершении резервного копирования, пока скрипт HyperVBackup.cmd не завершил работу без ошибок, а также xcopy не завершился без ошибок.

Причина этого заключается в том, что некоторые программы записи, такие как Exchange или SQL Server, будут сбрасывать журналы транзакций, когда они сигнализируются end backup. Вы не хотите, чтобы журналы транзакций сбрасывались до тех пор, пока они не будут успешно скопированы и находятся в безопасном месте.

begin backup не должен удерживать что-либо в промежуточном состоянии. Он просто говорит авторам vss: «Привет, если есть какое-то обслуживание, которое нужно выполнить рядом с окном резервного копирования, сделайте это сейчас». Я не знаю специфики писателей vss, но я также мог видеть, что begin backup используется для установки маркера, поэтому, когда сигнализируется end backup, он может сказать, что «данные до этого момента хороши, и теперь вы можете запустить Я в восторге от этого. " Например, вы не хотите сбрасывать журналы до времени команды end backup, скорее команда end backup сбрасывает журналы до времени команды begin backup.

Единственное «промежуточное состояние», которое возникает во время остановки файловой системы. Замораживание происходит во время команды create и автоматически оттаивает при завершении команды create.

...