Tutoriel Linux

Usługi integracji Hyper-V na Debianie 13: moduły, zegar, prawidłowe zamknięcie

Débutant5 min de lecture

Twoja maszyna wirtualna Debian 13 uruchamia się, możesz się z nią połączyć, a host Hyper-V pokazuje tylko „Running”. Niemożliwe do ustalenia, czy Debian nadal odpowiada, czy czas poprawnie się restartuje po wznowieniu, czy też zamknięcie zażądane przez hosta będzie poprawne.

Usługi integracyjne Hyper-V na Debianie 13 są najpierw kontrolowane przez odczyty po stronie gościa i hosta. Rozróżnisz moduły jądra, demony gościa, synchronizację zegara, pamięć dynamiczną i ścieżkę zapisu, bez losowego instalowania starego pakietu LIS.

Technik podłączający kabel sieciowy do serwera dla VM Debian w Hyper-V
Utrzymanie VM Debian w środowisku Hyper-V.

Uwaga. Macierz Microsoftu wymienia Debian 10, 11 i 12, nie Debian 13. Nie przedstawiaj więc Debiana 13 jako oficjalnie wspieranego przez Microsoft, i nie instaluj pobranego pakietu LIS bez dowodu, że pasuje do twojego systemu.

Przeczytaj moduły Hyper-V przed dodaniem pakietu

Rozpocznij w Debianie. Jądro komunikuje się z hostem przez VMBus, opisane w dokumentacji Hyper-V jądra Linux. Ta warstwa dostarcza sterowników i niektóre kanały integracyjne. Nie pełni tej samej roli, co demony uruchamiane przez systemd.

  • Maszyna wirtualna pozostaje dostępna, z dokładną nazwą maszyny zarejestrowaną po stronie Hyper-V.
  • Moduły i usługi są odczytywane przed jakąkolwiek zmianą.
  • Istnieje druga metoda dostępu, jeśli zamknięcie żądane przez hosta kończy sesję.
  • Obecna kopia zapasowa jest identyfikowana, z planowanym testem przywracania na kopii.
lsmod | grep -E '^hv_'
dmesg | grep -i hyperv
systemctl status hv-kvp-daemon.service hv-vss-daemon.service --no-pager

lsmod pozwala na odczytanie obecnie załadowanych modułów. dmesg podaje komunikaty jądra, które wspominają o Hyper-V. Polecenie systemd oddziela demony KVP i VSS od modułów. Brak lub stan błędny powinien być wyjaśniony przez logi, a nie rekompensowany przez starą instalację LIS. Jeśli usługa nie uruchamia się, przeczytaj logi ostatniego uruchomienia, co dostarczy następne kontrole.

Kontroluj heartbeat i poprawne zamknięcie z hosta

W PowerShell, stan Running oznacza, że Hyper-V rezerwuje zasoby. Nie dowodzi to, że Debian zakończył swoje uruchamianie ani że gość odpowiada. Dokumentacja Microsoft dotycząca usług integracyjnych Hyper-V łączy między innymi heartbeat, zamknięcie gościa i synchronizację czasu z modułem hv_utils.

Get-VM -VMName "<nazwa-vm>" | Select Name,State,Status
Get-VMIntegrationService -VMName "<nazwa-vm>"

Pierwszy odczyt łączy nazwę, stan i status zasilany przez integrację. Drugi ujawnia dostępne usługi po stronie hosta, ich stan i aktywację. Jeśli heartbeat nic nie potwierdza, najpierw sprawdź odpowiedź Debiana przed zażądaniem zamknięcia.

Przycisk wymuszonego wyłączenia odcina zasilanie wirtualne. Microsoft ostrzega przed ryzykiem utraty lub uszkodzenia danych, gdy poprawne zamknięcie jest wyłączone lub ominięte. Aby ponownie uruchomić z Debiana, polecenie i jego kontrola są szczegółowo opisane w Poprawne ponowne uruchomienie Linuxa.

Wybierz źródło czasu i sprawdź godzinę po wznowieniu

Dwie ścieżki mogą pojawić się w diagnostyce. Hyper-V oferuje synchronizację przez hv_utils. Debian może również używać systemd-timesyncd, który konsultuje zdalny serwer NTP za pomocą SNTP. Przed wyłączeniem jednego mechanizmu, sprawdź stan z obu stron.

timedatectl status
timedatectl timesync-status
journalctl -b -u systemd-timesyncd --no-pager

Na Debianie Trixie podręcznik systemd-timesyncd opisuje dostosowanie zegara i odczyty timedatectl. Zauważ godzinę przed wznowieniem, a następnie ponownie ją odczytaj. Jeśli musisz tylko potwierdzić lokalną łączność przed oskarżeniem NTP, ip addr pozwala na ponowny odczyt interfejsu bez zmiany sieci. Ostateczny wybór zależy od faktycznie używanego źródła i twojego środowiska, a nie od uniwersalnego przepisu.

Przeczytaj pamięć dynamiczną przed zmianą RAM

Obecność hv_balloon wskazuje na moduł związany z ballooningiem. Nie dowodzi to ani braku pamięci obciążenia, ani że pamięć dynamiczna pasuje do VM. Rozdziel zdolność przydzieloną przez hosta, ciśnienie zaobserwowane w Debianie oraz wykorzystanie swapu.

lsmod | grep '^hv_balloon'
free -h
vmstat 1 5
journalctl -k -b | grep -i hv_balloon
swapon --show

free dostarcza pamięci widocznej przez Debiana. vmstat pozwala obserwować ciśnienie w pięciu odczytach, podczas gdy dziennik jądra pokazuje komunikaty związane z ballooningiem. swapon wskazuje, czy przestrzeń swap jest aktywna.

KomponentRolaPolecenie odczytuLimit
hv_utilsHeartbeat, zamknięcie i czas Hyper-Vlsmod, hostNie dowodzi zdrowia aplikacji
hv_kvp_daemonWymiana par klucz-wartośćsystemctl statusNie zastępuje nadzoru
hv_vss_daemonZapytanie VSS po stronie gościa Linuxsystemctl statusUżyteczne tylko, jeśli narzędzie do tworzenia kopii zapasowych to wykorzystuje
hv_balloonPamięć dynamicznalsmod, vmstatModuł obecny, obciążenie niezmierzone
systemd-timesyncdSynchronizacja NTP przez SNTPtimedatectlMuszą być odróżnione od czasu Hyper-V

Dla obciążenia wrażliwego na opóźnienia, wybrałbym stały rozmiar po pomiarze: zużycie hosta pozostaje przewidywalne, z rezerwacją nawet w stanie spoczynku. Zmienna obciążenie może uzasadniać pamięć dynamiczną, ale tylko po zaobserwowaniu rzeczywistego obciążenia.

Przygotuj zamknięcie i kopię zapasową, które można przywrócić

Odczytaj hv_vss_daemon przed poleganiem na on-line kopii zapasowej. Microsoft opisuje VSS Requestor jako sposób, który pozwala na usługę VSS tworzyć kopię zapasową VM bez jej wyłączania. Ta możliwość zależy od obecności demona i wykorzystywanego oprogramowania do tworzenia kopii zapasowych. Odznaczenie zadania nie wystarcza.

Checkpoint to nadal powrót w czasie do stanu maszyny wirtualnej. Nie zastępuje niezależnej kopii ani testu przywracania. Po poprawnym zamknięciu, przywróć na izolowanej kopii i sprawdź, czy Debian się uruchamia, godzina, oczekiwane usługi oraz dane aplikacyjne. Ostatnim użytecznym dowodem jest to przywrócenie rzeczywiście odczytane, a nie stan „zakończony” zadania.