我有三台KVM服务器,每台服务器都有一个访客虚拟机,直接在本地存储上运行(所以它们实际上每台计算机都有专门的计算能力)。 如果发生主机故障,我希望客人至less复制其中一台主机,以便我可以在主机上旋转它,直到故障主机被修复。 我很好奇KVM克隆。 我可以直接克隆虚拟机,或者暂停/closures虚拟机。 明显挂起的虚拟机自然会更快克隆,但这三个虚拟机由三个部分组成的单一解决scheme,所以我不希望任何一个closures。 如何有效地在服务器之间克隆这些虚拟机? 我有几个想法,但这些是疯了吗,还是有更好的方法,我已经错过了我的情况? 在虚拟机1运行的方框1和方框2之间build立一个DRDB分区,在方框1和方框2之间进行复制,在方框2和方框3和方框3和方框1之间重复(这可能是疯狂的,我从来没有使用过DRDB阅读有关它) 只需使用标准KVM CLI克隆选项来执行实时克隆(我对此抱有怀疑,因为我不知道需要多长时间,性能影响会如何) 在至less一个其他主机上运行每个虚拟机的副本,并让一个主机上的guest虚拟机将其数据导出到另一个主机上的匹配guest虚拟机,在该主机上可以导入该数据,在guest虚拟机上编写脚本) 其他一些方式? 想法欢迎! 边注 这些服务器在RAID 10中有4x15k SAS驱动器,所以它们的速度并不快,正如我所提到的,每个虚拟机都运行在主机的本地存储器上,没有NAS或SAN等。所以我就问这个关于guest虚拟机复制的问题。 另外,这不是关于灾难恢复。 客户将通过VPN将他们的数据导出到NAS,所以我正在研究如何让他们在主机故障情况下快速启动。
我在设置KVM w时遇到了麻烦。 在Ubuntu 10.10中桥接networking。 我通过virsh启动我的虚拟机,之后我可以看到主机上的kvm进程和vnet设备,但是新的接口没有获得IPv4地址,所以我不能使用虚拟机! 下面是一个虚拟机启动后可以看到的内容。 root@robin-desktop:~# virsh start meerkat Domain meerkat started root@robin-desktop:~# ps aux | grep kvm root 1411 0.0 0.0 0 0 ? S 18:20 0:00 [kvm-irqfd-clean] 119 3436 73.7 3.5 1213320 141076 ? Sl 18:48 0:05 /usr/bin/kvm -S -M pc-0.12 -enable-kvm -m 1024 -smp 1,sockets=1,cores=1,threads=1 -name meerkat -uuid dbf905dd-b05d-5c81-5fe4-ad421cd50ece -nographic -nodefaults […]
我在我的戴尔服务器上使用kvm和libvirt。 现在我正试图将一台虚拟机从物理服务器迁移到另一台虚拟机。 不过,我每次都失败了。 在physicalServer1的virsh中,我input: virsh # migrate virtualmachine1 qemu+ssh://username@physicalServer2/system error: operation failed: migration to 'tcp:physicalServer2:49163' failed: migration failed 然后我在libvirt.org上search了FAQ部分 。 它说: error: operation failed: migration to '…' failed: migration failed This is an error often encountered when trying to migrate with QEMU/KVM. This typically happens with plain migration, when the source VM cannot connect to […]
我正在尝试创build两个都连接到同一个专用networking的虚拟机。 我用qemu-kvm 1.0使用Linux。 我的攻击计划是这样的: brctl addbr桥 ifconfig桥接起来 tunctl -t tap1 tunctl -t tap2 ifconfig tap1向上 ifconfig tap2 up brctl addif bridge tap1 brctl addif bridge tap2 qemu-kvm -net nic,macaddr = 52:54:00:11:22:33 -net tap,ifname = tap1 disk1.img qemu-kvm -net nic,macaddr = 52:54:00:44:55:66 -net tap,ifname = tap2 disk2.img 一旦启动,我给第一台机器的IP地址192.168.100.5,第二个192.168.100.10。 此时,当我尝试从另一个虚拟机中ping一个虚拟机时,没有ping响应。 但是,使用Wireshark,我发现ARP请求被发送和响应,并validation了ARPcaching包含其他VM上的信息。 然而,没有ping应答产生(通过Wireshark看到)。 接下来,我试着给这个网桥一个IP地址192.168.100.1。 这样做后,虚拟机之间ping,但仍然有一个问题:现在所有请求似乎来自桥本身。 例如,如果我从一个虚拟机连接到另一个虚拟机的FTP服务器上,在虚拟机上使用FTP服务器运行netstat会显示192.168.100.1是源虚拟机。 连接的工作方式与穿越NAT一样,但与NAT一样,源地址不是始发机器的源地址。 我试着用net.ipv4.ip_forward打开和closures,并用相同的结果来伪装(iptables […]
我在保持系统时钟同步到多个kvm guest虚拟机上时遇到问题。 我search了一下,发现了很多不同的select,其中很多我都试过了,但是没有用。 所以我在这里。 ntpd是不可能的(主机系统运行它,时钟总是正确的,但是如果你在客户端上运行它,时钟将不再起作用)。 主机是Ubuntu 9.04,内核是2.6.28-11-server客户机是Ubuntu 8.04,内核是2.6.24-24-virtual 以下是主机上的时钟源情况: # cat /sys/devices/system/clocksource/clocksource0/available_clocksource tsc hpet acpi_pm jiffies # cat /sys/devices/system/clocksource/clocksource0/current_clocksource tsc 在客人身上: # cat /sys/devices/system/clocksource/clocksource0/available_clocksource tsc pit jiffies # cat /sys/devices/system/clocksource/clocksource0/current_clocksource pit 我在客户机的内核启动参数中有“clock = pit divider = 10”。 它仍然漂移。 我们不是说大量的漂移,但有一些。 有什么build议么? 有没有人有这个问题,并处理它?
我发现一个Mumble服务器的性能问题,我在前面的问题中描述是由于来源不明的I / O延迟问题造成的。 因为我不知道是什么原因造成的,以及如何进一步debugging,所以我要求您提供关于这个主题的想法。 我正在运行Hetzner EX4S根服务器作为KVMpipe理程序。 服务器运行Debian Wheezy Beta 4,通过LibVirt使用KVM虚拟化。 服务器有两个不同的3TB硬盘驱动器,因为其中一个硬盘驱动器在SMART错误报告后被replace。 第一块硬盘是希捷Barracuda XT ST33000651AS(逻辑512字节,物理扇区大小4096字节),另一块是希捷Barracuda 7200.14(AF)ST3000DM001-9YN166(512字节的逻辑和物理扇区大小)。 有两个Linux软件RAID1设备。 一个用于未encryption的启动分区,另一个用作encryptionhibernate的容器,同时使用两个硬盘驱动器。 在后面的RAID设备中有一个AESencryption的LUKS容器。 在LUKS容器内部有一个LVM物理卷。 pipe理程序的VFS在所描述的LVM物理卷上分为三个逻辑卷:一个用于/,一个用于/ home,另一个用于交换。 以下是块设备configuration堆栈图: sda (Physical HDD) – md0 (RAID1) – md1 (RAID1) sdb (Physical HDD) – md0 (RAID1) – md1 (RAID1) md0 (Boot RAID) – ext4 (/boot) md1 (Data RAID) – LUKS container – LVM Physical […]
我正在寻找一个基于Web的虚拟机pipe理器,它将在我们的Ubuntu服务器上工作。 理想情况下,我需要一些我们团队可以用来创build虚拟机,testing构build和打包,然后恢复到原始状态或删除的东西。 libvirt有一个API,但我找不到任何使用它的networking应用程序。 谢谢
我想要一个强大的方法,在运行时,对qcow2文件的KVM VPS进行备份。 经过长时间的search,我发现我们可以使用rsync进行实时备份。 我使用以下命令进行rsync: rsync -avh /vms/base.qcow2 /backup/backup.qcow2 它工作正常。 但是,如果在由于写入和删除操作(如安装新软件或更新)而更改VPS时进行备份,恐怕可能会损坏备份qcow2映像。 因此,从现场VPS的快照备份似乎更有趣的select。 我使用以下命令来进行运行VPS的备份: 1.创build快照: qemu-img create -f qcow2 -b base.qcow2 snapshot.qcow2 2.以原始图像格式(.img)转换快照: qemu-img convert -O raw snapshot.qcow2 /backup/backup.img 恢复VPS: 3.在qcow2图像中转换原始图像: qemu-img convert -O qcow2 /backup/backup.img base.qcow2 然后我们可以通过virsh create base.xml命令启动VPS。 即使这个方法也能正常工作,但我仍然不确定这是否是正确运行VPS的备份方法。 我在这里和这里find了很好的关于qemu-img命令的文档。 但是他们没有提到在原始图像中转换实况VPS的快照。 哪种方法更适合直播VPS备份? 转换原始图像中的快照是否安全? 如果我能得到很好的详细文档,了解快照和基本文件在某些情况下的行为,这将是非常有用的。 也许我们也可以将base qcow2映像转换成原始备份文件,而不是转换快照。 所以命令stream将是: 1.创build快照 2.将base qcow2转换为备份原始图像 3.将快照更改提交到基本映像 4.删除快照 我试过这个,在5GB的小VPS上工作的很好。 但是当VPS规模巨大时,是否有可能出现错误或VPS损坏? 提前致谢…
甚至光盘吞吐量(原始lvm分区上的libvirt)与服务器上的原始性能非常接近), 但是 IOP / s低至在Linux和Windows客户端,100-200个客户端(相对于1000个主机端)。 这是一个生活的事情(KVM不能做得更好)还是我做了一些完全错误的事情? 有趣的是,我能够通过改变设置(qcow2 vs raw-image vs raw-partition)或configuration(caching或IO调度)和变化来影响吞吐量,但IOP在所有那些处于相同的低点组合。 硬件# •超微双dual Xeon E5520与24GB内存 •2个希捷星座1TB(Adaptec 3405上的RAID1) •2x希捷猎豹(Adaptec 6405上的RAID1)。 软件 •Ubuntu 11.10 3.0.0-13-server •kvm / QEMU仿真器版本0.14.1(qemu-kvm-0.14.1) •从主机和来宾(Bonnie ++,hdparm,hdtune在Windows上)对磁盘进行基准testing(bonnie ++,hdparm) configuration 我testing了几个光盘configuration,目前的设置是: Linux主机 (他们只是不需要“高”IO性能,所以我保持更舒适的discfiles) •在我的星座上lvm上的qcow2光盘文件 •qemu / ide <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/media/vm/images/mex/mex_root.qcow2'/> <target dev='hda' bus='ide'/> <address type='drive' controller='0' bus='0' unit='0'/> </disk> Windows主机### […]
我有一个KVM客人,我需要从一个主机迁移到另一个。 迁移不需要太热。 其存储当前由LVM块设备支持,并带有桥接networking适配器。 两个服务器都有相同的内核,libvirt,qemu等版本。最简单的方法是什么? 我的猜测是: dd the block devices from server A to server B export the xml VM definition on A, copy it to B edit the xml to refer to the new physical device names create the machine referencing that xml file