Когда в очередной раз агент Azure Backup перестал копировать файлы одной из групп защиты в облако, начались очередные мучения с поиском причин проблемы. Все движения описывать нет смысла, так как к положительным результатам они не приводили. Сначала коротко о самой проблеме.
Группа защиты была создана для файлового сервера. Копирование в облако было настроено для двух томов. Один из них благополучно продолжал бэкапиться, в то время, как другой после запуска процесса создания точки восстановления в сети висел в текущих опреациях около минуты и в итоге завершался сбоем.
В консоли DPM при этом на задании отображалась ошибка:
Отсутствует следующий файл, необходимый для резервного копирования Azure: NO_PARAM. (Идентификатор 32550)
Как видно, очень информативно. Что характерно, в итоге выяснилось, что нужного файла действительно почему-то нет, только оставалось этот "необходимый файл найти.
Анализ логов Azure (файл C:\Program Files\Microsoft Azure Recovery Services Agent\Temp\CBEngineCurr.errlog и другие файлы в это папке) выявил среди прочего следующую строку:
1194 1038 11/16 10:31:34.546 18 fsutils.cpp(4049) 55FDA627-D1ED-4CC1-BB13-22A50F9D3B89 WARNING Failed: Hr: = [0x80070002] : GetFileAttributes failed for d:\Microsoft Azure Recovery Services Agent\Scratch\VHDs\{34EC0707-C19B-47BD-A1EC-3B7F87965731}\{34EC0707-C19B-47BD-A1EC-3B7F87965731}.tmp.vhd
По указанному пути действительно не было такого файла, но был файл:
d:\Microsoft Azure Recovery Services Agent\Scratch\VHDs\{34EC0707-C19B-47BD-A1EC-3B7F87965731}\{34EC0707-C19B-47BD-A1EC-3B7F87965731}.vhd.
Казалось бы, вот он нужный файл! Но, как обычно, нет. Манипуляции в эту тему ни к чему не привели.
Вообще, манипуляции с файлами и папками в папке "Microsoft Azure Recovery Services Agent\Scratch" проводить крайне не желательно, все там очень друг с другом связано и запутано, и, вообще, запущено. Но в данной ситуации надежда угасала и особого выбора не было.
В пути, найденом в логе, папка {34EC0707-C19B-47BD-A1EC-3B7F87965731}, как было выяснено, содержит как раз образы бэкапов проблемного тома файлового сервера. В ней было два файла с расширением .vhd. Один из них небольшой с именем {34EC0707-C19B-47BD-A1EC-3B7F87965731}.vhd, другой значительно побольше с именем {C691422F-0D83-427F-8494-D595FE12D45F}.vhd - он, по видимому, содержал информацию о предыдущем прцессе резервного копирования. Первый файл пересоздавался каждый раз, при новом запуске процесса копирования.
Бесцельное блуждание по папкам привело к папке "D:\Microsoft Azure Recovery Services Agent\Scratch\Catalog\". В ней, среди множества файлов, обнаружились два файла с именами: {34EC0707-C19B-47BD-A1EC-3B7F87965731}-RS.dat и {34EC0707-C19B-47BD-A1EC-3B7F87965731}.dat. Имена, как видим совпадают с именем найденной ранее папки {34EC0707-C19B-47BD-A1EC-3B7F87965731}.
Открываем, допустим, первый и видим примерно такое:
Ű {34EC0707-C19B-47BD-A1EC-3B7F87965731}*{00000000-0000-0000-0000-000000000000}*{34EC0707-C19B-47BD-A1EC-3B7F87965731}*{C505E3A2-87C0-444D-B453-9B14DA9E4605}.vhd*130921540779331967*20
Информации не много, но зато она непонятная. При этом здесь тоже есть название {34EC0707-C19B-47BD-A1EC-3B7F87965731}, даже два раза. А еще там есть другое название {C505E3A2-87C0-444D-B453-9B14DA9E4605}.vhd. Что характерно, именно VHD. Хотя, что это все значит, по прежнему не понятно, но от безысходности копируем это название, идем в папку d:\Microsoft Azure Recovery Services Agent\Scratch\VHDs\{34EC0707-C19B-47BD-A1EC-3B7F87965731} и переименовываем там что-нибудь, например, копию меньшего файла в {C505E3A2-87C0-444D-B453-9B14DA9E4605}.vhd.
В этот момент, должно произойти чудо, и при следующем запуске процесса копирования в облако нашего проблемного тома, ошибки быть не должно. Если, как в этом случае, переименовывалась копия файла {34EC0707-C19B-47BD-A1EC-3B7F87965731}.vhd, должен в итоге создаться полный начальный бэкап тома, от которого будут плясать все последующие дифференциальные бэкапы.
Но, это в том случае, если повезет...
РАСПУТЬЕ