After recovering Parallels Dispatcher service from a crash or forced killing, virtual machines might lose network connectivity and become unavailable.
This occurs for virtual machines with enabled Offline Management feature.
~# prlctl list -i "VM Name" | grep -A1 '^Offline' Offline management: (+) services: 'vzpp'
And when the network adapter is operating in bridged or host-only mode.
~# prlctl list -i "VM Name" | grep '^ net' net0 (+) dev='vme7528b745.0' network='Bridged' mac=001C421986B4 card=e1000 ips='10.39.82.31/255.255.0.0 '
- Before crash/restart of Dispatcher, virtual machines are available.
After Dispatcher service recovering, VMs lose connectivity.
~# ping -c4 10.39.82.31 PING 10.39.82.31 (10.39.82.31) 56(84) bytes of data. ^C --- 10.39.82.31 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 9740ms
Parallels Dispatcher automatically recovers from crashes or when it is forcibly killed.
After the service is started back, the process configures rules related to Offline Management for virtual machines with enabled Offline Management feature. Since the process is just started, there is no information about status of VMs yet and the rules are configured as if VMs are stopped.
Further, Dispatcher checks for processes of virtual machines
prl_vm_app and picks them up. However the settings applied for Offline Management are not corrected.
It is recommended to install all available updates, the fix for the corresponding request PSBM-21937 is included in Parallels Cloud Server 6.0 Service Pack 1 (update 5).
If updates' installation cannot be done right away, to restore network connectivity, few things can be done.
Restart or suspend/resume VM:
~# prlctl suspend "VM Name"; prlctl resume "VM Name"
This operation takes some time because it saves used VM memory to a file, saving few gigabytes takes a couple of minutes.
Turn Offline Management off and on:
~# prlctl set "VM Name" --offline_management no; prlctl set "VM Name" --offline_management yes
This way does not restore the functionality immediately, connectivity is restored with some delay, ARP records are not updated immediately.
Use the attached script to remove routing/ARP-proxying rules configured by Dispatcher.
- Save the script as
Execute on the server:
~# bash /root/clean_offmgmt.sh
- Save the script as