След на LAN для инициирования виртуальной машины с kvm и libvirt

К сожалению, Nate, мы не можем иметь дело непосредственно с PHBs. Ваш первый оборонительный рубеж здесь является фактическими метриками, как в, сделайте сравнения между передачей SMB и NFS, например.

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

3
задан 4 April 2016 в 12:47
3 ответа

Я нашел Libvirt-wakeonlan, которая, кажется, делает это. Я понятия не имею, насколько он зрелый и насколько хорошо работает. Подход кажется правильным. https://github.com/simoncadman/libvirt-wakeonlan

3
ответ дан 3 December 2019 в 07:06

Wake-On-LAN - это Wake-On-LAN, независимо от того, используете ли вы виртуальную или физическую машину. Если ваше программное обеспечение виртуализации поддерживает это, просто используйте инструмент WoL против MAC-адреса.

-1
ответ дан 3 December 2019 в 07:06

вы можете использовать мой скрипт, который по существу делает то же самое, что и libvirt-wakeonlan, я сделал его, потому что не смог заставить работать libvirt-wakeonlan... это всего лишь простой скрипт, который вы можете поместить в сценарий запуска и запустить его при загрузке.

Он прослушивает порт 9 udp (порт 7 также иногда используется, но гуакамоле -удаленный vnc/rdp, который я использую -отправляет на порт 9 )и проверяет MAC-адрес, когда видит волшебный пакет. Если в virsh есть виртуальная машина с этим MAC-адресом, она разбудит машину.

https://gitlab.com/-/snippets/2183494

#!/bin/bash

nc -dknl -p 9 -u | # listen to udp port 9 for packets, check if it is a magic packet
 stdbuf -o0 xxd -c 6 -p |
 stdbuf -o0 uniq |
 stdbuf -o0 grep -v 'ffffffffffff' |
 while read ; do
    mac="${REPLY:0:2}:${REPLY:2:2}:${REPLY:4:2}:${REPLY:6:2}:${REPLY:8:2}:${REPLY:10:2}"
    # parse mac found in magic packet
    for i in $(virsh list --all --name); do # loop through libvirt machines
        vmmac=$(virsh dumpxml $i | grep "mac address" | awk -F\' '{ print $2}') # get each machines MAC
        if [ $vmmac = $mac ]; then # compare MACs, if match do;
            echo $mac;
            echo $i;
            virsh start $i
            virsh resume $i
        fi
    done
done
2
ответ дан 1 October 2021 в 13:05

Теги

Похожие вопросы