Articles of kvm virtualization

为KVM安装/安装windows virtio

这可能是一个简单的答案。 我已经用尽了search谷歌的解决scheme。 这是我的问题。 我需要使用virtualizor CP来使Windows工作在KVM vps上。 当我进入VNC的Windows安装时,有强制性的驱动程序安装要求,因为硬盘是virtio 。 似乎有两个解决scheme: 通过卸载Windows ISO将virtio iso安装在CD驱动器中,然后继续安装驱动程序。 创build一个辅助CD驱动器,并在那里安装virtio iso。 那么,第一步似乎从来没有工作。 如果我卸载了Windows ISO并加载了virtio iso,它将永远不会反映回VNC中。 第二步我还没有成功。 我尝试通过virt-manager创build第二个IDE CD ROM驱动器,但virtio(virtio-win-0.1-30.iso)iso从未列在那里,而我特别将它放在/var/lib/libvirt/images文件夹。 任何build议我在哪里搞砸了?

如何将原始磁盘映像转换为基于另一个映像的写时复制映像,以便与kvm和virt-manager一起使用?

我有一个运行在kvm上的虚拟Windows机器。 目前它有一个90GB的原始磁盘映像。 我想克隆这个虚拟机,而不必保留90GB原始磁盘映像的两个副本。 这样做的好方法是根据原始图像创build两个新的qcow或qcow2图像。 首先,我将原始图像转换为qcow2图像: qemu-img convert -O qcow2 basewindowsxp.img basewindowsxp.qcow2 然后我试着创build一个由此支持的新图像: qemu-img create -F qcow2 -f qcow2 -b `pwd`/basewindowsxp.qcow2 windowsxp-1.qcow2 然后我使用virt-manager将原始虚拟机指向windowsxp-1.qcow2。 但是,当我尝试在这个新configuration中启动VM时,virt-manager报告了一个错误: Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/engine.py", line 588, in run_domain vm.startup() File "/usr/share/virt-manager/virtManager/domain.py", line 150, in startup self._backend.create() File "/usr/lib/python2.6/dist-packages/libvirt.py", line 300, in create if ret == -1: raise libvirtError ('virDomainCreate() […]

为什么当有16GB的缓冲区caching和swappiness = 0时,主机交换出虚拟机?

我有一台运行Ubuntu Quantum的桌面,使用OpenStack Folsom,配备32 GB RAM和2 GB交换的Intel i5。 我运行7个虚拟机,每个虚拟机的大小都像EC2 m1.small,所以每个虚拟机的内存都是1.7 GB。 我正在使用KVM。 当我开始同时运行5或6时,主机开始交换它们: top – 23:45:42 up 3 days, 1:51, 10 users, load average: 0.37, 0.75, 1.15 Tasks: 418 total, 2 running, 413 sleeping, 3 stopped, 0 zombie %Cpu(s): 8.8 us, 2.1 sy, 0.0 ni, 88.8 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st KiB […]

如何从libvirt更改默认存储池?

我试图在KVM上使用不同的存储池,以便存储我的虚拟机的虚拟磁盘,以及我正在使用的操作系统中的ISO。 例如:我想使用通过/dev/sda5挂载的目录/media/work/kvm作为默认的存储池,用于将来的所有情况 要configuration,创build和启动一个新的存储池,这是非常容易的,但至less在Ubuntu中,如果我从另一个存储池中selectISO,并不重要, Virtual Machine Manager始终指向默认存储池( /var/cache/libvirt )作为将创build虚拟机的虚拟磁盘的存储。 我怎样才能避免这一点?

在KVM下安装Windows Server 2008的OEM品牌介质

问题 我有一台HP服务器,附带了Windows Server 2008的OEM副本。我在硬件上安装了CentOS 5.4,并试图将Windows Server 2008安装为KVM guest虚拟机。 当我尝试安装Windows Server 2008时,它抱怨说我试图安装在不受支持的硬件上。 此问题是由于硬件SMBIOS信息未传递给KVM来宾而引起的。 背景 在我走之前,我想说明我正在尝试做的是在许可证范围内。 惠普为VMWare提供支持的解决scheme,但没有KVM的正式解决scheme。 经过多番研究,我打算使用的平台是CentOS和KVM,所以请不要build议其他平台。 我通过电子邮件发送了KVM开发人员邮件列表,并被告知这是可能的,并得到如下build议: “你可以转储你的主机BIOS的SLIC表,并使用-acpitable参数将它提供给客户的BIOS。 我用dmidecode,并得到了需要传递的参数,但我不知道在哪里传递参数。 更新 看起来像CentOS 5.4使用virt-install而不是qemu。 Qemu是在包pipe理器,我可以在卸载qemu-img后安装它们(它们发生冲突,qemu包含qemu-img中的包)。 所以现在我知道如何传递可运行的参数,但是我无法将从dmidecode出来的映射映射为-acpitable。

VNC比Spice更快速地远程访问KVM guest?

之前使用过RDP,对于从VNC到KVM虚拟机的性能,我并不是很激动。 KVM主机是Ubuntu 12.04服务器x64。 我已经读过Spice更快,所以经过相当多的麻烦,我通过virt-manager(例如virt-viewer)和一个独立的spice客户端来工作。 我没有任何硬性和快速的数字在这里引用,但VNC远程处理速度似乎比香料快2倍到4倍! 例如,在VNC中,我可以轻松观看Flashvideo,但在Spice中,它非常不稳定。 一般情况下,Unity可以通过VNC运行,但是对Spice来说会比较慢。 这可能吗? 有些configuration错误吗? 在这两种情况下,我都通过局域网上的笔记本电脑(运行Ubuntu 12.10)连接到虚拟主机pipe理器,以查看主机上的Ubuntu 12.04桌面访客虚拟机。 来宾上的VNCconfiguration使用vga显示types,而spiceconfiguration使用qxl显示types。 在这两种情况下,我都没有使用默认的videoRAM数量。

如何有效地与KVM客人共享主机的文件夹?

我正在configuration存储大量由nginx上传到/ srv / storage目录中的文件的服务。 这些文件由工作人员KVM来宾处理,可能会创build新文件或将扩展属性分配给现有文件。 文件从不被覆盖,但最终被工作人员删除。 所以主机服务器的文件写入速度约为177MB / s。 KVM镜像是存储在主机文件系统中的QCOW2文件,镜像在KVM实例中达到〜155MB / s,这要归功于这个virtio设置: <driver name='qemu' type='raw' cache='none' io='native'/> 但是我无法得到共享文件夹的结果。 我用virtfs又名virtio 9p获得了最高40MB / s。 看起来没有AIO相当于mount: mount -t 9p -o trans=virtio,version=9p2000.L uploads /srv/storage 我也在想: 没有NFS扩展属性丢失 没有GlusterFS – 工作,但性能比virtio差,因为联网,在单个硬件机器上的一种矫枉过正, 可能共享LVM卷r / w? – 实际上该文件夹存储在单独的分区,但是我读了LV不能共享r / w的地方,因为这可能会导致fs腐败。 在QCOW2上保存上传文件并由各方共享? 在QCOW2的KVM实例中保存nginx和上传的文件,以某种方式与所有客人共享图像? iSCSI – 可能与单个分区? 那么如何有效地共享主机的文件夹与扩展属性工作的KVM客人)。

具有两个NIC的KVMnetworking桥接器

问候, 我试图build立与KVM的桥接networking,并没有得到任何地方。 有关于这个主题的文档和教程,但他们似乎都冲突或不提供足够的信息。 我想知道是否有人可以给我一个关于如何使这个工作的高层次的概述。 我大概可以自己弄清楚细节(configuration接口,添加路由等),我只是需要大局的帮助:所有东西都是相互关联的。 我有一台安装了KVM的RHEL5服务器。 它有两个物理网卡eth0和eth1在同一个VLAN中。 我想使用eth1来访问guest虚拟机和networking其余部分之间的所有stream量,并在可能的情况下为主机pipe理,guest虚拟机迁移等保留eth0。 我不挑剔哪一个获得默认路由,但是如果我们可以使它成为eth0,那将会很好。 所有的客人都将拥有静态的IP地址。 我更喜欢在添加新的guest虚拟机时,只需要在guest虚拟机中设置networkingconfiguration。 基本上,我想这个: eth0:所有主机stream量 eth1:所有访客stream量 如果这是不可能的或者会变得糟糕/困难,请打开其他任何build议。 指向现有的文档可能没有帮助,因为我已经尽pipe几乎所有的东西。 谢谢你的帮助。 更新 好吧,这是我迄今为止: eth0按照正常情况configuration了静态IP地址。 那里没有惊喜。 br0是作为一个没有IP地址的网桥而提出来的 eth1是没有IP地址的。 它被添加到br0桥。 VM实例configuration为使用br0,并configuration了静态IP地址 使用这个configuration,我可以连接到来自guest虚拟机的外部机器,但是去往guest虚拟机的数据包永远不会创build它。 这是我的configuration看起来像迄今为止: # cat /etc/sysconfig/network-scripts/ifcfg-br0 DEVICE=br0 TYPE=Bridge BOOTPROTO=none ONBOOT=YES # cat /etc/sysconfig/network-scripts/ifcfg-eth0 # host-only interface DEVICE=eth0 TYPE=Ethernet HWADDR=00:23:7D:E1:1F:22 IPADDR=10.8.91.18 NETMASK=255.255.252.0 GATEWAY=10.8.91.254 BOOTPROTO=none ONBOOT=yes # cat /etc/sysconfig/network-scripts/ifcfg-eth1 # guest-only interface DEVICE=eth1 […]

KVM + cgroups:Dom0stream程最佳实践?

我正在从Xen转换到KVM,并将使用Fedora 14.我打算使用cgroups为VM分配优先级。 我的问题如下:如果我把虚拟机放在不同的cgroup中,我是否也应该把所有其他的Domain-0(物理主机)进程放在一个cgroup中,然后分配低优先级? Xen的类比是所有的Dom0进程都是在Dom0“VM”计划的时候进行批量调度的,所以把它们都放在同一个cgroup中,我会模拟这种行为。 但是,由于KVM不像Xen那样受到Dom0 IO依赖关系的影响,因此我可以将Dom0 cgroup分配给低优先级。 换句话说,所有的背景Dom0进程(如ntpd,yum等)是否会与通过cgroups显式控制其资源分配的虚拟机竞争? 这里最好的做法是什么?

如何使用单个NIC为3个KVM来宾分配多个公共IP地址

我有一台CentOS 6.5 KVM主机,带有3个KVM-Guest CentOS 6.5。 现在我想为每个来宾使用一个networking接口为主机分配一个公共IP和一个公共IP。 我的IP(由networkingpipe理员分配)是: 10.25.147.100 10.25.147.101 10.25.147.102 10.25.147.103 掩码:255.255.254.0 网关10.25.146.9 这里有一个图像,更好地解释我的情况: 我是一个Linux新手,所以请帮助我:) 提前致谢