Резервное копирование виртуальной машины с SharePoint Server 2019 в Veeam Backup & Replication v12 выполнялось успешно до тех пор, пока в SharePoint не была настроена и запущена служба поиска Search Service Application. Каждое последующее задание резервного копирования ВМ стало завершаться ошибкой создания контрольной точки Hyper-V production checkpoint следующего вида:
Failed to create VM recovery checkpoint (mode: Veeam application-aware processing) Details: Failed to create VM (ID: ba7b4b0c-3fbd-4c51-8737-2ae39aee005f) recovery checkpoint. Job failed ('Checkpoint operation for 'KOM-WEB01' failed. (Virtual machine ID BA7B4B0C-3FBD-4C51-8737-2AE39AEE005F) 'KOM-WEB01' could not initiate a checkpoint operation: %%2147754996 (0x800423F4). (Virtual machine ID BA7B4B0C-3FBD-4C51-8737-2AE39AEE005F)'). Error code: '32768'.
Retrying snapshot creation attempt (Failed to create production checkpoint.)
Task has been rescheduled
Unable to allocate processing resources. Error: Failed to create production checkpoint.
Анализ логов на сервере SharePoint в момент выполнения задания в VBR показал наличие ошибки с кодом Event ID 8194:
Log Name: Application
Source: VSS
Date: 29.04.2023 3:12:51
Event ID: 8194
Level: Error
Keywords: Classic
Computer: KOM-WEB01.holding.com
Description: Volume Shadow Copy Service error: Unexpected error querying for the IVssWriterCallback interface. hr = 0x80070005, Access is denied. This is often caused by incorrect security settings in either the writer or requestor process.
Operation: PrepareForSnapshot Event
Context:
Execution Context: Writer
Writer Class Id: {0ff1ce16-0201-0000-0000-000000000000}
Writer Name: OSearch16 VSS Writer
Writer Instance Name: OSearch Replication Service
Writer Instance ID: {4ce2a6c6-2cf2-4f58-872f-9ce95adf804a}
Попытка создать контрольную точку ВМ вручную в консоли Hyper-V Manager также приводила к ошибке "could not initiate a checkpoint operation: %%2147754996 (0x800423F4)"
При этом в логе Application фиксировалась аналогичная ошибка с кодом 8194.
Команда листинга модулей записи теневого копирования на сервере SharePoint показала ошибочное состояние модуля "OSearch16 VSS Writer":
vssadmin list writers
...
Writer name: 'OSearch16 VSS Writer'
Writer Id: {0ff1ce16-0201-0000-0000-000000000000}
Writer Instance Id: {268f99a2-1231-41d2-81e2-8f3ee565ee8e}
State: [8] Failed
Last error: Non-retryable error
...
Так как в тексте ошибки в event-логе фигурирует информация о нехватке прав ("…0x80070005, Access is denied…"), в первую очередь нужно понять о какой учётной записи идёт речь.
Если посмотреть на стандартные поля в событии об ошибке, то в поле User мы не увидим информации о пользователе:
Однако, если переключиться на отображение подробностей на вкладке Details, то в варианте просмотра Friendly View в разделе с листингом бинарных данных мы сможем увидеть имя учётной записи, в контексте которой возникла шибка:
В нашем случае, это учётная запись фермы SharePoint (Farm account). И в контексте именно этой учётной записи у нас выполняется служба поиска SharePoint. При этом данная учётная запись не имеет полных административных прав на сервере.
Теперь относительного того, куда именно не может получить доступ учётная запись.
При проблемах с резервным копированием службы поиска SharePoint, в качестве одного из моментов, на который стоит обращать внимание, является состояние ключа реестра для службы "Volume Shadow Copy" (VSS):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VSS
Как минимум, в этом ключе:
1) В под-ключе \VssAccessControl должен присутствовать параметр REG_DWORD с именем учётной записи, в контексте которой работает ферма/служба поиска, и значением "1";
2) В под-ключе \Diag должен присутствовать под-ключ с именем VSS модуля для службы поиска SharePoint (в нашем случае должен быть под-ключ с именем "OSearch16 VSS Writer"):
В нашем случае обнаружилось, что под-ключа "OSearch16 VSS Writer" нет.
В такой ситуации некоторые граждане предлагают выдать полные права доступа для учётной записи фермы/службы поиска на под-ключ \Diag. Однако, если присмотреться к действующим разрешениям на этот ключ реестра, то можно заметить, что запись в него разрешена локальной группе безопасности "Backup Operators".
Включаем учётную запись фермы/службы поиска в эту группу на нашем виртуальном сервере SharePoint со службой поиска и перезагружаем этот сервер.
После перезагрузки удостоверимся в наличии ключа реестра "OSearch16 VSS Writer" и увидим, что владельцем этого ключа является учётная запись, включенная нами ранее в группу "Backup Operators".
После этого снова попробуем создать контрольную точку виртуальной машины в оснастке Hyper-V Manager.
В нашем случае контрольная точка создалась успешно и в гостевой системе виртуального сервера SharePoint ошибка с кодом 8194 больше не появляется.
Теперь можно проверить, как изменилась ситуация в Veeam Backup & Replication. Убеждаемся в том, что в ходе выполнения задания резервного копирования для ВМ успешно создаётся, а затем автоматически удаляется временная контрольная точка, и, как следствие задание VBR отрабатывает без ошибок.
Стоит отметить, что описанная проблема является не проблемой VBR, а проблемой корректной настройки прав доступа для сервисных учётных записей SharePoint. При этом в официальном документе "Plan for administrative and service accounts in SharePoint Server" мне не удалось найти каких-либо явных указаний по включению сервисных учётных записей SharePoint в группу "Backup Operators" или каких-либо схожих по смыслу рекомендаций.
Добавить комментарий