Articles of kvm virtualization

连接到正在运行的虚拟机的文本控制台

我有一个正在运行的虚拟机禁用vnc。 这是运行它的命令: qemu-system-x86_64 -enable-kvm -name scratch -S -machine pc-i440fx-trusty,accel=kvm,usb=off -m 512 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -uuid a735aa8d-8805-429a-d8e1-e4fe17453210 -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/scratch.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-reboot -boot strict=on -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 -drive file=/tmp/ubuntu-14.04.1-server-amd64-AA0J.img,if=none,id=drive-virtio-disk0,format=raw -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=2 -drive file=/tmp/ubuntu-14.04.1-server-amd64.copy.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw -device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 -netdev tap,fd=24,id=hostnet0,vhost=on,vhostfd=25 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:00:00:00:00:07,bus=pci.0,addr=0x2 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 它已经开始没有graphics控制台,所以virt-viewer将不会连接。 我如何连接到文本控制台? 有没有一个程序?

在VM中访问ptylogin提示

我使用virt-install创build了一个虚拟机,使用Ubuntu 14.04.01 LTS服务器ISO作为安装介质。 在安装阶段,我通过graphics控制台连接到虚拟机。 现在我有虚拟机运行:我可以ssh到它,否则工作正常。 我可以按照启动过程,与: virsh console my-vm 但是我无法看到login提示。 我怎样才能访问login提示通常通过PTY分配?

Ovirt手动启动

有趣的问题: 真有意思 在更糟糕的情况下,您将无法启动虚拟机。 其他人有一种方法来手动启动一个虚拟机使用CLI? oVirt Manager GUI(Web界面)closures或不再工作如何在节点上手动启动虚拟机? VdsClient看起来很有希望,以及旧的virsh命令。 但是,似乎一旦停止了GUI中的VM,就不可能在没有GUI的情况下再次启动VM。 我得到这个: [root@virt0 ~]# vdsClient -s 0 continue 6416b49f-6045-4972-9805-cf24bb3801d0 Virtual machine does not exist

KVM中的Solaris 10(Ubuntu 14.04) – 网卡无法使用

我在运行Ubuntu 14.04 kvm主机的Solaris 10客户机上运行networking时出现问题。 客人的安装运行良好,但我不能从客人到外面的世界的networking连接。 这是kvm guest定义中的networking设备定义: <interface type='bridge'> <mac address='52:54:00:d6:fc:e7'/> <source bridge='br1'/> <model type='e1000'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> 该设备在Solaris guest虚拟机内部被识别,但是一个dhcp请求被回答,那么我可以使用静态IP地址来获得一个连接。 我已经尝试了其他的networking接口模型,但他们也没有工作。 说实话,我不知道从哪里开始debugging这个问题。 任何帮助将不胜感激。 在此先感谢您的帮助。 PS其他客人(例如Ubuntu客人)没有这个问题。 一切运行良好。

主机与来宾之间的KVM隔离networking在数小时后失败

我有一个有多个CentOS guest虚拟机的KVM CentOS主机。 所有的客人都在使用网桥进行networking通信。 客人已经开始运作了好几个月,工作正常。 由于基于网桥的networkingconfiguration,访客不能直接与主机通信。 据我了解这是正常的。 资料来源: Libvirt – macvtap 我现在有一个场景,我想让一个客人能够与主机进行通信以进行pipe理。 使用libvirt.org上面的同一篇文章,我在主机上configuration了一个“隔离的”虚拟networking: <network connections='1'> <name>isolated</name> <uuid>xxxxx-xxxx-xxxxx-xxxxx-xxxxx</uuid> <bridge name='virbr1' stp='on' delay='0' /> <mac address='xx:xx:xx:xx:xx:xx'/> <ip address='10.4.4.1' netmask='255.255.255.0'> <dhcp> <range start='10.4.4.2' end='10.4.4.6' /> </dhcp> </ip> </network> 然后,我在客人上添加了一个新的networking接口: <interface type='network'> <mac address='xx:xx:xx:xx:xx:xx'/> <source network='isolated'/> <target dev='vnet13'/> <model type='virtio'/> <alias name='net1'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/> </interface> […]

我们可以提供一堆IP到Open Vswitch来selectIP吗?

我已经开始学习使用KVM虚拟机pipe理程序进行虚拟化,并试图在主机上设置虚拟集群。但是从互联网教程中可以看出,连接到OVS桥接端口的虚拟机仅从主机networkingDHCP服务器获取IP(Guest虚拟机将只performance在主机networking上)。 不过,我想知道是否可以提供不同的IP堆栈供OVS使用将IP分配给访客虚拟机? PS:我的networking的DHCP服务器只有在其MAC被注册时才将IP分配给networking上的机器。

Qcow2的图像远远超出他们应该的

我使用Ubuntu 12.04,并已经看到这个: https : //bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1025244 我们的qcow2图像的增长远远超出了他们应该…其中一些增长到600gb时,他们应该只有20-30gb 其他人正在增长缓慢,但仍在增长…通常牛图像应该有最大的10Gb现在显示20GB +这是疯了! 我的意思是增长的是他们的虚拟大小应该是最大10GB,但他们的增长远远超出了在qcow2文件 我们用qemu-img精简configuration磁盘 我知道我可以暂时解决这个问题,回收未使用的空间与virt-sparsify。 我们很快就会遇到一个大问题,那就是当图像太大,我不能再虚拟化它们来获取空间(因为临时副本需要两倍大小) 我们在机器上有快照 我的问题是: 这是否仅仅是因为他们精简configuration? 如果我预先分配他们,这会消失吗? 我怎样才能避免这一点? 改为生? 预分配? 任何方式,我可以回收的空间,而不需要两倍的空间?

如何使LVM分区的KVM映像能够以最大增长大小进行精简configuration?

背景 :到目前为止,我一直在configuration虚拟机如下: 创build模板/黄金虚拟机: 用原始的200GB磁盘(1个.xml文件,1个.img文件)创build新的CentOS 6.6 VM LVM分区:/ boot,swap和/ partitions(/中的大部分空间) 安装所需的包 上面的结果在一个虚拟机如: 200GB /var/lib/libvirt/images/mytemplate.img 为了从上面产生客人的图像,我做了: dd if = mytemplate.img = myguest.img iflag = direct oflag = direct (vs cp为更好的复制速度) 使用guestfish修改/ etc / sysconfig / network,/ etc / sysconfig / network-scripts / ifcfg-eth0 uuidgen和一个MAC地址生成器脚本生成这些id 静态IP地址从可用池中提取 上面的工作很好:我们有一个.xml文件和一个.img文件,可以很容易地在我们的数据场中移动。 问题 :问题是以上是密集configuration。 图像大小为200GB,尽pipe大部分图像可能是未使用的磁盘空间。 我希望将这些精简configuration的最大增长大小更快地移动到networking上。 我们希望guest虚拟机中的df /等命令尽可能地显示guest虚拟机文件系统的最大大小。 另外,我们希望考虑qcow2而不是原始的图像文件,以便拍摄快照。 问题 :如何创build如上所述的LVM分区的精简configuration的KVM映像? 我可以virt-sparsify现有的mytemplate.img文件,并仍然允许图像增长到最大的大小,并有/文件系统有我想要的行为? 请随时提供替代考虑。

在Ubuntu服务器重新启动后覆盖的iptables

在我的Ubuntu服务器(安装了KVM和泡菜),我注意到iptables在重新启动后被改变了。 不幸的是,我没有find哪个脚本负责这些变化。 我尝试将自己的设置保存在`/etc/iptables/rules.v4? 并通过添加重新启动后将它们带回 /sbin/iptables-restore < /etc/iptables/rules.v4 到/etc/rc.local 。 当我手动执行这一行时,它正常工作。 但是当我重新启动机器时,我的设置被另一个脚本重新覆盖。 我得出这样的结论:我的来自/etc/rc.local行在这个外部脚本之前执行,因此被覆盖。 哪一个可以,我怎么能find它?

将第二个公共IP路由到多个VM

我和一位朋友租用了一台专用服务器,并使用KVM和libvirt创build虚拟机供我们使用。 (我们在主机上使用debian jessie) 我们购买了两个额外的IP地址(我们每个人都有一个IP地址),给了我们三个IP地址,包括原始的主机IP。 主机IP为195.154.XXX.221,网关为195.154.XXX.1,我们的额外IP为212.129.XXX.XXX,位于具有相同网关的不同子网上。 我们的提供商已经给我们提供了必须在设备上使用的MAC分配地址。 我们将IP分配给单个虚拟机没有问题,但是我们不知道如何在一个IP上使用多个虚拟机。 由于所有虚拟机都需要具有相同的MAC地址,因此网桥无法工作。