Сообщения от службы hv-kvp-daemon.service "hv_get_dns_info: not found" и "hv_get_dhcp_info: not found" на Debian Linux в виртуальной машине Hyper-V

Messages from hv-kvp-daemon.service hv_kvp_daemon "hv_get_dns_info: not found" and "hv_get_dhcp_info: not found" on Debian Linux in full Hyper-V machineДобавление компонент интеграции Hyper-V в виртуальную машину с гостевой ОС Debian GNU/Linux 12 'Bookworm', как и в более ранних версиях, предполагает установку пакета hyperv-daemons из официальных репозиториев Debian. В результате установки пакета в системе появляется ряд служб, в числе которых есть служба hv-kvp-daemon.service : Hyper-V key-value pair (KVP) daemon. После запуска этой службы, с интервалом, примерно, в 5 минут в системном логе регистрируется две ошибки о недоступности утилит hv_get_dns_info и hv_get_dhcp_info.

# journalctl --system -f -n 50 | grep hv_kvp

Jun 24 09:54:07 SRV01 hv_kvp_daemon[7994]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dns_info: not found
Jun 24 09:54:07 SRV01 hv_kvp_daemon[7996]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dhcp_info: not found
Jun 24 09:59:09 SRV01 hv_kvp_daemon[8007]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dns_info: not found
Jun 24 09:59:09 SRV01 hv_kvp_daemon[8009]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dhcp_info: not found
Jun 24 09:59:12 SRV01 hv_kvp_daemon[8017]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dns_info: not found
Jun 24 09:59:12 SRV01 hv_kvp_daemon[8019]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dhcp_info: not found
Jun 24 10:04:10 SRV01 hv_kvp_daemon[8030]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dns_info: not found
Jun 24 10:04:10 SRV01 hv_kvp_daemon[8032]: sh: 1: /usr/libexec/hypervkvpd/hv_get_dhcp_info: not found

Эта проблема в Debian имеет давние корни. Как минимум, с 2015 года можно найти переписку в bugreport, подтверждающую это:

Возможно, проблема не исправляется, так как не является критичной и не создаёт принципиальных сложностей в работе служб интеграции. Однако факт наличия постоянно повторяющихся ошибок в систлоге немного напрягает.

По своей сути обе эти недостающие утилиты – ни что иное, как примитивные bash-скрипты, задача которых возвращать некоторую базовую информацию о сетевой конфигурации DNS/DHCP гостевой Linux системы. Поэтому, чтобы исправить ситуацию с ошибками в логе, мы можем воссоздать недостающие файлы, скачав их из GitHub-репозитория torvalds / linux.

# mkdir /usr/libexec/hypervkvpd
# cd /usr/libexec/hypervkvpd
# wget https://raw.githubusercontent.com/torvalds/linux/master/tools/hv/hv_get_dhcp_info.sh -O hv_get_dhcp_info
# wget https://raw.githubusercontent.com/torvalds/linux/master/tools/hv/hv_get_dns_info.sh -O hv_get_dns_info
# chmod +x hv_get_dhcp_info hv_get_dns_info

Проверим работу скриптов. Первый скрипт отвечает за извлечение информации об адресах DNS серверов, прописанных в /etc/resolv.conf. В нашем примере на сервере в качестве кеширующего DNS-клиента используется служба systemd-resolved с локальным интерфейсом-заглушкой, поэтому и результат будет соответствующий:

# ./hv_get_dns_info

127.0.0.53

Второй скрипт отвечает за получение статуса использования DHCP для настройки сетевой конфигурации сервера из конфигурационных файлов типа /etc/sysconfig/network-scripts/ifcfg-*. Такие файлы характерны для систем типа RHEL, но не используются в системах на базе Debian, поэтому в Debian от такого скрипта мы всегда будем получать отрицательный ответ.

# ./hv_get_dhcp_info

Disabled

Можно, конечно, озадачится и модифицировать этот скрипт под Debian, перенацелив его, например, на стандартный конфигурационный файл типа /etc/network/interfaces. Однако практической пользы от этого не просматривается. В нашем случае задача минимум – чтобы оба скрипта находились там, где их желает видеть hv-kvp-daemon и отрабатывали без ошибок.

Собственно, после этого, исчезнут назойливые ошибки об отсутствии hv_get_dns_info и hv_get_dhcp_info от службы hv-kvp-daemon.service в системном логе виртуальной машины на Debian Linux, работающей в Hyper-V.

Добавить комментарий