27.12.2016
Ошибки теневых копий тома CSV при подключении СХД по FC на Server Hyper-V 2012 R2

Описание

​Есть сервер резервного копирования, например, BackupExec 15 FP4. В нем создано задание на резервное копирование виртуальной машины работающей в кластере Hyper-V 2012 R2. Все соответствующие агенты на гипервизор и на виртуальной машине установлены. На гипервизоре установлены все доступные последние обновления. Агент интеграции виртуальной машины обновлен до последней версии.

Задания на резервное копирование виртуальных машин на кластере Hyper-V 2012R2 выполняются с ошибками.

В момент начала создания резервной копии могут проявляться следующие симптомы.

Появляется первая ошибка:

Hyper-V-VMMS error 10151 Could not generate renamed file map for virtual machine 'XXX-YYY-ZZZ1': General access denied error (0x80070005). (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Затем следуют ошибки:

Hyper-V-VMMS error 10172 VSS writers inside virtual machine 'XXX-YYY-ZZZ1' failed to perform BackupComplete to its shadow copy (VSS snapshot) set: A function call was made when the object was in an incorrect state for that function (0x80042301). (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Hyper-V-VMMS error 20924 Failed to get VHD ('C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\XXX-YYY-ZZZ1_C6B15C87-32A8-4B41-BF57-C8191AFEEAA5.avhdx') parent: 'General access denied error'('0x80070005').

Hyper-V-VMMS error 20864 Virtual machine failed to generate VHD tree: 'General access denied error'('0x80070005').

Hyper-V-VMMS error 14320 Cannot delete checkpoint: General access denied error (0x80070005). Checkpoint ID 20C33797-F495-4841-B355-B9E5134C9FBC

Hyper-V-VMMS error 15070 'XXX-YYY-ZZZ1' failed to remove checkpoint. (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Hyper-V-VMMS warning 10154 Failed to delete current backup checkpoint of virtual machine 'XXX-YYY-ZZZ1': General access denied error (0x80070005). (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Hyper-V-VMMS error 20924 Failed to get VHD ('C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\XXX-YYY-ZZZ1_C6B15C87-32A8-4B41-BF57-C8191AFEEAA5.avhdx') parent: 'General access denied error'('0x80070005').

Hyper-V-VMMS error 20864 Virtual machine failed to generate VHD tree: 'General access denied error'('0x80070005').

Hyper-V-VMMS error 16010 The operation failed.

Hyper-V-VMMS error 10172 VSS writers inside virtual machine 'XXX-YYY-ZZZ1' failed to perform BackupComplete to its shadow copy (VSS snapshot) set: A function call was made when the object was in an incorrect state for that function (0x80042301). (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Hyper-V-VMMS warning 16210 'XXX-YYY-ZZZ1' cannot merge disk file 'C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\XXX-YYY-ZZZ1_C6B15C87-32A8-4B41-BF57-C8191AFEEAA5.avhdx' on deletion. As a result, disk 'C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\XXX-YYY-ZZZ1_C6B15C87-32A8-4B41-BF57-C8191AFEEAA5.avhdx' might be in inconsistent state: General access denied error (0x80070005). (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)

Hyper-V-VMMS warning 14090 Virtual Machine Management service is shutting down while some virtual machines begin running. All running virtual machines will remain running with no management access.

Созданные чекпоинты в процессе задачи на резервное копирование удалить не получается, ни через Powershell, ни через консоль Hyper-V.

При попытке удалении через PowerShell имеем сообщение:

PS C:\Windows\system32> Get-VMSnapshot -VMName 'XXX-YYY-ZZZ1' -ComputerName 'SRV-hv-1' | Remove-VMSnapshot
Remove-VMSnapshot : 'XXX-YYY-ZZZ1' failed to remove checkpoint. (Virtual machine ID FEEA68A6-70DA-4991-BE75-A73605D61191)
Cannot delete checkpoint: General access denied error (0x80070005). Checkpoint ID 20C33797-F495-4841-B355-B9E5134C9FBC.
Virtual machine failed to generate VHD tree: 'General access denied error'('0x80070005').
Failed to get VHD ('C:\ClusterStorage\Volume1\Hyper-V\Virtual Hard Disks\XXX-YYY-ZZZ1_7407462D-3B67-4ED7-A59E-14A76BB52819.avhdx') parent: 'General access denied error'('0x80070005').
You do not have permission to perform the operation. Contact your administrator if you believe you should have permission to perform this operation.
At line:1 char:68
+ Get-VMSnapshot -VMName 'XXX-YYY-ZZZ1' -ComputerName 'Srv-hv-1' | Remove-VMSnap ...
+                                                                 
    + CategoryInfo          : PermissionDenied: (Microsoft.HyperV.PowerShell.VMTask:VMTask) [Remove-VMSnapshot], VirtualizationOperationFailedException
    + FullyQualifiedErrorId : AccessDenied,Microsoft.HyperV.PowerShell.Commands.RemoveVMSnapshotCommand

Само задание на BackupExec завершается с ошибкой.

На Hyper-V хосте падает Microsoft Hyper-V VSS Writer в состояние State (8) Failed

Проверять поведение с использованием Windows Server Backup не допустимо, т.к. он оффициально не поддерживает резервное копирование тома CSV.

Обнаружено, что проблема связана именно с кластерным диском, который подключен по FC к серверному шасси.

По всей видимости, проблема именно в специфике работы CSV, т.к. при создании еще одного Volume на СХД и подключении его к хосту Hyper-V как диск, полностью решает проблему. Но при помещении этого диска в CSV возвращает проблему.

Решение

​Исходя из анализа логов системы резервного копирования, можно сделать вывод, что проблема в новом механизме Hyper-V 2012 R2 в работе CSV или ShadowCopy. В связи с этим, было использовано решение в применении VSS Hardware Provider.

Специфика работы данной технологии может отличаться у разных вендоров.

В данном решении использовалась СХД IBM Storwize 3700. У него есть провайдер IBM Storage Support for Microsoft Volume Shadow Copy Service and Virtual Disk Service его документация.

В соответсвии с документацией Chapter 3 Configuring Volume Shadow Copy Service using Fibre Channel необходимо создать на СХД два дополнительных луна,ОЧЕНЬ ВАЖНО, емкость каждой должна быть равной луну с данными. Также создать хосты VSS_FREE_POOL с портом WWPN: 5000000000000000 и VSS_RESERVED_POOL с портом WWPN: 5000000000000001 (порты могут быть заданы любые). После этого связать каждый хост только со своим дополнительно созданным пулом. На коммутаторе FC необходимо провести зонирование портов.

На гипервизоре необходимо установить IBM Storage Support for Microsoft Volume Shadow Copy
Service and Virtual Disk Service, в процессе установки будет запущен мастер подключения к CIM. В качестве удреса указать сетевой интерфейс управления СХД, а также имя пользователя и пароль от СХД.

Программа устанавливается в каталог C:\Program Files\IBM\Hardware Provider for VSS-VDS\ и настраивается из командной строки через исполняемый файл ibmvcfg.exe. Если при создании хостов использовались другие порты, то их можно задать командой ibmvcfg set vssFreeInitiator номер_порта и ibmvcfg set vssReservedInitiator номер_порта. Посмотреть текущие настройки можно командой ibmvcfg showcfg.

Для применения изменений требуется перезапустить службы VSS командами net stop vss и net stop ibmvss.

Если все настройки выполнены правильно, то резервное копирование с CSV будет выполнятся успешно.

Эти настройки необходимо выполнить на каждом узле кластера, а настройки клиентов VSS Hardware Provider будут идентичны и должны подключаться к тем же лунам.

P.S. Использвание iSCSI также решает описанную проблему.

P.S.S. Проблему с битыми чекпоинтами можно решить путем переноса разделов на новую виртуальную машину.

Была ли эта статья вам полезна?
+ 1