我正在使用libvirt来控制运行Debian Squeeze amd64的相当新的(核心i3)主机上的kvm。 主机以及Linux客人的工作,感觉快速和响应。 使用virt7pipe理器标准configuration文件为Windows7只需安装Win7永远。 我主要责怪磁盘io,但Windows通常不会像linux客户那样响应。 你有没有关于kvm的Win7客人性能优化设置的一些提示? (对不起,我认为它们是很好的参考。) 主机configuration: kvm: Version: 1:0.12.5+dfsg-5+squeeze8 libvirt-bin: Version: 0.8.3-5+squeeze2 virsh dumpxml: <domain type='kvm' id='27'> <name>win7-template</name> <uuid>a4eb05fa-0d4e-5ced-2ff1-e15507795d1b</uuid> <memory>2097152</memory> <currentMemory>2097152</currentMemory> <vcpu>2</vcpu> <os> <type arch='x86_64' machine='pc-0.12'>hvm</type> <boot dev='hd'/> </os> <features> <acpi/> <apic/> <pae/> </features> <clock offset='localtime'/> <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='disk'> <driver name='qemu' type='raw'/> <source file='/var/lib/libvirt/images/win7-template.img'/> <target dev='hda' bus='ide'/> […]
如何防止VM用户/客户端访问他不拥有的IP地址,但通过KVM / Libvirt上的同一个桥接器路由? IP地址被路由到由24个254个可用地址组成的Cisco交换机vLan。 105.100.1.0/24。 这是一个设置的例子。 VM1 – 105.100.1.5 VM2 – 105.100.1.6 VM3 – 105.100.1.7 我怎样才能防止VM1访问他不拥有的地址?
我正在努力将主机正确检测到的USB设备连接到kvm虚拟机。 我有一个新安装的Ubuntu Server 14.10作为KVM / QEMU主机。 我使用这个命令设置了一个Ubuntu虚拟机: virt-install –connect qemu:///system \ -n test01 \ -r 1024 \ –vcpus=2 \ –disk path=/vmstorage/01/test01.img,size=5 \ –vnc \ –noautoconsole \ –os-variant=ubuntuutopic \ –hvm \ –cdrom /path/to/ubuntu-14.10-server-i386.iso 成功安装后, virsh dumpxml test01返回 <domain type='kvm' id='16'> <name>test01</name> <uuid>f58ca825-c999-4168-9f5a-616057d9955d</uuid> <memory unit='KiB'>1048576</memory> <currentMemory unit='KiB'>1048576</currentMemory> <vcpu placement='static'>2</vcpu> <resource> <partition>/machine</partition> </resource> <os> <type arch='x86_64' machine='pc-i440fx-utopic'>hvm</type> <boot […]
下面是我使用的virt-install命令行 sudo virt-install kvm ubuntu -v sudo virt-install -v -n golden-egg -r 256 –disk path = / var / lib / libvirt / images / golden-egg.qcow2,size = 5 –os-type linux –os-variant ubuntulucid –force –cdrom = temp / ubuntu-10.04.1-server-amd64.iso –virt -type qemu –connect = qemu:/// system –extra-args =“ interface = eth0 hostname = goldenegg domain = […]
我正在testingOpenstack,我想知道如何才能找出有关实例(虚拟机)内的资源利用率。 Openstack在我的testing环境中使用kvm,qemu和libvirt。 有没有办法在没有login机器(CPU,内存,交换,networkingstream量)的情况下获得这些统计信息? 我想从hypervisor或libvirt收集这些数据。 有什么build议么?
我想我的一些域名在主机启动时自动启动(我在Ubuntu上使用libvirt + KVM)。 我想我可以把一些“virsh开始…”语句在rc.local,但有没有办法在libvirt / virsh内configuration?
我试图构build一个运行短期(CI和testing版本)的软件组件的系统,根据我的要求,每个系统都必须在私有主机上运行。 我将这个定义也纳入了paravirtualsation选项,因为它似乎会为我节省很多头痛。 我正在Mac上工作,所以几乎所有的技术都已经出来了, libvirt和quemu等等都不适合我。 不过,我正在计划部署到Debian; 所以在Debian上运行的任何东西都回来了,只要我可以脚本configuration主机以及它的来宾域。 我希望的设置是,我可以用来引导一个Debian安装程序,这意味着在启动时,机器会自动configuration(厨师,木偶,巴布什卡,不介意,真的) – 部分configuration应该build立一个可用于启动容器的模板rootfs。 容器本身也需要configuration,所以当容器出现时,它知道需要做什么工作,可以完成工作,然后退出。 总之,这是我需要的工作stream程: 启动一台机器(虚拟或其他),并准备好工作。 这个工作应该由厨师/ puppet / babushka / etc安装的脚本来完成 当工作进入时,应该开始一个虚拟机来完成这项工作。 虚拟机应该完成这些工作,退出并将其资源释放给父母/主机。 (重要的是,这可以在合理的硬件上扩展到至less数百个虚拟机) 我已经到了一个地步,我已经尝试了以下内容,并放弃它们,原因如下: 对于主机 使用Instalinux(LinuxCOE支持)的Pre-seed Debian微型ISO映像( 坏的: 根本没有工作(“找不到内核模块”)(因为Instalinux映像与FTP库不同步,显然这个解决scheme非常脆弱,它也不允许有太多的安装后的范围,并将已知的SSH密钥,主机密钥等放在机器上,似乎像火和忘了,最后我会有一个运行的机器,但没有访问它 。) Pre-seed Debian netinst ISO( Bad : 与上面相同的问题,除了至less安装通常会完成,因为ISO和FTP存储库之间没有内核不一致,安装后的范围仍然有限 好 : 绝对可靠和可重复的,很容易扔在任何虚拟技术堆栈在Mac上,或裸机上,可以在任何地方工作,但我不能后安装它足够 ) build立rootfs的各种方法,并将其编译为可引导的硬盘映像( 不好 : 我能做的工作很脆弱,难以安装到真机上,而且是一个复杂的构build过程。 我可以得到它的工作,这似乎提供了预先configuration的机器,以ssh键,主机密钥,主机名,从Git安装的软件给定的规范的最大范围和其他任何,但问题是如何打包它分发,或如何脚本的娱乐。 ) 我真的不确定用什么技术将虚拟机从无到有,运行有用的系统。 似乎有三个步骤给我a)操作系统,b)系统configuration(用户等),然后c)文件系统的变化。 对于客人(虚拟)机器: 很多东西,大多数我认为这里的答案是使用debootstrap创build的只读rootfs,以及包含要为此特定实例(作业清单)完成的工作的LXC容器上的特殊分区。 插入所有关于构build操作系统,启动,创build用户,从git检出软件以及开展工作的所有常见警告。 我真的不确定要达到什么样的工具,好像这个问题应该很好的解决。 但是我不知道从哪里开始。 大多数人似乎build议主机应该select一种虚拟化技术,启动一台机器到一个工作状态,然后快照(libvirt似乎是这方面的合乎逻辑的最爱)。 使用快照启动任何后续安装以进行testing或生产。 对于来宾机器,lxc似乎提供了最简单的select,除了背景容器,并且稍后通过控制台连接到现有的所有内核之外,可用于稳定Debian的最新版本的lxc已经超过18个月,而且缺less很多被广泛使用的特征。 […]
我们有一个由两个节点组成的Heartbeat / DRBD / Pacemaker / KVM / Qemu / libvirt群集。 每个节点使用以下软件包/版本运行Ubuntu 12.04 64位: 内核3.2.0-32-generic#51-Ubuntu SMP DRBD 8.3.11 qemu-kvm 1.0 + noroms-0ubuntu14.3 libvirt 0.9.13 起搏器1.1.7 心跳3.0.5 虚拟客户端正在运行Ubuntu 10.04 64位和Ubuntu 12.04 64位。 我们使用libvirtfunction将主机CPU的function传递给虚拟客户机,以实现最佳的CPU性能。 现在这是这个集群上的一个常见设置: 虚拟机“监控”有4个vCPU 虚拟机“监控”使用ide作为磁盘接口(我们目前正在切换到VirtIO,原因很明显) 我们最近跑了一些简单的testing。 我知道他们不专业,没有达到高标准,但他们已经显示出强大的趋势: 节点A正在运行VM“bla”节点B正在运行VM“监视” 当我们从虚拟机“bla”到虚拟机“监视”rsync的文件,我们只达到12 MB /秒。 当我们在虚拟机“监控”内部执行一个简单的dd if / dev / null = / tmp / blubb时,我们可以达到30 MB / s左右。 […]
我正在尝试更改VM的引导设备。 我在/etc/libvirt/qemu VM的XML文件,并设置<boot dev='cdrom' /> 。 不过,它试图从硬盘而不是从光盘启动。 我知道我有一个加载在CD-ROM虚拟设备上的ISO映像。 我不正确吗? 我试图彻底closures虚拟机,并启动它无济于事。 也许我需要重新加载设置? 编辑: 根据@Selivanov的要求: $ libvirtd –version libvirtd (libvirt) 0.8.7 和XML文件: <domain type='kvm'> <name>nimmy.example.com</name> <uuid>(SNIP)</uuid> <memory>524288</memory> <currentMemory>524288</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64' machine='rhel6.1.0'>hvm</type> <boot dev='cdrom'/> </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/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='raw' cache='none'/> <source file='/var/lib/libvirt/images/nimmy.img'/> […]
不幸的是,我可能不得不重启我的存储arrays。 在使用KVM与libvirtpipe理虚拟机的环境下,我需要重新启动存储arrays,是否有可能甚至build议: 暂停虚拟机 刷新并closures多path 注销iSCSI会话 更新和重新启动存储arrays。 然后按照相反的过程 重新build立iISCSI会话 恢复多path 恢复VM的 任何build议是受欢迎的。