问题标签 [virsh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
730 浏览

qemu - virt-aa-helper 不在 AppArmor 生成的规则中添加存储池的路径

我在新的 Ubuntu 20.04 主机 (libvirtd (libvirt) 6.0.0) 上有一个新的 VM,由于 AppArmor 拒绝对 VM 磁盘的读取访问而无法启动。磁盘定义如下:

在 VM 启动期间,它失败并显示以下消息:

权限是正确的,我已经通过禁用 AppArmor 进行了验证,并且内核日志中还打印了以下内容:

查看virt-aa-helperin生成的配置文件/etc/apparmor.d/libvirt/(在 VM 启动时),我可以看到以下内容:

由于某种原因,磁盘的路径丢失,而 ISO 已正确添加。我可以在以下位置看到默认池的路径/etc/apparmor.d/usr.lib.libvirt.virt-aa-helper

我怀疑卷中的磁盘文件应该有一个条目。为什么不virt-aa-helper加呢?

0 投票
1 回答
427 浏览

performance - 通过 virsh (QEMU/KVM) 进行实时快照后客户机性能下降

我遇到了一个奇怪的问题,我无法在其他地方找到解决方案。也许你可以帮助我。

我有一个运行 Ubuntu 20 LTS 的系统,它是六个来宾(四个 Ubuntu 20 LTS 和两个 Windows Server 2019)的主机,它们运行得非常快,直到我拍摄了实时快照。我在使用 QCOW2 文件时在 QEMU/KVM 上运行来宾,并且我正在使用 virsh 来管理这些虚拟系统。

我使用以下命令拍摄来宾的实时快照(没有 RAM 状态):

这几乎可以立即对特定来宾的所有虚拟磁盘进行快照,并创建新的增量文件,将差异写入其中。然后,我为所有客人和所有磁盘提供以下结构:

复制快照后,我使用以下命令将它们提交到它们的基本文件:

之后,我删除了快照,所有这些工作都没有产生任何错误。然而,在拍摄快照之后,虽然所有的来宾仍在运行,没有任何错误,但每个虚拟机在 shell 中的任何命令都非常慢。此外,我可以通过主机上的顶部看到,每个来宾的 RAM 使用量已大大减少(例如,Windows Server 2019 的 GUI 从 25 GB 减少到 2.5 GB)。

似乎所有缓存的数据都从 RAM 中删除了,这当然会大大降低性能。但是,拍摄快照(没有 --quiesce 参数)不应该导致这种行为,或者?。重新启动所有来宾后,一切都恢复得很快(而快照结构没有任何改变)。

您知道哪种配置或情况会导致这种行为吗?

先感谢您!

- - - 编辑 - - -

似乎实际的问题是在拍摄快照后通过 scp/rsync 复制文件,因为其中一个程序(rsync?)耗尽了主机上的所有内存,导致将客人的部分 RAM 交换到磁盘.

即使在复制过程完成后,复制的数据似乎仍保留在主机缓存中,并且客户机正在进一步使用主机的部分交换空间。

这当然解释了客人的糟糕表现。它可以通过使用以下命令清除页面缓存和交换空间来修复:

但请注意,在暂停客户机操作的情况下,清除交换空间可能需要几个小时。要么应该在晚上不使用它们时完成,要么应该从根本上解决问题,即在 rsync/scp 部分。

0 投票
1 回答
973 浏览

qemu - virsh 的问题 / 无法连接到 qemu

我正在尝试设置 KVM,但是在运行时$ sudo virsh net-define br10.xml我得到了这个:

error: failed to connect to the hypervisor

error: Failed to connect socket to '/var/run/libvirt/libvirt-sock': No such file or directory

当跳转到 virt-manager GUI 时,会出现这个对话框Unable to connect to libvirt qemu:///system.

我检查了我是否同时在 kvm 和 libvirt 组中,这似乎没问题。我还检查了运行时是否创建了 libvrt-sock 文件,$ sudo systemctl start libvirtd.service但什么也没有。

0 投票
2 回答
134 浏览

qemu - QEMU-KVM 自动设置 filterref 参数

如果这是一个简单的问题,我很抱歉,但我刚刚开始使用 qemu,找不到简单的方法来做到这一点。

我正在尝试自动化我的 KVM 部署。我目前遇到的问题是我找不到自动为 filterref 设置参数的方法。

这就是我的virt-install网络选项当前的样子,并且目前运行良好。

但是我找不到任何东西来设置一个参数来定义它应该被锁定到的 IP 地址。这是我在 xml 中想要的结果:

我正在寻找一种自动添加该参数的方法,最好是直接使用virt-install或在某种程度上我可以运行脚本,输入我想要设置的几个变量。此时,VM 已经在运行并等待设置完成,并加载了过滤器。基本上我希望在第一次启动之前加载参数,这样任何人都不会试图弄乱 ip 地址。

这可能吗?

这是我现在刚刚复制到控制台的整个“脚本”。

virsh 版本输出:

我在 CentOS Linux 版本 8.3.2011 上。

0 投票
1 回答
306 浏览

kvm - virsh 功能不包括 qemu 或 kvm

我是 Libvirt 和 Qemu 的新手。我已经在 centos 8 上安装了 Libvirt 7.1.0 和 qemu-kvm 4.2.0。我根据 https://libvirt.org/compiling.html的说明配置和构建了 libvirt 。

但是当我尝试使用 virsh 创建虚拟机时,它显示以下错误:

# virsh create /home/abc.xml

error: Failed to create domain from /home/abc.xml error: invalid argument: could not find capabilities for arch=x86_64 domaintype=kvm

当我检查管理程序功能时,它不会在来宾域类型中显示 qemu 或 kvm。

#virsh capabilities

0 投票
1 回答
63 浏览

ceph - CEPH 池 img - virsh live attach

我想将 Ceph rbd 块映像附加到正在运行的 VM。我可以通过编辑 vm xml 来附加 img1,所以一切都在这里工作。但我想让它实时连接。

从主机 lvl 可以看到池和图像

我试图多个驱动程序/子驱动程序/类型 - 但没有运气

如何将 CEPH rbd 卷附加到正在运行的 VM?

0 投票
1 回答
120 浏览

libvirt - libvirt:: 通过命令更改引导顺序

是否有任何 libvirt 命令可用于更改 VM 的引导顺序?我知道编辑 xml 文件可以完成此操作,但我需要一个命令来执行此操作,因为我必须在脚本中编写命令。

谢谢,狮子座

0 投票
1 回答
173 浏览

python - 在 Python 中退出控制台连接

我正在编写一些 python 代码来登录到包含虚拟应用程序 (VTA) 的白盒设备。将安装两个不同的 VTA,代码将登录到物理设备,然后使用 virsh 控制台(VTA 的名称)登录到 VTA。

我遇到的问题是退出一个 VTA,然后 virsh 控制台进入另一个。exit 命令只是让我再次进入登录提示,但不会退出控制台连接。

为此,我必须发送一个“control + ]”才能跳出控制台。我一直在网上搜索以尝试找到解决方案,但我发现的唯一选择是发送并“退出”,然后是“\x1b”。但是,这实际上并没有跳出控制台窗口。相反,它结束了我不想要的会话。

有没有办法在 python 中发送“Control + ]”?

以下是一些显示步骤的代码:

当这个函数完成时,代码的第二部分调用一个类似的函数。但是它失败了,因为之前的函数没有断开控制台连接。当代码仍在前一个 VTA 中时,它会尝试为下一个函数发送命令。

这是一个显示它在做什么的输出:

上面的输出表明,当 exit 命令运行并后跟 \x1b 时,它没有正确退出,而是尝试从下一部分发送“virsh list”命令。

0 投票
1 回答
120 浏览

virtual-machine - virsh 控制台到 KVM

通过 virsh 控制台登录到 KVM 时。主机名在 bash 提示符中未正确显示。我们使用 63 个字符的主机名。

bash_prompt

KVM 访客操作系统:Red Hat Enterprise Linux Server 7.9 版(Maipo) 主机操作系统:Red Hat Enterprise Linux Server 7.6 版(Maipo)

使用 ssh 或 virt-manager 登录时没有看到上述问题

我使用的主机名是 Nikiabcdefdhijklmnopqrst898hd-uvwxyz-jkkdjkjdsdadjkjkkjdkjsdj90

0 投票
0 回答
70 浏览

openstack - Openstack - 将模拟器固定到多个 CPU

我有一个 Openstack 环境。

我想部署一个具有 4 个 VCPU 的实例,这样每个 VCPU 在主机中将有 2 个相应的 CPU:一个负责 VCPU 的负载,另一个负责模拟。

因此,该主机总共将为该实例固定 8 个 CPU。

我的实例正在使用具有以下属性的风味:

  • hw:cpu_policy=专用

  • hw:cpu_thread_policy=隔离

  • hw:emulator_threads_policy=isolate(为了隔离模拟器使用的CPU)

  • 硬件:numa_nodes=1

  • 聚合实例额外规格:固定=真

我的问题:

根据实例 XML 文件,主机中仅固定了 5 个 CPU:

是否可以在 Openstack 中添加任何配置/属性以将“emulatorpin”设置为 4 个不同的 CPU?

我不喜欢使用“virsh”命令(“virsh edit”或“virsh emulatorpin”),因为它们似乎无法正常工作。(即使重启实例后手动更改 XML 文件也不会生效)

任何帮助将不胜感激!