Как вы горячее подключение включить новый процессор и оперативную память на виртуальной машине

Я использую Ubuntu на виртуальной машине, и я хотел бы добавить процессор и оперативную память без перезагрузки устройства. Как я могу подключить это новое виртуальное оборудование?

6
задан 29 April 2016 в 02:02

3 ответа

Они могут быть включены с помощью /sys файловая система с помощью корневых учетных данных.

Для ЦП, Вы изменяетесь 0 на 1 в в соответствующий файл шаблона: /sys/devices/system/cpu/cpu*/online.

Для RAM, Вы находите состояние в файлах /sys/devices/system/memory/memory*/state и изменяете содержание от офлайн до онлайн.

сценарий ниже повернет весь ЦП и RAM онлайн для Вас.

#!/bin/bash
# Based on script by William Lam - http://engineering.ucsb.edu/~duonglt/vmware/

# Bring CPUs online
for CPU_DIR in /sys/devices/system/cpu/cpu[0-9]*
do
    CPU=${CPU_DIR##*/}
    echo "Found cpu: '${CPU_DIR}' ..."
    CPU_STATE_FILE="${CPU_DIR}/online"
    if [ -f "${CPU_STATE_FILE}" ]; then
        if grep -qx 1 "${CPU_STATE_FILE}"; then
            echo -e "\t${CPU} already online"
        else
            echo -e "\t${CPU} is new cpu, onlining cpu ..."
            echo 1 > "${CPU_STATE_FILE}"
        fi
    else 
        echo -e "\t${CPU} already configured prior to hot-add"
    fi
done

# Bring all new Memory online
for RAM in $(grep line /sys/devices/system/memory/*/state)
do
    echo "Found ram: ${RAM} ..."
    if [[ "${RAM}" == *":offline" ]]; then
        echo "Bringing online"
        echo $RAM | sed "s/:offline$//"|sed "s/^/echo online > /"|source /dev/stdin
    else
        echo "Already online"
    fi
done
13
ответ дан 29 April 2016 в 12:02

Вместо того, чтобы управлять параметрами ядра, можно автоматически включить, заменил в горячем режиме ЦП или память при помощи правил udev:

/etc/udev/rules.d/94-hotplug-cpu-mem.rules

ACTION=="add", SUBSYSTEM=="cpu", ATTR{online}=="0", ATTR{online}="1"

ACTION=="add", SUBSYSTEM=="memory", ATTR{state}=="offline", ATTR{state}="online"

Протестированный на CentOS 6/7, Ubuntu 14.

Debian 7, разрушенная по неизвестной причине. Дальнейшее тестирование требовалось бы.

6
ответ дан 29 April 2016 в 12:02
  • 1
    @dessert: Я думаю, что эта часть ! -name 'sound.txt' решает эту проблему. Isn' t это? – pa4080 30 September 2017 в 00:42

Вместо того, чтобы создать и сохранить сценарий можно выполнить эту команду строки (это может быть также сценарий, если Вы хотите). Я только что ввел один для памяти (каждый может easyline изменять это на CPU также):

grep line /sys/devices/system/memory/*/state |grep offline |awk -F '\/' '{print $6}' |while read xx; do echo online >/sys/devices/system/memory/$xx/state ; done
0
ответ дан 29 September 2019 в 17:11

Другие вопросы по тегам:

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