Ubuntu 12.04 上的 Xen 虚拟机管理程序 4.1 内核崩溃

Ubuntu 12.04 上的 Xen 虚拟机管理程序 4.1 内核崩溃

我有一个新的 Ubuntu 12.04.1 amd64 服务器安装如下本指南

我使用了 LVM 选项,使用了所有磁盘并创建了 2 个 LV

/dev/mapper/vg-root / (80GB)
vg-swap swap (4GB)

现在我按照指南安装 xenapt-get install xen-hypervisor-4.1-amd64并进行配置,然后添加/etc/default/grub

GRUB_CMDLINE_XEN_DEFAULT="dom0_mem=768M"

稍后我执行update-grub并重新启动。但当我尝试使用Xen 4.1-amd64always 启动时,我收到内核恐慌消息

Domain-0 allocation is too small for kernel image

我的问题是:

  • 这个错误是关于什么的?
  • 我可以在哪里增加此分配以避免此错误?

grub配置文件

menuentry 'Ubuntu GNU/Linux, with Xen 4.1-amd64 and Linux 3.2.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        insmod part_gpt
        insmod ext2
        set root='(hd0,gpt2)'
        search --no-floppy --fs-uuid --set=root 3541e241-7f39-4ebe-8d99-c5306294c266
        echo    'Loading Xen 4.1-amd64 ...'
        multiboot       /xen-4.1-amd64.gz placeholder  dom0_mem=768M
        echo    'Loading Linux 3.2.0-29-generic ...'
        module  /vmlinuz-3.2.0-29-generic placeholder root=/dev/mapper/backup--xen-root ro rootdelay=180
        echo    'Loading initial ramdisk ...'
        module  /initrd.img-3.2.0-29-generic
}

笔记:我关注了本指南

答案1

我知道 xen 文档指出应该可以使用兆字节,但是您是否尝试过将 dom0 内存指定为千字节?

submenu "Xen 4.1-amd64" {
menuentry 'Ubuntu GNU/Linux, with Xen 4.1-amd64 and Linux 3.2.0-29-generic' --class ubuntu --class gnu-linux --class gnu --class os --class xen {
        insmod part_msdos
        insmod ext2
        set root='(hd0,msdos1)'
        search --no-floppy --fs-uuid --set=root 2f49dfec-199f-427a-a6e3-64cf39a94c05
        echo    'Loading Xen 4.1-amd64 ...'
        multiboot       /boot/xen-4.1-amd64.gz placeholder  dom0_mem=2097152 dom0_max_vcpus=2 dom0_vcpus_pin=0,1
        echo    'Loading Linux 3.2.0-29-generic ...'
        module  /boot/vmlinuz-3.2.0-29-generic placeholder root=UUID=2f49dfec-199f-427a-a6e3-64cf39a94c05 ro  
        echo    'Loading initial ramdisk ...'
        module  /boot/initrd.img-3.2.0-29-generic
}

这在 Ubuntu 12.04 下对我有效。

答案2

我正在研究同样的问题。尚未找到解决方案……。值得尝试的事情:

  • 尝试使用dom0_mem=min:8192M,max:8192M设置精确的内存量
  • 尝试使用dom0_max_vcpus=2设置 CPU 的数量

答案3

对我来说这是可行的:

GRUB_DEFAULT="Xen 4.1-amd64"
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT=""
GRUB_CMDLINE_LINUX="apparmor=0"
GRUB_CMDLINE_XEN="dom0_mem=1G,max:1G dom0_max_vcpus=2 dom0_vcpus_pin=1"

这是来自 /etc/default/grub

此后您将必须运行 update-grub。

有关使用 xcp 设置 xen 的良好指南,检查这个。这篇文章对我理解事物有很大帮助。您使用的指南使用的是 XM,它很快就会被弃用。xcp-xapi 才是最佳选择。

您总共有多少内存?通常不需要为 dom0 分配太多内存。从 70 位客户开始,我会考虑使用 2 个 CPU 和更多内存,但从我读到的内容来看,在 2 个 CPU 上运行它对我的情况来说有点过头了,但固定它们并将 1G 专用于 dom0,它的效果确实比以前更好(对我来说)。

但是有些事情对我来说在不同的物理机器上总是不同的,比如桥接和 openswitch 之类的东西。我发现无论你输入什么,openswitch 选项都会保存到配置中。因此我建议手动创建桥接,因为脚本并不总是正确的,尤其是在 1 个 NIC 的情况下。我删除了 openswitch 并使用了桥接,这非常稳定。当 xcp-xapi 看到你已经有一个桥接时,它不会触碰它。

我也不必修复“vncterm 键盘映射”。而且我使用的是官方 repo,而不是 PPA。

相关内容