Articles of kvm virtualization

什么是运行debian的kvm客户端的首选clocksource?

我们的开发服务器在KVM下作为guest运行debian 4.0(etch)。 最长的时间,它有零星的问题,许多进程似乎只是挂起。 我们终于find了这个问题 – 从vmware服务器上运行的clocksource仍然被configuration为tsc。 我把它切换到“坑”,问题消失了。 不幸的是,我刚刚发现,在高cpu和高磁盘负载(在本地托pipe数据库select/更新大量),我们开始看到客人时钟歪斜。 当运行在高磁盘负载和中等高CPU负载下半个小时,我们结束了大约200秒钟的时钟偏差。 就在今天早上,我注意到了7秒钟的偏差。 这是关系到clocksource,如果是这样,哪一个更好的select? 我一直无法在网上find很多信息来解释每个时钟源的区别。 cat / sys / devices / system / clocksource / clocksource0 / available_clocksource报告: jiffies hpet tsc pit 由于支持我们的传统应用程序,我无法将此服务器升级到包含kvm_clock的较新版本。

KVM主机内核configuration以获得最佳性能

我目前正在为我的服务器构build一个内核,该服务器应该用于托pipe使用KVM的虚拟机。 在KVM-Wiki中已经有一些内核configuration选项。 这篇文章留下了一些我想知道的问题,特别是: 应该设置“无滴答系统(dynamic滴答)”吗? Ingo Molnar似乎表示,Dynamic Ticks对于KVM主机会有所帮助。 内核使用什么抢占模式? 什么定时器频率值你会select虚拟主机内核? 提前致谢。

分配给一台KVM虚拟机的多个IP地址

系统:操作系统:从包中安装KVM的Debian 6.0 64位 KVM使用Cloudmin 6.4.kvm进行pipe理 我有一个从我的主机/ 29子网。 为每个虚拟机正确安装网桥,以便拥有自己的IP,并通过主机上运行的DHCP服务器进行分配。 我遵循这个指南从我的主机: http : //wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_aus_Subnetz (你将不得不通过GTranslate运行它,这是一个德国主机,所以德国指南) 主机IP(不是我的真实IP):1.2.3.4 我的子网是5.6.7.8/29,这意味着我的虚拟机具有以下IP: 5.6.7.8 5.6.7.9 5.6.7.10 … 5.6.7.15 如前所述,路由设置和4个虚拟机我有设置都有一个IP,并可以与外部世界和彼此沟通。 这不是我遇到的问题。 当我尝试向虚拟机添加另一个IP时,IP无法从外界ping通。 为了logging,我的最终目标是能够运行DNS服务器并进行注册,这样我就可以将所有域指向它,并通过安装在其中一个虚拟机上的virtualmin安装来控制DNS(从而使其更容易运行我的网站,而不必进入我的注册商的DNS控制台,做一个子域名,然后手动制作一个Apache虚拟服务器,YADDA YADDA)。 所以,当我创build一个虚拟机时,它会得到下一个可用的IP,在这个例子中是5.6.7.11。 我想也能够给这个虚拟机5.6.7.12甚至5.6.7.13,或任何其他可用的IP。 但是,当我这样做的时候,知识产权是无法从外部世界中平息的。 我采取的步骤: 1.像往常一样在Cloudmin中创buildVM。 2.安装操作系统并在虚拟机上获得第一个IP设置 3.导航到Cloudmin中的“系统configuration” – >“networking接口”,并按照上面的主机指南添加具有所需MAC地址和网桥设备的另一个ethN设备。 4.将新设备添加到虚拟机,然后重新启动虚拟机,但是当虚拟机恢复时,我添加的ethN(eth1)声明虚拟机上没有该设备,所以我不能做类似 ifconfig eth1起来 或者我会得到错误信息“没有这样的设备”。 我认为这是因为Cloudmin为机器分配了一个IP,然后在主机上添加了某种路由。 虽然我找不到任何文档。 有没有人有任何想法,我怎么能做到这一点? 编辑:另外,是否有更好的,开源的GUI,我可以用来pipe理KVM,这将使我可以做到这一点更容易,你会build议?

kvm / vmbuilder分区比他们应该小,10%的逻辑卷总是未分配

我使用vmbuilder工具在我的ubuntu主机系统上创buildKVM虚拟机。 对于每个虚拟机,我设置一个vmbuilder.partitions文本文件,其中定义了虚拟机的分区大小。 简单如下: root 100000 swap 4000 现在我将为vm创build一个新的逻辑卷,它具有所有已定义分区的大小。 (在这个例子中,我会运行lvcreate -L 104G … ) 结果是一个正好104吉比特的LV。 但是我的100 G(i?)B根分区仅填充93.13吉比特。 而交换约3.72 GiB。 LV中约有7个GiB未分配空间。 这很奇怪,因为即使你计算vmbuilder.partitions的数字为1024byte / megabyte,根分区仍然应该是97.65 GiB而不是93.而swap应该是3.9 GiB而不是3.72。 (不幸的是,这些数字的增加,一个1TB的定义将只有大约930 GiB,而不是976)。 这可以通过手动删除LV中的经验法则估计的字节数来解决。 但我想从一开始就有理智的价值观。 每个虚拟机中有10%的空间未被分配,显然是不可接受的。 有谁知道这背后的逻辑? 非常感谢。

Ubuntu上的KVM:端口转发到访客虚拟机

我安装了kvm,并使用vmbuilder在服务器上设置了多个guest虚拟机。 这里是以下configuration: server host1 (xxx.xxx.xxx.xxx) -> guest vm1 (192.168.0.3) -> guest vm2 (192.168.0.4) 其中xxx.xxx.xxx.xxx是host1的修复IP地址。 我想使用以下命令连接到vm1: ssh username@host1 -p 2222 我试图通过在iptables中添加以下规则来做到这一点: sudo iptables –table nat –append PREROUTING –protocol tcp –destination xxx.xxx.xxx.xxx –destination-port 2222 –jump DNAT –to-destination 192.168.0.3:22 但是我在跑步的时候遇到了一个暂停: ssh username@host1 -p 2222 这是我的iptables规则: sudo iptables -nL -v –line-numbers -t nat Chain PREROUTING (policy ACCEPT 32446 packets, […]

“sched:RT节stream启动”KVM主机 – 这是什么意思?

Ubuntu的12.04 64位 – 在KVM的父母。 32核心。 所以我们似乎有一些负载问题。 我们在kern.log中注意到这一行:“kernel:sched:RT throttling activated”这是什么意思? KVM父母是否限制了主机? 这是在一个单一的父母 – 单一的孩子KVM的父母/主机。

preseed命令string失败,使用virt-install initrd-inject使用换行符

我正在使用libvirt的virt-install命令创build一个新的虚拟机。 该命令使用initrd-inject从pipe理程序中提取本地预置文件: virt-install \ –autostart \ –name vm1 \ –ram 4096 \ –location=http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-amd64/ \ –initrd-inject=/var/lib/libvirt/preseeds/vms/preseed.cfg \ –extra-args="locale=en_US console-setup/ask_detect=false keyboard-configuration/layoutcode=us hostname=virtual domain=unassigned-domain interface=auto" \ –vcpu=4 \ –vnc \ –vnclisten=0.0.0.0 \ –noautoconsole \ –os-type=linux \ –os-variant=ubuntukarmic \ -w bridge=br0 \ -w bridge=br1 \ -w network=default \ –disk format=qcow2,size=20,bus=virtio,path=/export/vm/vm1.qcow2 一切正常,直到preseed的late_command部分dynamic地打印一个暴发户脚本文件与下面的行; di preseed/late_command string printf "description \"the run-once bootstrap\"\n\nstart […]

virtualbox到qemu但结果没有可启动设备qemu

我用stream浪汉来创造我的发展虚拟现实。 我将vmdk导出到vdi,然后将vdi转换为img。 cd virtualbox_dir/test_vm VBoxManage clonehd test_vm.vmdk raw.vdi 0% ….. 100% qemu-img convert raw.vdi raw.img virsh create testvm.xml 但是我no bootable device 。 在我的XML中,启动设备被设置为hd 。 我基本上从现有的,运行的XMK复制。 我正在接手一名以前的实验室学生的这项工作,所以我不清楚他以前如何设法制作这个虚拟机。 任何想法可能会出错? 谢谢。 这是XML文件 <domain type='kvm'> <name>Test</name> <memory>4194304</memory> <currentMemory>4194304</currentMemory> <vcpu>2</vcpu> <os> <type arch='x86_64' machine='rhel5.4.0'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='utc'> <timer name='pit' tickpolicy='delay'/> </clock> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> […]

使用非文件存储快照KVM来宾

我正准备在KVM Linux(Ubuntu)主机上安装至less一个Windows 7 guest虚拟机。 我已经创build了一个我想要使用的基于LVM的存储池 。 我主要关心的是快照。 磁盘映像将在逻辑卷上创build,而不具有qcow2的所有高级function。 在这种情况下实现(或近似)快照的最佳方式是什么? 也许 使用LVM快照。 使用其他一些差异备份工具。 以某种方式说服QEMU / KVM保持逻辑卷上的实时文件系统,但保存差异(和RAM图像)到一个单独的qcow2文件。 我认为(3)会是最好的,但是一些令人讨厌的直觉告诉我这是不可能的。

libvirt(KVM)库存应用程序?

我在独立的Linux主机(本地KVM,本地存储)上有一堆LibVirt托pipe(本地使用virsh)的KVM虚拟机。 是否有任何基于Web的应用程序可以跟踪库存 – 也就是说哪些虚拟机位于哪个虚拟机pipe理程序主机上,以及它们是否运行 – 并且具有可用的可用API? 我们期待在不久的将来转向“真正的”虚拟化软件(某些类似的东西,可能是RHEV / oVirt或Open-something)。 我主要关心的是,我需要使用当前的configuration来保留这些当前的虚拟机 – 我需要一些与现有的基础设施配合良好的东西。 如果未来也不做我们想做的事情(完全pipe理),这不是一个真正的问题。 要清楚,我绝对不是在寻找一个本地的GUI应用程序,因为在我们的环境中是没用的。 我需要的东西是Web应用程序,或只是一个守护进程,并暴露一个API。