![Ubuntu 12.04 上的 Xen 虚拟机管理程序 4.1 内核崩溃](https://linux22.com/image/599616/Ubuntu%2012.04%20%E4%B8%8A%E7%9A%84%20Xen%20%E8%99%9A%E6%8B%9F%E6%9C%BA%E7%AE%A1%E7%90%86%E7%A8%8B%E5%BA%8F%204.1%20%E5%86%85%E6%A0%B8%E5%B4%A9%E6%BA%83.png)
我有一个新的 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-amd64
always 启动时,我收到内核恐慌消息
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。