Недавно в нашу небольшую фирму обратились коллеги из смежной  организации (фактически, это соседний отдел) с вопросом: у нас  происходит подземный стук. Объясните, пожалуйста, как он происходит с Veeam. Пришлось помогать.

Чтобы понимать дальнейшее, стоит освежить (многим и узнать), из чего состоит  Veeam Backup & Replication (далее – Veeam). Это система резервного копирования, работающая по принципу There can be only one – есть сервер управления, и он один, сам по себе, свой собственный, и к нему приложения:

Veeam в сборе
Veeam в сборе

(пометка для модераторов: текст отличается низким техническим качеством, не содержит рассказов про здоровье и эльбрус, НЕ НАДО ЕГО ПЕРЕМЕЩАТЬ ИЗ ЧУЛАНА)

К серверу управления можно подключать прочие сервера – хранения, hotadd, репликации, управления ленточными библиотеками, etc. Звучит громко, но по факту разворачивается инстанс или отдельный (физический или виртуальный) сервер, и на него ставится 1-2-5 сервисов. Разные подробности про работу агентов, связку с СХД и портал меня в данном случае не очень интересовали.

Ленточные библиотеки с точки зрения эксплуатации – продукт нишевый. Мало кто готов так сразу отдать 5+k$ за привод плюс 2-3k$ (и более) за робота, да еще и кассеты (ленты) надо отдельно покупать. Эксплуатация осложняется тем, что ленточные библиотеки и современная 99.95% виртуализированно-докеризованная среда не совсем совместимы. В частности, позиция VMware – еще в 2011 году кошка бросила котят, дальше сами как хотят (Understanding support for tape devices with VMware ESXi and VMware ESX (2007904))

Документация к KVM относится к 2016 году, документация к Proxmox – к версии 4, это 2015 год

Microsoft тоже как-то не одобряет (1, 2)

Значит, та же картинка выше выглядит чуть иначе –

дядя Федор для взрослых
дядя Федор для взрослых

Картинка взята у Kateriot, тут

Если кто-то найдет этот текст, то проблемы при пробросе ленточного привода (драйва) в виртуальную среду сводятся к тому, что устройство это составное, и необходимо обеспечить доступность не только привода, но и робота по перестановке кассет – он тоже выглядит как SCSI устройство. Тут возможны варианты, в зависимости от того, что у вас – SCSI / SAS или FC.

Проблемы были именно с ленточной библиотекой. На мое счастье, коллеги можно сказать где-то на помойке нашли, отмыли, отчистили старый, но еще живой HPE Gen7, и к библиотеке (к приводу, разумеется) подключили, а он нам..

Необходимое примечание. HPE Gen7 уже тоже не очень пригоден к работе. Дело не в том, что он может сломаться завтра, и запчастей нет – это как-то можно обойти. Проблема в том, что последняя FW  ilo3 – 1.94 – вышла два года назад, в 2020 году, и при попытке доступа вы получите ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Методы против этого есть (1, 1.5, 2, 3, 9 ¾ )

Подключение ленточной библиотеки.

Ленточную библиотеку к серверу можно подключать по разному. Есть старый добрый SAS (как BC023A ). Есть FC. В случае FC есть вариант включения через фабрику (коммутатор), или напрямую, точка-точка (Direct connect).

Но не все так просто, хотя на форумах и пишут For Direct attached FC is required to use Private loop, Supported only when running 8Gb or 4GB speed using a private loop topology. Direct Attach topology Not supported with LTO-8 FC drives. Direct attached Fibre Channel Point-to-Point is not supported with LTO-8.

По умолчанию режим выставлен в automatically detect, но за что многие (включая меня) нежно любят HPE – это за то, что в официальной документации написано одно

When using an LTO-7, LTO-8, or LTO-9 FC drive with a 32Gb or 16Gb HBA in direct attach mode, Port Type is typically set to Fabric Mode. Early (Gen5) 16Gb and 8Gb/4Gb host adapters may require the topology to be set to Loop Mode. или ЭТОДРУГОЕ

В зависимости от фазы луны, версии ПО и прочих факторов, может оказаться что Full Auto не работает, поэтому

"For LTO-7 and LTO-8 drives, Port Type should be set to Fabric Mode in most cases. Some older FC host adapters may require this set to Loop Mode." (1)

Тут нам поможет только справочник «применение топологических замыканий», если вы его, конечно, найдете. Автор Ди, перевод Семина.

Проблема.

Проблема простая – Veeam не желал записывать на кассеты больше чем 5-8 терабайт. 2-3- терабайта записывались отлично. Иногда. В случае сбоя задача завершалась с нечитаемой ошибкой «Что-то пошло не так», то через час, то через три, то через пять. Каких-то прочих факторов сразу выявить не удалось. Топология: виртуальный сервер Veeam, физический сервер HPE Gen 7, ленточная библиотека IBM с подключением точка-точка (Direct connect) .

Расследование.

Ошибка в Veeam: Failed to continue tape backup session on the next tape medium Tape fatal error. The I/O bus was reset. Cannot append file block to the end of file. Unable to asynchronously write data block.

Первым делом было решено, что проблема может быть в где-то в физике. Однако ленточная библиотека ни о чем подобном не отчитывалась, даже при включении уровня логов на максимум.

У HPE есть HPE Library and Tape Tools, он позволяет провести ряд операций для тестирования ленточной библиотеки, только не забывайте остановить все службы, которые работают с лентой.

Оптический патчкорд на всякий случай сменили. Лучше не стало. Проблема тут в том, что в FC для просмотра уровня сигнала на хосте и ошибок на уровне FC надо лезть куда-то в OneCommand Manager, он же Emulex HBA Manage (1), или в Qlogic SANSurfer / QConvergeConsole (Marvell QLogic QConverge Console ) (1, 2), или в Brocade Adapter Software (1).

Следующим шагом стал сбор статистики. Этот шаг был от глупости, потому что было не понятно – разовый ли это сбой или нет, на каких объемах или типах задач он возникает.

Правильней, конечно, было бы взять статью How to Collect Logs for Veeam Backup & Replication, но без поддержки вендора смотреть в выгрузку всех логов интересно. И только.

Сбор статистики задач, тем не менее, дал результат, хотя и странный – сбой происходил в одно и то же время (несколько раз в сутки, но в одно время в разные сутки), и тут уже стало интересно.

Я (наконец-то) открыл windows logs и увидел сообщение – Base port lost fabric connectivity. Как тут – Veeam Tape backup error - Qlogic FC adapter: Base port (WWN = 10:00:8c:7c:ff:65:f7:38) lost fabric connectivity.

We need to go deeper.

Когда нам надо пойти поглубже, то в первую очередь надо вспомнить strace, во вторую Process Monitor.

В моем случае был Windows, значит Process Monitor взяли и пошли смотреть, записывать и фильтровать.

Оказалось, что в то время, когда начинается проблема, приложение VeeamDeploymentSvc вызывает wmiprvse (Windows Management Instrumentation (WMI)Provider Service), для проведения опроса устройств, после чего становится нехорошо bfadi  (bfadi.sys) – а это FC/FCoE HBA Stor Miniport from Brocade Communications Systems

На этом месте я малость удивился, потому что с моей точки зрения никаких задач запущено не было, а все авто опросы шли раз в сутки.

Какое жестокое самоубийство.

После перекура, кофе и интернетов, оказалось что нет, процесс есть - Veeam Host discovery и его даже видно в Veeam GUI и задачах. Процесс-то есть, а настроек к нему в GUI нет. И в открытой документации нет – вот процесс, и все. Пришлось снова искать. У нормальных людей настройки лежат где-то в файле настроек. У Veritas Backup Exec / NetBackup настройки представляют собой число в файле или вообще наличие файла где-то в NetBackup\db\config\ или /usr/openv/netbackup/ . Commvault совмещает в себе лучшие практики – и реестр и не только. Особенно с учетом того, что в результате развития в Commvault уже две или три только базы хранения конфигурации. Veeam следует лучшим практикам, сохраняя настройки или в HKLM\SOFTWARE\Veeam\ (о чем даже есть документация ) или в /etc/VeeamAgentConfig . И сохраняя или пытаясь считать настройки из реестра, о чем иногда пишут на форумах (1, 2, 3)

Про разные ключи тоже иногда пишут -  таких как FilesNotToSnapshot, а иногда не пишут,

This plug-in version does not support Freeze-only snapshots. If you want to enable VM processing using VMware snapshots, contact Veeam support to change the value of a dedicated registry key.(1)

Решение.

Решение очевидно - Hanc marginis exiguitas non caperet. Тут еще могла быть ссылка на мой блог или телеграм канал, но для чулана это избыточно.

Комментарии (7)


  1. sunnybear
    07.11.2022 00:30

    Так что, в итоге, починили?


    1. MechanicusJr Автор
      07.11.2022 02:35
      -2

      ну да.


      1. DikSoft
        07.11.2022 08:12
        +2

        Секретный ключик в реестре поменяли на секретное значение по рекомендации саппорта?


        1. navion
          07.11.2022 14:23
          +1

          С 2014 года рассекречено: https://www.veeam.com/kb1887


        1. MechanicusJr Автор
          07.11.2022 20:08

          Секретный ключик в реестре поменяли на секретное значение по рекомендации саппорта?

          нет, хотя такая идея есть в одной из ссылок.


  1. screwer
    07.11.2022 03:21

    А почему veeam, а не какая-нибудь bacula?


    1. MechanicusJr Автор
      07.11.2022 07:53
      -1

      Я не узнавал, у нас в основном комволт.