我正在尝试按照本教程实现 KVM 客户机中的内存热插拔:使用 Qemu/KVM 和 libvirt 进行内存热插拔。
我设法完成了它,但什么也没发生。教程告诉我,我需要内核版本 3.9 或更高版本,而我正在运行 4.8。它还指出我需要模块acpiphp
和pci_hotplug
。谷歌搜索结果告诉我,我只需要运行(在客户机上):
for m in acpiphp pci_hotplug; do sudo modprobe ${m}; done
然而,这会导致以下错误输出:
modprobe: FATAL: Module acpiphp not found in directory /lib/modules/4.8.0-39-generic
modprobe: FATAL: Module pci_hotplug not found in directory /lib/modules/4.8.0-39-generic
这个问题似乎类似于询问 Ubuntu:PCI 热插拔似乎不起作用解决方案还指出我需要 acpiphp 和 pci_hotplug,所以我非常确信我需要这些模块。
问题
如何在 Ubuntu 16.04 上为我的 KVM 客户机acpiphp
安装?pci_hotplug
答案1
可能该功能已在内核中编译,您无需加载任何模块。请检查内核中是否启用了以下选项:
# grep "CONFIG_HOTPLUG_PCI_ACPI=" /boot/config-`uname -r`
CONFIG_HOTPLUG_PCI=y
# grep "CONFIG_HOTPLUG_PCI=" /boot/config-`uname -r`
CONFIG_HOTPLUG_PCI_ACPI=y
# grep "CONFIG_MEMORY_HOTPLUG=" /boot/config-`uname -r`
CONFIG_MEMORY_HOTPLUG=y
然后,对于内核> = 4.8,您需要在启动时设置此参数:
memhp_default_state=online
(如 Proxmox Hotplug 说明中所述)
编辑:如果memhp_default_state=
在启动时未设置,内核将默认为CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE
内核配置。