我注意到在一台使用Debian的机器上出现了一个奇怪的行为,我无法在运行Ubuntu的另一台机器上重现这一行为 当以普通用户列出virshnetworking时,它显示一个空列表: 〜$ virsh net-list –all 名称状态自动启动持续 ————————————————– ——– 当用sudo运行相同的命令时,它显示默认连接: 〜$ sudo virsh net-list –all 名称状态自动启动持续 ————————————————– ——– 默认激活否是是 文件本身的权限似乎设置正确: 〜$ ls -l / etc / libvirt / qemu /networking 共8个 drwxr-xr-x 2 root root 4096 Jul 1 18:19 autostart -rw-r – r– 1 root root 228 Jul 1 18:19 default.xml 用户属于kvm和libvirtd组。 发生什么事? 为什么我不能把networking列为普通用户?
昨天我在主机系统有一个驱动器故障(raid-0),不得不重新安装操作系统。 幸运的是,vps映像位于另一个raidarrays(raid-5)上,而.img文件仍然可用。 然而,当我尝试运行其中一个图像时,virsh抱怨该域不存在,这是从来没有通过virsh-install方式注册的。 所以我的问题是, 是否有可能使用virsh注册img文件,所以我可以像在硬盘驱动器故障之前那样启动vps?
我如何通过ssh修改虚拟机的xml定义? 我知道我可以通过login到主机并使用以下方式交互地执行此操作: virsh edit <domain name> 但是我想使用在远程主机上运行的脚本自动执行此xml修改,然后通过KVM盒上的ssh执行命令。 从我所观察到的是,virsh编辑打开默认的编辑器(在我的情况下)为我编辑文件。 我想以某种方式用另一个文本文件中包含的vm定义覆盖此文件(由virsh编辑命令交互式打开)。 我发现了如何使用以下方式将文本传送到vi的线程: cat <file name> | vi – 但是,这不会在我的情况下工作, virsh打开默认的编辑器,我无法控制的参数。 (或者至less我不知道如何修改这些参数) 默认编辑器在不同的KVM盒子上可能不同。 预先感谢帮助。 编辑:只是想澄清,我没有一个选项来closures虚拟机,并重新定义它。 我想修改一个正在运行的域名。
这是使用KVM的Ubuntu 12.04LTS。 系统有一个显卡,可以看到pipe理程序的内核,如下所示: # virsh nodedev-dumpxml pci_0000_21_00_0 <device> <name>pci_0000_21_00_0</name> <parent>pci_0000_20_02_0</parent> <driver> <name>nvidia</name> </driver> <capability type='pci'> <domain>0</domain> <bus>33</bus> <slot>0</slot> <function>0</function> <product id='0x0a65'>GT218 [GeForce 210]</product> <vendor id='0x10de'>NVIDIA Corporation</vendor> <capability type='virt_functions'> </capability> </capability> </device> 还有一个PCIfunction#1,它是我省略了dumpxml的卡的audio部分。 在我的域XML中,我有以下几点: <hostdev mode='subsystem' type='pci' managed='yes'> <source> <address domain='0x0000' bus='0x21' slot='0x00' function='0x0'/> </source> <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/> </hostdev> <hostdev mode='subsystem' type='pci' […]
我运行的是基于KVM的客户系统,运行相同的操作系统的Debian Wheezy Beta 4。 我正在使用LibVirt来pipe理虚拟化。 我想要做的是通过Virtio将基于LVM的块设备连接到正在运行的访客系统。 如果我通过virsh edit [MACHINE]来configuration它,它将如下所示: <disk type='block' device='disk'> <driver name='qemu' type='raw' cache='none' io='native'/> <source dev='/dev/volume_group/logical_volume'/> <target dev='vdb' bus='virtio'/> </disk> 我试图找出如何用virsh attach-disk来做到这一点。 到目前为止,我认为以下几点: virsh attach-disk guest /dev/volume_group/logical_volume vdb –driver qemu –type raw –cache none –persistent 我怎样才能指定目标的bus和司机的io领域? 我真的需要这些选项完全符合XML中的规定。
我需要通过用户访问控制他们如何使用虚拟机以及他们可以通过基于KVM的虚拟机pipe理程序上的Virsh来执行哪些操作。 到目前为止,我从http://wiki.libvirt.org了解到,我必须在/etc/libvirt/libvirtd.conf为unix套接字启用unix套接字权限,并创build一个名为libvirtd的新组,并将用户添加到。 所以这一切都很好,但是,与这些用户,我不能看到任何虚拟机,当我这样做 virsh list –all libvirt.ogr的文档也提到了使用polkit和其他技术。 如果有人能够帮助我使用简单的unix socket permission方法或polikit或sudoer方法或任何其他方法的任何工作示例。 我想有一个用户权限的方式,从VIRSH用户只能执行有限的任务,如无法做virsh start但不能virsh destroy 。
操作系统:Debian 7.3和7.6 问题: 每次用virsh操作(创build,迁移甚至列出)虚拟机的尝试都会导致这个“无法获得主机供电能力”警告。 我pipe理一个独立的Xen虚拟主机,产生相同的警告,虽然它可能是烦人的,我发现我可以简单地忽略它。 不幸的是,忽略集成了ocf.heartbeat.VirtualDomain资源处理程序的集群上的警告似乎不是一个选项。 基本上,Pacemaker使用virsh创build和pipe理虚拟机。 现在我发现,我不能再添加任何新的资源(虚拟机)。 我相信这个问题是libvirt(0.9.12.3)和这个“无法find…”的警告。 Google / Debian说libvirt-bin中有一个错误,并build议使用早期版本的软件。 问题: 有没有人在Xen / Pacemaker集群中遇到类似的限制(无法添加资源)? 如果是这样,原因是什么? 这个问题是如何处理的? 我相信我可以通过将ocf.heartbeat.VirtualDomain替换为ocf.heartbeat.Xen来避免此问题。 有没有人有类似的经历? 我很感激可能提供的任何提示,经验或build议。
有没有一种方法来创build一个从基本图像virsh域? 我环顾四周,发现可以使用virt-install,但是我更喜欢它,如果这完全是通过virsh完成的,因为我使用libvirt语言绑定只是为了使事情更容易。 我想到了这样做的一种方式,这将涉及到将XMLconfiguration转储到临时文件中,编辑一些设置,如名称,内存,vcpus和可能的磁盘大小。 然后使用该XML文件来创build新的图像,这是否是一个可行的方法呢?
有没有办法来硬编码的虚拟机kvm客人的域名ID? 我尝试通过添加一个id属性到XMLconfiguration virsh edit name 而且我也尝试编辑直接存储在/ etc / libvirt / qemu中的XML 基本上,我希望我的所有虚拟机的域名ids永远保持不变,永不改变。 当新的虚拟机被添加时,它们应该增加id。 有没有办法做到这一点,或者是否需要通过虚拟机的唯一名称来与虚拟机连接的外部程序?
试图解决我通过让我们的Nagios安装使用KVM插件check_kvmfind的问题。 我认为我的问题归结为与nagios / nrpe用户的权限问题。 安装nrpe和插件后,我没有任何其他标准插件如check_disk或check_load等问题。基本上,kvm插件使用virsh来检查状态,所以我启用loginnrpe(也尝试过nagios用户,但它出现服务在nrpe用户下运行)并尝试以下操作: [root@vhost3 ~]# su nrpe sh-4.2$ virsh list –all error: failed to connect to the hypervisor error: no valid connection error: Cannot create user runtime directory '/run/user/0/libvirt': Permission denied 但是当然这个命令没有问题,当然在本地尝试的时候插件会执行得很好: [root@vhost3 ~]# virsh list –all Id Name State —————————————————- 2 www running [root@vhost3 ~]# /usr/lib64/nagios/plugins/check_kvm hosts:1 OK:1 WARN:0 CRIT:0 – www:running […]