标签: linux-kvm

我是否需要在 Windows 10 来宾中同时安装 QEMU 代理和 SPICE 代理?

我在 Ubuntu 16.04.3 LTS 笔记本电脑上设置了 Windows 10 VM。总体而言,体验很好——甚至可以为客人配置多个显示器。

我首先安装了在这里找到的 QEMU 客户代理:

这让我走得很远,但鼠标性能之类的东西很糟糕。

最终遇到了这个很棒的包,它使一切都变得更好:

有了这个代理,事情要好得多,包括动态屏幕大小调整、来宾/主机之间的剪贴板等。

就目前而言,我已经安装了两者。但是,看起来“spice-guest-tools”安装的驱动程序与我使用 QEMU 来宾 ISO 手动安装的大部分驱动程序相同。

删除 QEMU 访客代理是否安全?如果我这样做,我会失去通过 virsh 向 VM 发送命令的能力吗?保持两者完好无损有任何明显的问题(现在似乎一切正常)?

查看手册似乎没有提供大量指导:

充其量,它是一厢情愿的,这取决于您安装其他驱动程序的方式。

“spice-guest-tools”安装是否可以独立安装在 Windows 客户机上,或者我是否需要两个代理才能获得完整功能?

virtualization qemu linux-kvm

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

我在哪里可以在 Ubuntu 中配置服务启动选项?

我不习惯使用 Ubuntu 或 Debian 作为服务器。我更习惯于 Red Hat/Fedora 方式,甚至是 Gentoo(哎呀)。

在 Red Hat 安装下,您通常可以使用由服务命名的 /etc/sysconfig 中的配置文件来配置大多数从 init 启动的服务。在 Ubuntu 下有没有等价的东西?

具体来说,就命令行选项而言,我试图控制 libvirtd 和 kvm 进程的启动方式。我需要在某处添加 --listen 选项。

linux init ubuntu linux-kvm

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

KVM 映像无法以 virsh 启动,权限被拒绝

我的主机操作系统是 Ubuntu Server 11.04(整洁)

按照 Ubuntu 的帮助详细说明之后,我使用创建了一个 KVM 映像

sudo ubuntu-vm-builder kvm hardy --libvirt qemu:///system
Run Code Online (Sandbox Code Playgroud)

图像文件被创建为

-rw-r--r-- 1 root root 438M 2011-06-17 14:39 ubuntu-kvm/tmpK9hbU5.qcow2
Run Code Online (Sandbox Code Playgroud)

我可以通过 sudo virsh -c qemu:///system "list --all" 用 virsh 列出它

Id   Name                 State
----------------------------------
  - ubuntu               shut off  
Run Code Online (Sandbox Code Playgroud)

Buth 当我打电话时

sudo virsh -c qemu:///system "start ubuntu"
Run Code Online (Sandbox Code Playgroud)

错误被抛出:

error: Failed to start domain ubuntu
error: internal error process exited while connecting to monitor: kvm: -drive file=/home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2,if=none,id=drive-ide0-0-0,format=qcow2: could not open disk image /home/myuser/vmopt/ubuntu-kvm/tmpK9hbU5.qcow2: Permission denied
Run Code Online (Sandbox Code Playgroud)

用户“myuser”已添加到组 …

ubuntu linux-kvm

12
推荐指数
2
解决办法
4万
查看次数

Virtualbox、VMware、KVM 或其他用于 Ubuntu 虚拟化的工具?

这些中的任何一个比其他的更好吗?家庭使用的实际条款有何不同?

virtualbox ubuntu linux-kvm

11
推荐指数
2
解决办法
1917
查看次数

来宾和主机无法使用 linux-kvm 和 macvtap 看到对方

我正在将 kvm 虚拟机从旧主机(硬件和操作系统)迁移到新主机。

对于网络,virt-manager 向我提出了一个新选项:macvtap。这看起来是在 eth0 上设置网桥的一个不错的选择。

所以现在来宾启动就好了,从我的本地网络 DHCP 服务器获取 IP,可以访问互联网。来宾也看到本地网络上的其他机器,我可以ssh它们等。

问题是主人和客人看不到对方。我无法使用来宾 IP 从主机访问来宾,也无法使用主机 IP 从来宾访问主机。没有ping,ssh,http,什么都没有。

这是route -n来自主机的命令:

$ /sbin/route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0
Run Code Online (Sandbox Code Playgroud)

(来自客人的相同输出)。

我可能会设置一个新的 tun/tap 接口,专门用于主机和来宾之间的通信,但它看起来有点矫枉过正。有没有办法让主人和客人交流?

networking linux virtualization linux-kvm

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

在 Debian 上使用 Linux-KVM 实现 PCI-Passthrough

我正在尝试使用 PCI-Passthrough 将旧显卡 (Radeon 4770) 连接到虚拟机。我正在使用 Linux-KVM 在 Debian Linux (Wheezy, 3.2.0-4-amd64) 主机上运行我的虚拟机。

澄清一下,我不确定使用 Linux KVM 实现 PCI-Passthrough 的正确“路径”是什么。在这个阶段,我怀疑正确的操作是CONFIG_DMARCONFIG_DMAR_DEFAULT_ON和添加CONFIG_PCI_STUB到内核​​源代码的“总线选项(PCI 等)”部分并重新编译。

但我不确定这是否是重新编译前必要添加的详尽清单。或者如果需要重新编译内核——也许有更简单的方法?

在我参考的指南中,只有linux-kvm.org明确提到编译是必要的。Linux-KVM 已安装并用作管理程序。

研究

在这一点上,我认为我的问题与我的内核有关。我的主要资源是linux-kvm.org ( http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM ) 上的指南。但是,我发现其他资源表明(似乎)特定于分发的方法略有不同:

Fedora-- https://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/chap-Virtualization-PCI_passthrough.html

SUSE--"openSUSE: Virtualization with KVM"(由于低相关性和 2 个链接限制,链接被省略)

Fedora 指南一直有效,直到引用setsebool似乎是 RedHat 特定的。SUSE 指南表明 SUSE 不支持显卡分配,但是我也引用它,因为它表明我应该CONFIG_DMAR_DEFAULT_ON在 /boot/config-`uname -r` 中找到一个字符串。该linux-kvm.org网站还引用CONFIG_DMAR_DEFAULT_ON,所以这似乎是一个共同的和必要的组成部分。

注意:我在 Fedora 或 Debian 的指南中没有发现对显卡的限制。引用的 SUSE 文档的日期为 2006-2013。

我 …

debian virtualization linux-kvm vt-d

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

通过 iptables 镜像端口

我有一个专用的 Linux (Debian 7.5) 根服务器,并设置了许多来宾服务器。来宾是 KVM 实例,并通过桥接工具(NAT、内部 IP、使用主机作为网关)获得网络访问权限。

例如,一个 KVM 是我的 WebServer 来宾,它可以通过主机 IP 以这种方式访问​​:

    iptables -t nat -I PREROUTING -p tcp -d 148.251.Y.Z 
--dport 80 -j DNAT --to-destination  192.168.100.X:80 
Run Code Online (Sandbox Code Playgroud)

我对其他服务也做同样的事情,让它们保持独立、NATed 和隔离。

但是一个来宾应该是网络监视器,并且应该执行网络流量检查(如 IDS)。通常,在非虚拟设置中,我会使用 VACL 或 SPAN 端口来镜像流量。当然,在这台主机中,我不能这样做(很容易,因为我不想使用复杂的虚拟交换方法)。

  1. 我可以使用 iptables 获取端口镜像,并将所有入口和出口流量重定向到一个 KVM 来宾吗?所有来宾都有一个专用界面,例如vnet1.
  2. 是否可以根据协议(如 VACL 转发规则,仅抓取 HTTP)选择性地转发流量?
  3. 当我需要保留vnet1作为管理接口(带有 IP)时,来宾是否需要特定的接口设置?

我很高兴能指出正确的方向:

iptables         1.4.14-3.1
linux            3.2.55
bridge-utils     1.5-6
Run Code Online (Sandbox Code Playgroud)

非常感谢 :)

networking iptables linux-kvm

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

vagrant 无法使用 libvirt 创建框

我正在尝试使用以下 Vagrantfile 设置一个带有 vagrant 和 libvirt 的框

Vagrant.configure("2") do |config|
  config.vm.define :test_vm do |test_vm|
    test_vm.vm.box = "test"
    test_vm.vm.network :private_network, :ip => '10.20.30.40'
  end

  config.vm.provider :libvirt do |libvirt|
    libvirt.driver = "qemu"
    libvirt.host = "localhost"
    libvirt.connect_via_ssh = false
    libvirt.username = "root"
    libvirt.storage_pool_name = "data"
  end
end
Run Code Online (Sandbox Code Playgroud)

在 RHEL 6.4 上,我收到以下错误

Error while connecting to libvirt: Error making a connection to libvirt URI qemu://localhost/system?no_verify=1:
Call to virConnectOpen failed: Unable to import client certificate /etc/pki/CA/cacert.pem
Run Code Online (Sandbox Code Playgroud)

我试图像这里描述的那样设置证书http://libvirt.org/remote.html#Remote_TLS_CA但这并没有改变任何东西。

如果我尝试通过 ssh 连接 vagrant 能够缓慢上传盒子,但之后我会遇到下一次失败

Call …
Run Code Online (Sandbox Code Playgroud)

linux qemu linux-kvm vagrant

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

如何将 KVM 虚拟机原始映像启动到 VirtualBox?

我收到了一个服务器的 .img 文件,它是在 KVM 环境中运行的虚拟机。虚拟机与 Ubuntu 一起安装。

我现在想使用这个 .img 文件并在 VirtualBox 中“模拟”服务器。所以我使用 qemu-img 从 raw 到 vdi 将 .img 文件转换为 .vdi 文件,但是 VirtualBox 实例启动并简单说明:

FATAL: No bootable medium found! System halted.
Run Code Online (Sandbox Code Playgroud)

我不知道是否必须在 VirtualBox 中安装 KVM,然后将其配置为在我的 .img 文件中运行 VM,或者我是否能够将图像从 KVM 转换为 VDI,然后直接在 VirtualBox 中运行服务器.

我已经尝试过使用 qemu 将 .img 原始文件转换为 .vdi,但这产生了上述错误。

我还阅读了有关此服务器故障问题的答案,但此问题略有不同,因为它讨论的是将 Windows VM 从 KVM 移至 VirtualBox。

我还尝试使用 qemu-img linux 包从 qcow2 转换为 vdi,但是我不断收到以下错误消息:

#> qemu-img convert -f qcow2 original.img -O vdi converted.vdi
qemu-img: Could not open './duketest.img': Invalid …
Run Code Online (Sandbox Code Playgroud)

linux mount virtualbox qemu linux-kvm

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

kvm、virt-manager、qemu和libvirt有什么区别和关系?

我调查了这个话题,这是我的结论(但我仍然有问题,如果我的结论有任何错误,请纠正我):

虚拟机:

VMWare 于 1999 年开发了其 VM Hypervisor SW,但它是专有的。

动车组:

在 VMWare 之后 4 年后,法国开发商 Fabrice Bellard 于 2003 年开发了 QEMU(快速仿真器)Hyporvisor 并使其免费和开源。经过多年的社区发展,QEMU 然后成为“完全虚拟化”的 2 类管理程序。

  • QEMU 能够模拟各种硬件,包括 CPU 和 I/O 设备。
  • QEMU 能够将发送到 VM 的 vCPU 的指令解释为真正的指令,并将它们发送到物理 CPU。
  • 一些 QEMU 仿真设备被 VirtualBox 等虚拟化软件广泛使用。
  • QEMU 有自己的 GUI 和 CLI。

QEMU 无需任何其他 VM SW 即可独立运行。

硬件虚拟化:

英特尔和 AMD 都在 2006 年推出了他们的硬件虚拟化技术(VT-x 和 AMD-V)。

KVM:

2006 年,一家小公司(两年后于 2008 年被 Red Hat 收购)为 Linux 开发了一个名为“KVM”的可加载内核模块,它能够使用前面提到的硬件虚拟化技术创建 VM。然后在 2007 年正式合并到 Linux 内核中。

  • KVM 不模拟 vCPU,而是使用物理 CPU …

qemu virtual-machine linux-kvm libvirt virt-manager

9
推荐指数
1
解决办法
6207
查看次数