我有近140个使用KVM在Ubuntu 10.04上运行的虚拟机。VM中的操作系统不同,但主要是10.04 VM。
他们的成绩低于10.04。我完全擦除了OS磁盘,并使用dirsh定义其配置文件引入了所有现有VM。我已经在运行3-5个VM的服务器上完成了此任务,并且运行良好,但是这些服务器各自运行20-25个VM。
升级后,我注意到以下内容:
- 一些虚拟机的时间变得疯狂。就像他们被引导并认为是2个月前一样。
- 执行du / df不再显示最初创建的img文件的大小。仅在它们中使用了什么。因此,当您安装40G Ubuntu时,在du中显示为2G,ls -lh显示正确
- 一些(不是全部)VM的行为就像它们几乎无法写入磁盘一样,好像它们用完了空间,但它们有55%以上的可用空间。删除文件后,VM再次开始工作。
- VM通常仍可ping通,但控制台和SSH失败。输入密码后,某些SSH连接会挂起。
磁盘映像位于XFS上。
版本信息:
- 操作系统:Ubuntu 12.04
- 内核:3.2.0-30-泛型
- kvm 1:84 + dfsg-0ubuntu16 + 1.0 + noroms + 0ubuntu14.1虚拟过渡包从kvm到qemu-kvm
- 从qemu到qemu-kvm的qemu 1.0 + noroms-0ubuntu14.1虚拟过渡包
- qemu通用1.0 + noroms-0ubuntu14.1 qemu通用功能(BIOS,文档等)
- qemu-kvm 1.0 + noroms-0ubuntu14.1 i386和amd64硬件上的完全虚拟化
- qemu-utils 1.0 + noroms-0ubuntu14.1 qemu实用程序
- seabios 0.6.2-0ubuntu2.1旧版BIOS实现,可以用作coreboot负载
- 用于Bochs和Qemu仿真VGA卡的vgabios 0.6c-2ubuntu3 VGA BIOS软件
- libvirt库的libvirt-bin 0.9.8-2ubuntu17.5程序
- libvirt0 0.9.8-2ubuntu17.5库,用于与不同的虚拟化系统接口
我也尝试过以相同的结果构建14.7的qemu / kvm。
系统管理程序或VMS上的日志(libvirt,qemu,syslog)中没有任何条目。
<domain type="kvm">
<name>template</name>
<uuid>9b5004aa-e4e1-11de-9137-003048dad824</uuid>
<memory>1048576</memory>
<currentMemory>1048576</currentMemory>
<vcpu>2</vcpu>
<os>
<type arch="x86_64" machine="pc">hvm</type>
<boot dev="hd"/>
<kernel>/kvm/kernels/vmlinuz-2.6.32-24-server</kernel>
<initrd>/kvm/kernels/initrd.img-2.6.32-24-server</initrd>
<cmdline>ro root=/dev/vda</cmdline>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>
<clock offset="utc"/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
<emulator>/usr/bin/kvm</emulator>
<disk type="file" device="cdrom">
<target dev="hdc" bus="ide"/>
<readonly/>
</disk>
<disk type="file" device="disk">
<source file="/kvm/images/template.img"/>
<target dev="vda" bus="virtio"/>
</disk>
<interface type="bridge">
<mac address="de:ad:3e:5b:47:99"/>
<source bridge="br2"/>
<model type="virtio"/>
</interface>
<serial type="pty">
<target port="0"/>
</serial>
<console type="pty">
<target port="0"/>
</console>
<graphics type="vnc" port="-1" listen="0.0.0.0" autoport="yes" keymap="en-us"/>
</devices>
</domain>
在正在运行的VM上进行跟踪,我看到了这一点:
read(19, "\2\0\0\0\0\0\0\0\0\0\336\255\276\357\10\353\0\f\333\350\275\0\10\0E\0\0B\214\212@\0"..., 69632) = 90
ioctl(6, KVM_IRQ_LINE_STATUS, 0x7fff290e65f0) = 0
read(19, 0x7f7967430a54, 69632) = -1 EAGAIN (Resource temporarily unavailable)
select(20, [7 8 11 15 16 17 18 19], [], [], {1, 0}) = 1 (in [8], left {0, 999819})
read(16, 0x7fff290f6710, 16) = -1 EAGAIN (Resource temporarily unavailable)
任何帮助,将不胜感激。
编辑
我已经从Ubuntu升级到了最新的内核版本。仅在运行iozone时注意到AppArmor的一些拒绝,因此我在测试系统上完全删除了apparmor。将qemu / kvm和支持库升级到12.10中的库。我还尝试使用pc-0.12和pc-0.14版本。
在启动后的一两个小时内,所有文件仍处于锁定状态。