标签: kvm-virtualization

从 RAM 磁盘运行 KVM/XEN/Hyper-V VM,这可能吗?实际的?

目前,我正在使用 ESX(v3 和 v4)来测试脚本化操作系统 (Windows 2003) 和应用程序安装 DVD。DVD ISO (8GB) 安装在 1Gbps NFS 数据存储上,VMDK (20GB) 安装在通过 NFS 通过 10Gbps 链路安装的 SSD 上。

运行测试迭代的时间仍然比我真正想要的要长得多,我想知道将虚拟磁盘和 ISO 安装在运行虚拟机管理程序的同一服务器上的 RAM 磁盘上是否值得我花时间。我可以为该虚拟机专门配备一台服务器,并且系统中 32GB 的 RAM 应该足以完成我猜想的任务。(1GB 虚拟机管理程序操作系统、28GB RAM 磁盘和 2GB 虚拟机小于我可用的 32GB)

由于在 ESX 中托管 RAM 磁盘似乎不太可能,因此我愿意尝试 KVM/Xen/Hyper-V。KVM 可能是这三个中我的首选。

有人尝试过这个吗?请记住,这纯粹是为了安装程序的测试运行,测试完成后虚拟机将被丢弃,因此我不担心因远程电源故障而丢失数据。

xen hyper-v ramdisk vmware-esx kvm-virtualization

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

通过 kvm 和 libvirt 进行局域网唤醒来触发虚拟机

我正在使用 KVM 进行虚拟化,并通过 Libvirt 守护进程对其进行管理。

如何配置 Libvirt 或 KVM 以侦听发送到虚拟机 NIC 的 MAC 地址的 LAN 唤醒数据包,并在收到此类数据包时启动虚拟机?

virtualization wake-on-lan libvirt kvm-virtualization

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

两个 KVM 虚拟机之间的专用网络

我正在尝试使用透明的以太网链路将两台 KVM 主机连接在一起。我使用 Proxmox VE 作为主机,并配置了 2 个带有以太网接口的 KVM VE,并将它们连接到单个网桥 (vmbr1)。

我已经在同一子网上的每台主机上配置了静态 IP,但无法通过网桥 ping 通(主机 A 无法 ping 主机 B)。虚拟机上的 arp 表偶尔“不完整”,并且尚未正确发现其他主机。

如果我使用其他主机 mac 和 ip 地址引入 arp 表,则会在虚拟机上的网桥上看到 ICMP 回显请求,并且我正在 ping 的主机上的接口 packet_in 计数器会增加。

我在 ServerFault 上看到了类似的问题,尽管遵循以下 RedHat“bug”似乎没有任何效果:https://bugzilla.redhat.com/show_bug.cgi ?id=512206

这里有什么想法吗?

networking virtualization linux proxmox kvm-virtualization

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

为什么 virtio-serial 在主机上有一个套接字接口,在客户机上有一个字符设备接口?

我正在尝试使用 kvm 作为虚拟机管理程序在主机与其客户虚拟机之一之间建立通信通道。为此,我使用virtio-serial

为了创建虚拟机,我发出了以下命令:

qemu-system-x86_64 \
-m 2048 -name ubuntu \
-hda ubuntu_image \
-device virtio-serial \
-chardev socket,path=/tmp/foo,server,nowait,id=foo \
-device virtconsole,name=jobsfoo,chardev=foo,name=org.ubuntu.foo \
Run Code Online (Sandbox Code Playgroud)

然后为了在客人上进行交流,我使用:

socat /dev/hvc0 -
Run Code Online (Sandbox Code Playgroud)

在主机上:

socat /tmp/foo -
Run Code Online (Sandbox Code Playgroud)

我开始明白这/tmp/foo是一个套接字和/dev/hvc0一个字符设备。

为什么有一个对称的通信接口:主机上的套接字和客户机上的字符设备?

socket kvm-virtualization virtio

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

物理机迁移至KVM

我有一台相当旧的 Debian 机器,我需要将其迁移到 KVM-Qemu。

我开始制作根文件系统的 tarball:

tar -cpf rootfs.tar  --exclude='dev/*' --exclude='proc/*' --exclude='sys/*' --exclude='home/*' /
Run Code Online (Sandbox Code Playgroud)

scp将 tar 文件复制到正在运行的 kvm 机器上,进行一些小的更改,然后希望它能正常工作。有人知道比这更好的解决方案吗?

physical-to-virtual qemu kvm-virtualization

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

如何在 cirros 启动时禁用元数据查找?

我正在使用 libvirt 在 Openstack 环境之外启动 cirros 虚拟机。启动时,虚拟机会检查元数据二十次,这会增加启动时间的大量延迟。

cirros-ds 'net' 升级至 6.14
检查http://169.254.169.254/2009-04-04/instance-id 失败1/20:上涨6.18。请求失败 2/20失败:上涨18.32。请求失败 3/20失败:上涨30.38。请求失败 4/20 失败:上涨 42.44。请求失败 [剪]

我正在使用 cirros-0.3.3。

我可以使用 cloud-init 或其他机制来禁用元数据查找吗?

libvirt kvm-virtualization

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

qemu-kvm 从低使用率来宾回收内存

有没有办法透明地回收或防止使用 qemu-kvm 来宾的内存?

场景A:

来宾在高峰时段使用 8GB 的​​ RAM,它在晚上返回到 4GB 的使用量,但来宾仍然要求主机提供 8GB 的​​ RAM。

场景B:

来宾使用 2GB 的 RAM,但页面缓存中有 6GB 的 RAM。来宾要求主机提供 8GB 的​​ RAM,但其中最多 6GB 可能是在另一个来宾系统中可能更重要的 RAM。


我对气球的第一个想法是客人不会“看到”气球效果,但是当发送“气球2048”时,客人内部的内存实际上减少到~2GB。

memory qemu kvm-virtualization virtio

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

如何使用 VNC 客户端将键盘布局设置为 KVM (libvirt)

我在 Debian 9.9 上安装了 kvm 来宾和主机,在 AMD 机器上安装了 kde

qemu-kvm 1:2.8+dfsg-6+deb9u7 amd64

  • 当与virt-viewer连接时,我的键盘布局实际上正在工作(fr-ch),我不知道可用布局列表在哪里以确认我fr-ch的可用
  • 与任何vnc 客户端连接时,我的键盘布局不起作用,布局无法理解....

我试过

  • 使用=> into graphics 部分将指令更改为 xml(不起作用)sudo virsh edit myVmGuestkeymap='fr-ch'
  • 将键盘布局更改为 kde 来宾(均无效)
  • 更改我的 vnc 客户端

vnc libvirt kvm-virtualization

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

热交换物理磁盘传递到 qemu VM

我有一个在 proxmox 上的 qemu 中运行的虚拟服务器。它有两个物理磁盘连接到主机,使用 virtio: 指令在 101.cfg 中,如下所示

virtio2: /dev/disk/by-id/ata-vol1,backup=0 
virtio3: /dev/disk/by-id/ata-vol2,backup=0
Run Code Online (Sandbox Code Playgroud)

这些包含一个镜像的 ZFS 卷,我的文件使用 nextcloud 提供。这一切正常,因为这些磁盘永远不会从来宾中删除。

我还有其他三个物理磁盘的轮换备份(物理控制器是 JBOD 配置中的 LSI raid 控制器,物理硬件是 HP Proiliant DL380e Gen8)。我通过 zfs 将更新的快照从存储阵列发送到系统上存在的任何备份磁盘来做到这一点。我已将这些添加到 VM 中,如下所示:

virtio4: /dev/disk/by-id/ata-backup1-volname,backup=0
virtio5: /dev/disk/by-id/ata-backup2-volname,backup=0
virtio6: /dev/disk/by-id/ata-backup3-volname,backup=0
Run Code Online (Sandbox Code Playgroud)

这种工作,但问题是这些磁盘都不是可热插拔的,所以如果我轮流移除和插入磁盘,来宾将无法看到它们。我的 qemu 配置中启用了磁盘热插拔。

我的问题是,在插入和移除这些磁盘时,将这些磁盘动态附加和分离到我的 VM 的正确方法是什么?

我已经能够使用“qm monitor”找到一个部分解决方案,通过附加和分离virtio-scsi“pci卡”来附加和分离我正在取出的磁盘,如下所示:

附上

qm> drive_add 0 file=/dev/disk/by-id/ata-<disk-id>,if=none,id=backup_vol,cache=none,detect-zeroes=on
qm> device_add virtio-blk-pci,drive=backup_vol,id=backup_scsi_controller
Run Code Online (Sandbox Code Playgroud)

分离

qm> device_del backup_scsi_controller
Run Code Online (Sandbox Code Playgroud)

(来源:https : //blog.chrishowie.com/2019/09/19/hot-swapping-virtio-disks-on-qemu/通过谷歌缓存)

我想我可以将这些添加到我的备份脚本中,但是似乎不可能从 shell 脚本运行 qm monitor 命令,并且 qm monitor 不会从 stdin 获取参数或输入。通过阅读,可能可以在来宾上的 qemu-agent 中创建一个套接字并使用 JSON 注入它,但我对 JSON 一无所知,我真的希望有一种更简单的方法。

qemu proxmox kvm-virtualization

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

如何实现/实现 VM 的实时迁移?

来自这篇文章:虚拟化:什么是 KVM?和其他资源,我了解到可以将 Live VM 从一台主机迁移到另一台主机吗?

实时迁移
KVM 支持实时迁移,即在不中断服务的情况下在物理主机之间移动正在运行的 VM 的能力。VM 保持开机状态,网络连接保持活动状态,并且在 VM 重新定位时应用程序继续运行。

有人可以详细说明如何使之成为可能吗?
通常,运行中的 VM 与一些硬件(真实或虚拟)相关,如内存、CPU、磁盘、图形、网络等。它与主机操作系统(在类型 2 管理程序的情况下)或管理程序/KVM(在类型 1 管理程序的情况)。在新主机上,VM 必须将自身与上述资源/驱动程序等重新绑定 - 这可能表明停机时间(可能很短)。
那么如何实现零服务中断的实时迁移。

感谢您提前回复。

virtualization hyper-v hypervisor live-migration kvm-virtualization

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