Articles of libvirt

Debian Jessie Qemu KVM GPU直通到Windows虚拟机guest虚拟机pipe理器错误找不到总线PCI

我遇到了Virt-Manager问题,不想启动虚拟机并给出错误: Error starting domain: internal error: process exited while connecting to monitor: char device redirected to /dev/pts/3 (label charserial0) qemu-system-x86_64: -device ioh3420,bus=pci,addr=1c.0,multifunction=on,port=1,chassis=1,id=root.1: Bus 'pci' not found 如果我点击详细信息这里是完整的错误: Traceback (most recent call last): File "/usr/share/virt-manager/virtManager/asyncjob.py", line 96, in cb_wrapper callback(asyncjob, *args, **kwargs) File "/usr/share/virt-manager/virtManager/asyncjob.py", line 117, in tmpcb callback(*args, **kwargs) File "/usr/share/virt-manager/virtManager/domain.py", line 1160, in startup […]

运行Vagrant / libvirt:试图build立公共/私人networking

我在Ubuntu 14.04 LTS上运行Vagrant 1.7(来自他们的官方1.7软件包),我正在尝试configuration几个私有虚拟机和一个公共虚拟机。 我的Ansibleconfiguration脚本更改所有vagrant / root密码,并replace安全性方面的Vagrant股票SSH密钥。 我所有的内部IP是10.10.20.0/24。 我有一个虚拟机,需要IP 10.42.7.226(从我们的真实的外部IP地址80/443有一个NAT去它)。 pipe理程序在10.42.7.227,我创build了一个连接到eth0的IP。 我的networkingconfiguration如下所示: auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 10.42.7.227 netmask 255.255.255.0 network 10.42.7.0 broadcast 10.42.7.255 gateway 10.42.7.1 dns-nameservers 8.8.8.8 auto br0 iface br0 inet static address 10.42.7.227 netmask 255.255.255.0 gateway 10.42.7.1 bridge_ports eth0 […]

libvirt非TLS连接

即使在libvirtd.conf中将tls设置为0,virsh似乎也需要TLS。 我宁愿不使用TLS,因为我在一个安全的环境中工作,因此TLS只会增加复杂性,但不会增加任何安全性(如果您有能力利用纯文本,我有更大的问题在我手上)。 我已经画空白,在谷歌方面find解决办法。 每次我试图做一个远程virsh连接它说,没有证书安装(这是真的)。

如何连接到我的libvirt / qemu / guests? (没有IP地址)

我inheritance了一个可靠的Ubuntu服务器的pipe理与几个虚拟服务器,也使用libvirt和QEMU的Ubuntu。 我遇到了无法连接到这些虚拟服务器/客户端的问题。 根密码是未知的物理盒子,所以我不得不通过使用Knoppix Live光盘(因为它处理LVM2和Raided磁盘/图像),并做了一个chroot和更改密码恢复(这可能已经破碎的东西)。 从那以后(巧合?)客人似乎没有IP地址。 当我查看“ifconfig vnet0”输出时,没有分配IP地址,并且RX / TX计数为0.这似乎是错误的(可能是虚拟网桥坏了,或者guest虚拟机没有运行)。 virbr0有一个IP地址,当我尝试ping一个应该分配给vnet0的IP地址时,TX计数增加。 所以虚拟networking似乎没问题。 当我做'列表 – 所有'我看到,客人正在运行。 我也看到一个'ps -eaf |的进程 grep libvirt“。 所以客人似乎存在。 (但他们正在运行?) “关机”命令不closures客人。 但是,这可能是有效的(不适用)。 “摧毁”和“开始”的工作,但又不能确定客人是否足够运行,以达到初始化networking的目的。 我试图从virsh中“控制GuestMachine”,但是这个挂起,我想我需要在客机上运行getty。 ps的输出还显示“-vnc 127.0.0.1:9”。 但是,包括物理服务器的所有服务器都没有GUI / X。 我认为VNC只是graphics化的,所以路线可能是另一个死路一条。 在'/var/log/libvirt/qemu/GuestMachine.log'中没有任何说明。 我看到“closures”,“启动”,命令行选项和“redirect到/ dev / pts / 13(标签charserial0)”的字符设备。 这是我第一次介绍libvirt和qemu,经过一番挖掘,我不确定是否有运行guest虚拟机或如何连接到它们(没有IPAddress / ssh选项)。 一旦我可以连接到客人,我相信我可以解决IP地址问题,但没有IP地址,我无法连接到客人。 在这种情况下有没有办法连接到客人?

使用磁盘映像文件从dom0备份Xen Guest

我有一个Xen服务器dom0与许多客人安装,并正在努力find一个简单的方法来pipe理从dom0方面的备份。 访客脚本:当然,我可以在每个访客上运行备份脚本,但如果可能的话,希望从pipe理angular度避免这种情况。 理想情况下,我也希望能够自己备份磁盘映像,这些映像和configuration一起可以直接恢复到另一个Xen dom0(如果需要的话),以及某些目录的文件备份。 / var / lib / libvirt / images的rsync:我已经尝试了/ var / lib / libvirt / images /中的图像文件的一个简单的rsyncclosures,但有一个问题 – 磁盘映像试图复制全部可用的大小(它们可以增长到的大小)。 所以这意味着每个图像都试图以250Gb而不是实际的2.5Gb左右(例如ls -l所示的大小,而不是du所示的大小)来复制。 网上有很多解决scheme和脚本,但是这些都看起来很老,似乎是基于LVM设备的磁盘,因此可以在/ dev / virtual / NAME-disk中find,因此可以将它们复制,然后挂载,然后进行备份使用rsync。 这似乎不是我的系统configuration。 如果可能的话,我会看到一些潜在的解决scheme(正如我刚才提到的,我希望备份一个映像文件,并对虚拟机上的某些目录进行文件级备份,或许也是这些的组合)。 收缩图像文件:我可以复制图像文件,然后缩小到它的实际使用的空间? 我可以rsync这个并删除临时文件。 以实际大小复制:以某种方式复制图像文件的实际大小,然后如果需要在另一个dom0上重新创build大小属性? 挂载映像文件:以某种方式直接挂载映像文件? 我发现有一些方法可以将它转换为LVM映像,但不知道这是否是唯一的方法(我对使用映像文件来正常运行域来宾)感到满意。 在此先感谢,希望已经够清楚了。

使用virt-install创buildlibvirt“mcast”networking?

我想创build具有肥大networking接口的虚拟机。 这可以通过先使用virt-install创build一个guest virt-install ,然后修改域XML来实现。 有没有办法从命令行做到这一点? 天真地开始于: virt-install -w mcast … 结果是: ERROR internal error: No <source> 'port' attribute specified with socket interface 上面生成的XML如下所示: <interface type="mcast"> <mac address="52:54:00:21:ec:7c"/> </interface> …所以它确实缺less了source元素。 但是,显而易见的解决scheme不起作用: virt-install -w mcast,source=230.0.0.1:5555 这导致了相同的XML。 有没有一种方法可以从virt-install命令行进行这项工作?

修改虚拟networking之间的libvirt防火墙规则

在我的VM主机上,我有两个libvirt虚拟networking: virbr0:192.168.122.1/255.255.255.0 virbr1:192.168.130.1/255.255.255.0 我在每个虚拟networking背后都有一个虚拟机。 机器可以看到主机,并看到互联网。 但是,当我尝试从一个networking连接到另一个networking时,即使连接到我所知道的端口,我也会得到“拒绝连接”。 我禁用UFW(主机是Ubuntu),仍然失败。 没有logging,所以我不知道哪个规则阻止它。 我的FORWARD块(我假设由virtlib创build)是: Chain FORWARD (policy ACCEPT) target prot opt source destination DOCKER all — anywhere anywhere ACCEPT all — anywhere anywhere ctstate RELATED,ESTABLISHED ACCEPT all — anywhere anywhere ACCEPT all — anywhere anywhere ACCEPT all — anywhere 192.168.122.0/24 ctstate RELATED,ESTABLISHED ACCEPT all — 192.168.122.0/24 anywhere ACCEPT all — […]

在Ubuntu 14.04上安装virt-sysprep

我用vagrant-libvirt使用stream浪汉,我想通过命令行创build一个包: vagrant package –output ubuntu14-base.box 在virt-sysprep不存在的时候我遇到了一个错误(在系统中search后确认)。 我试过安装这些软件包,但没有成功: libguestfs0; libguestfs-dev的; Ubuntu的VIRT; VIRT顶; VIRT-什么; rubyguestfs 但是,仍然没有安装virt-sysprep 。 在Googlesphere中search总是会回到libguestfs-tools-c ,这在Ubuntu中是不可用的。

libvirt TCP隧道networking仅适用于2个虚拟机

我正在使用libvirt(qemu驱动程序)设置一些虚拟机。 一台虚拟机就是网关,因此configuration了两个networking接口。 一个接口连接到我的真实LAN,另一个使用TCP隧道(服务器模式): <!– External interface – ie facing the Internet –> <interface type='direct' trustGuestRxFilters='no'> <source dev='eth0' mode='vepa'/> </interface> <!– Virtual network –> <interface type='server'> <source address='0.0.0.0' port='5558'/> </interface> 然后,我有两个其他的虚拟机(称为test_1和test_2)几乎相同(当然除了UUID,MAC和主机名)。 那些只有使用虚拟TCP隧道networking的networking接口: <interface type='client'> <source address='127.0.0.1' port='5558'/> </interface> 现在,网关虚拟机应该向虚拟networking上的所有虚拟机分发IP地址,但是只有在首先启动的testing虚拟机上才会这样做。 另外,如果两者都在运行,并且closures了当前具有IP的那个,则另一个将获得IP。 我不认为这是DHCP的问题,因为我可以看到,第二个testingVM甚至不向网关发送DHCP请求。 另外在第二个虚拟机上设置一个静态IP也没有帮助。 毕竟看起来只有一个虚拟机作为虚拟networking的客户端,而另一个虚拟机根本不连接到虚拟networking。 但是检查主机上的连接,我可以看到testingVM的两个qemu进程都有TCP隧道向网关的主机进程打开。 我真的无能为力 什么可能是错误的,或者我可以尝试接下来的任何build议? 编辑:有趣的是看看主机系统上的实际连接: qemu-syst 2900 libvirt-qemu 12u IPv4 22574 0t0 TCP *:5558 […]

libvirt cpu-mode ='host-model'混淆了映射cpu模型?

我有物理主机,CPU型号为“Intel(R)Xeon(R)CPU E5-2670 v3 @ 2.30GHz”,在cpuinfo中有'avx2'标志。 主机configuration了kvm / qemupipe理程序和libvirt。 我将cpu模式设置为域XML中的主机模式。 Guest vm可以在主机上创build。 当我查看guest虚拟机的cpu模型时,显示为“SandyBridge”,在cpuinfo中也有“avx2”标志。 但是“SandyBridge”不支持“avx2”标志,但“Haswell”模式确实支持。 这只是由于主机模式,libvirtfind最接近的cpu型号为“Intel(R)Xeon(R)CPU E5-2670 v3 @ 2.30GHz”作为“SandyBridge”,但它应该显示“Haswell”。 这是否意味着libvirt有一个错误,或者在这种情况下它是有效的表示? 我正在使用libvirt版本1.2.2