标签: kvm

VGA 直通 - 在所有 AMD 硬件上使用 KVM 和 libvirt 的代码 43

我在 FX-8320 和华擎 970 Extreme3​​ R2.0 主板上设置了一个带有 R9-270 和 ATI Rage(PCI 显卡,不使用 radeon 驱动程序)的系统,目的是运行 Debian Wheezy主机和 Windows 8.1 Pro 作为来宾,R9 传递到来宾系统。我已经按照 Debian Wiki 中的指南来执行此操作(https://wiki.debian.org/VGAPassthrough)并已完成,但是当我使用卡及其音频设备启动来宾时,我得到代码 43在客人和卡不起作用。我还测试过将它传递给 Ubuntu 来宾,但它也不起作用。

显然,获得代码 43 错误是相当普遍的,但这些错误主要是与 Nvidia GPU 相关的,而我见过的唯一一个 AMD 错误仅在该用户离开 AMD CPU 时出现。该指南没有对 Code 43 故障排除的任何解释,大概是因为作者没有得到它。我在 KVM 上运行 VM,并使用 virt-manager 的添加硬件对话框传递卡及其音频设备。已知此软件配置有效,因为这与上述指南的作者使用的设置相同。

似乎对这个问题的支持(可以理解)很少,因为它不常用。

编辑:可能应该注意,我已将主机上的 radeon 驱动程序列入黑名单,而且由于它不在指南中,而且我无法找到有关其工作原理的很好解释,因此我没有使用 PCI 存根驱动程序。

kvm qemu libvirt

5
推荐指数
1
解决办法
3265
查看次数

Proxmox 主节点崩溃

我无意中发现了一个 Proxmox 错误。我运行一个由 4 个节点组成的个人集群(一个用于傻笑和噱头的技术实验室)。每个节点都有一个 Dell Perc 5i 和 4 个 RAID 10 硬盘。标准 Proxmox 安装使用整个逻辑驱动器并放置 2 个分区,系统驱动器和本地驱动器 ( /var/lib/vz)。

我最近发现运行 QCOW2 允许我拍摄快照,而运行 VMDK 则不能。我还了解到,除非虚拟机位于网络存储上,否则我无法迁移它们。

没问题,首先我在所有节点上安装 NFS 服务器,然后在/var/lib/vz文件系统 ( /var/lib/vz/nfs)上创建并导出 NFS 文件夹,然后将其添加为网络存储。

接下来我开始将我的驱动器迁移到本地机器上的 NFS 文件夹,并使用 Web 界面驱动器移动命令将图像转换为 QCOW2。这是有效的,但这里是我如何始终使 Proxmox 集群服务崩溃:

  1. 如果我尝试在主节点上一次复制多个 VM 驱动器。
  2. 如果我尝试在主节点上单独复制一个非常大(250Gb)的 VM。

主节点似乎只是向南。Web 界面显示一切都已关闭。复制的进度停止了。在 shell 中运行的 OS 同步命令永不返回,关闭请求挂起,init 0 命令挂起。最终,我必须重启节点上的电源。

所以,一些问题:

  1. 是因为我要复制到 NFS 吗?我正在使用沼泽标准 nfs4 nfs-kernel-server。
  2. 是因为我让承载主仲裁的驱动器太忙了吗?毕竟,RAID 10 设置正在将这些大文件从本地读取和写入同一台机器上的 nfs 共享 - 我们保持 TCP 堆栈和驱动器本身非常繁忙。
  3. 我在这里缺少一些最佳实践吗?- 我知道我永远不会把它投入生产 - 请记住,这是一个运行廉价服务器实验室的自制集群。

任何帮助,将不胜感激。

raid kvm nfs

5
推荐指数
1
解决办法
2958
查看次数

Libvirt Qemu VM 转储/保存文件的结构是什么?

我需要对 Qemu-KVM 虚拟机物理内存做一些探索(特别是我需要检查物理内存交叉的事实)。为此,我尝试使用virsh dumporvirsh save命令保存 VM 的状态。

转储的文件具有二进制结构,除了这个非官方(?)工具之外,我找不到对此的描述。据说那里virsh dump创建了QEMU-savevm 格式的文件,同时virsh save给出了一个 Libvirt-QEMU-save 格式的文件。但是,我没有设法在 Internet 上找到这些术语。

如果有人能澄清这种情况,我会很高兴,也许会提供一个链接到放错地方的文件。谢谢,

kvm memory qemu dump

5
推荐指数
0
解决办法
1447
查看次数

KVM 和交换空间

假设以下场景:具有 2 GiB 的主机使用 KVM 运行几个来宾。每个来宾通常不需要太多内存,每个来宾获得 256 MiB 并运行主要是指手画脚的服务。但是,偶尔客人需要更多的内存。现在,每个来宾只有很少的 RAM,但有自己的交换空间。我注意到使用了一小部分交换。我从来没有遇到过这种配置问题,但只是出于好奇:

最优的掉期分配策略是什么?

  1. 从他们各自的磁盘中为每个来宾分配自己的交换空间,并且只从主机分配给来宾很少的内存。(这就是我现在正在做的。)
  2. 为主机分配更多的交换空间,而没有给来宾分配,并为来宾分配更多内存。

内存膨胀是否有助于提高内存性能?

kvm swap virtualization

5
推荐指数
1
解决办法
1万
查看次数

持久网络接口命名和 kvm

我想知道为什么我的网络接口仍然eth0在我的 kvm 来宾中命名。udevadm 只是输出

# udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null
ID_NET_NAME_MAC=enxc2184ae7ab3f
Run Code Online (Sandbox Code Playgroud)

我希望他们被称为像enpXsY. 目录/etc/udev/rules.d为空。Linux 品牌是 Gentoo,3.15.5-hardened-r2。虚拟化是KVM with qemu 2.0,网络接口是virtio。在主机和其他机器上,设置与 udev 相同,但接口按预期以其新名称调用。

为什么会这样?启用新标识符需要什么?

我的第一个想法是新标识符指的是 PCI 设备,而 virtio 设备不是 PCI 设备。然而,lspci事实证明我错了:

00:03.0 Ethernet controller: Red Hat, Inc Virtio network device
    Subsystem: Red Hat, Inc Device 0001
    Flags: bus master, fast devsel, latency 0, IRQ 11
    I/O ports at c040 [size=32]
    Memory at febd1000 (32-bit, non-prefetchable) [size=4K]
    Expansion ROM at feb80000 [disabled] [size=256K]
    Capabilities: [40] …
Run Code Online (Sandbox Code Playgroud)

kvm udev qemu network-interface

5
推荐指数
0
解决办法
2087
查看次数

如何以非 root 用户身份 100% 创建 KVM 来宾?

在拥有许多用户的 debian 主机中,我希望允许不同的用户创建自己的 VM,彼此完全独立。

我在指南中看到的最相关(非根)方式是连接到qemu:///systemhypervisor 。这是在所有用户之间共享的系统管理程序。更重要的是,磁盘映像文件将由 root(或 kvm)用户拥有,这意味着磁盘映像文件位置的整个文件系统路径必须是全局可读的。

由于上述和其他原因,我想以非 root 用户的身份完全和完全地运行我的虚拟机。那是作为qemu:///session. 所以主要问题是我该怎么做?有我可以使用的指南吗?

我尝试创建新的虚拟网桥 iface,但即使我是 netdev 组的成员,我在执行以下操作时也会收到“权限被拒绝”错误:

 virsh -c qemu:///session net-create /etc/libvirt/qemu/networks/mynet.xml
Run Code Online (Sandbox Code Playgroud)

请注意, mynet.xml 就像默认网络,但位于不同的子网中。

networking kvm not-root-user virsh

5
推荐指数
1
解决办法
2万
查看次数

为来宾启用大页面时出现 libvirt 错误

我正在尝试通过virt-manager(和virsh命令行)使用 libvirt 和 KVM 设置具有大页面支持的 VM,并且在域 XML 中启用该选项时出现错误。不知道问题出在哪里。

我正在使用升级到 14.10 的 Ubuntu 14.04 和以下软件包版本:

  • libvirt-bin 1.2.8-0ubuntu11
  • qemu-kvm 2.1+dfsg-4ubuntu6

规格

我已经按照本指南配置了大页面。以下是有关当前配置的一些信息:

$ hugeadm --explain
Total System Memory: 15808 MB

Mount Point          Options
/dev/hugepages       rw,relatime,mode=1770,gid=126

Huge page pools:
      Size  Minimum  Current  Maximum  Default
   2097152     2176     2176     2176        *

Huge page sizes with configured pools:
2097152

$ getent group kvm
kvm:x:126:chaicko

$ cat /proc/meminfo | grep Huge
AnonHugePages:    591872 kB
HugePages_Total:    2176
HugePages_Free:     2176
HugePages_Rsvd:        0
HugePages_Surp: …
Run Code Online (Sandbox Code Playgroud)

kvm

5
推荐指数
1
解决办法
2万
查看次数

virsh、virt-install 和 virt-manager 之间有什么区别?

我了解、 和 的所有内容virshvirt-install并且virt-manager可以管理虚拟机。然而,这三者有什么区别呢?

kvm virtualization libvirt

5
推荐指数
1
解决办法
6120
查看次数

在 Linux 主机和 Windows 来宾之间共享文件

我正在尝试在 Linux 主机和 Windows 来宾之间共享文件,但我发现了以下链接:

使用 virt-manager 在 Linux 主机和 Windows 来宾之间共享文件?

正如第三个答案中所建议的,我按照以下步骤操作:

  1. 使用以下命令查找文件系统的偏移量(因为它是磁盘)fdisk

    $ fdisk -lu Win.img
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用命令挂载镜像:

    mount Win.img /mntpoint -o ro,loop,offset=32256
    
    Run Code Online (Sandbox Code Playgroud)

在这里,这似乎是一种很有前途的方法。我能够在 Linux 主机上看到 Windows 来宾 VM 的文件。但是,如果我对来宾进行更改,除非我再次重新安装映像,否则我无法在主机端看到任何更改。

无论如何要刷新该内存,以便我也可以看到主机端的更改?

linux kvm file-sharing

5
推荐指数
1
解决办法
1万
查看次数

为什么“偷”时间会逐渐增加?

我正在轻负载主机上跟踪 VM 上的 CPU 使用情况。所有虚拟机上的一切似乎都正常运行,但 collectd 报告“窃取”时间逐渐增加:

在此处输入图片说明

报告的实际抢断时间总是 100% 或 0%,但随着时间的推移,100% 的峰值越来越接近。

VM 和主机都运行 vanilla Debian 8。当两者都在不同的物理主机上运行 Debian 7 时,我们没有注意到相同的效果。

这是 collectd 的怪癖还是 KVM 真的在慢慢地从 VM 中夺走 CPU 资源?

cpu kvm debian

5
推荐指数
1
解决办法
937
查看次数