标签: libvirt

恢复正在运行的 KVM 来宾磁盘映像

我在 Ubuntu 10.04 主机上运行多个 KVM 来宾。由于粗心大意,运行主机的qcow2镜像已被删除。它们仍在正常运行和响应以及读取/写入等。如果您停止来宾,它会由于缺少图像而拒绝启动。

我很想知道这些文件当前写入和读取的位置。是在记忆中吗?额外的问题是,是否可以将数据恢复为 qcow2 映像?这不是关键任务数据,所以我很高兴在这里进行实验。如果我不必拯救数据并重新创建每个来宾,那将主要是节省时间。

ubuntu libvirt kvm-virtualization

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

Virsh 域中有空间,无法删除

我在启动或破坏域时遇到问题:

virsh # list --all
 Id    Name                           State
----------------------------------------------------
 1     pxe                            running
 -     Centos_6.5_64                  shut off
 -     Git Server                     shut off
Run Code Online (Sandbox Code Playgroud)

我无法启动域:

virsh # start Git
error: failed to get domain 'Git'
error: Domain not found: no domain with matching name 'Git'

virsh # start Git Server
error: unexpected data 'Server'
Run Code Online (Sandbox Code Playgroud)

因此,我无法破坏域。

如何分配 ID 或以其他方式删除此 VM?

因为它有一个空间,所以我无法像管理其他域一样管理它。

我知道他们不应该有空格,但话说回来,最终用户并不总是听他们被告知的内容:P

感谢您提供的任何帮助。

libvirt virsh

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

使用 virsh 离线迁移 KVM guest 虚拟机?

我想e-devel使用virsh. 所以我这样做

# virsh -d 0 migrate --offline --persistent e-devel qemu+ssh://kvm2/system
migrate: offline(bool): (none)
migrate: persistent(bool): (none)
migrate: domain(optdata): e-devel
migrate: desturi(optdata): qemu+ssh://kvm2/system
migrate: found option <domain>: e-devel
migrate: <domain> trying as domain NAME
root@kvm2's password: 
migrate: found option <domain>: e-devel
migrate: <domain> trying as domain NAME

# 
Run Code Online (Sandbox Code Playgroud)

输入根密码后,我本以为来宾会被迁移,但什么也没有发生。

最后一条调试线migrate: <domain> trying as domain NAME让我觉得缺少了一些东西。

这行是什么意思?

linux centos libvirt kvm-virtualization virsh

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

virt-install 后不要启动 guest 虚拟机

我喜欢设置一个新来宾,但不想立即开始。我使用virt-install这些选项:

virt-install \
    --connect qemu:///system \
    --import \
    --virt-type kvm \
    --name somevm \
    --os-variant win7 \
    --memory 2048 \
    --vcpus 1 \
    --disk /home/bla/VirtualMachines/somevm.qcow2,format=qcow2,device=disk \
    --network network=default \
    --noautoconsole \
    --sound default
Run Code Online (Sandbox Code Playgroud)

virt-install总是会启动VM。我在手册页中找不到任何禁用自动启动的选项。我不想virsh destroy somevm在安装后立即调用,尽管虚拟机可能还没有启动...是否可以使用 virt-install 来阻止来宾启动,或者是否有其他工具可以执行相同的操作但不启动启动客人?

我还找到了某种解决方法:--import您可以使用 来安装虚拟机,而不是使用--pxe。如果没有可用的 PXE 服务器,那么这应该有足够的时间来使用 销毁来宾virsh

libvirt virt-install

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

Terraform Libvirt - 如何在虚拟机管理程序中使用本地 qcow2 文件而不是云映像?

看来 libvirt 提供商只接受预定义的云映像。我创建了自己的位于虚拟机管理程序本地的基本 qcow2 映像,并希望将其用作 terraform libvirtd 的源文件。

这可行吗?

使用云镜像配置:

resource "libvirt_volume" "terraform-test" {
    name = "terraform-test.qcow2"
    pool = "default"
    source = "https://cloud.debian.org/images/cloud/buster/daily/20200324-210/debian-10-nocloud-amd64-daily-20200324-210.qcow2"
    format = "qcow2"
Run Code Online (Sandbox Code Playgroud)

相反,我想在虚拟机管理程序中使用本地文件,如下所示:

resource "libvirt_volume" "terraform-test" {
    name = "terraform-test.qcow2"
    pool = "default"
    source = "/var/lib/libvirt/images/base-image.qcow2"
    format = "qcow2"



Error: Error while determining image type for /var/lib/libvirt/images/base-image.qcow2: Error while opening /var/lib/libvirt/images/base-image.qcow2: open /var/lib/libvirt/images/base-image.qcow2: no such file or directory
Run Code Online (Sandbox Code Playgroud)

libvirt qcow2 kvm-virtualization terraform

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

在 VMware Workstation 内启用 Intel-VT

我正在 VMware Workstation v7 虚拟机内测试来自 OpenStack 项目的 Nova Compute,我收到此错误:

libvirtError: internal error no supported architecture for os type 'hvm'
Run Code Online (Sandbox Code Playgroud)

这是因为 VM 无法运行硬件加速的 Xen VM (hvm),即来宾 CPU 不支持 Intel-VT 或 AMD-V。根据 VMware,“运行嵌套 VM ”,我可以启用此支持,将这些参数添加到“.vmx”文件中:

guestOS = "vmkernel"
monitor_control.vt32 = "TRUE"
monitor_control.restrict_backdoor = "TRUE"
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用,在 VM 内运行“grep vmx /proc/cpuinfo”不会报告 Intel-VT 支持,还从“cpu-checker”包运行“kvm-ok”我得到:

# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
Run Code Online (Sandbox Code Playgroud)

我可以配置 VMware Workstation 以运行 KVM 加速或 Xen HVM 吗?谢谢!

virtualization xen libvirt vmware-workstation kvm-virtualization

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

无法在 Centos 7 kvm 主机上导入 Ubuntu 虚拟机

[root@kvm ~]# virsh create /root/ns1.jesse64.xml
    error: Failed to create domain from /root/ns1.jesse64.xml
    error: internal error: process exited while connecting to monitor: qemu-kvm: -machine pc-i440fx-trusty,accel=kvm,usb=off: Unsupported machine type
Run Code Online (Sandbox Code Playgroud)

所以我运行 /usr/libexec/qemu-kvm -machine ?看看

Supported machines are:
none                 empty machine
pc                   RHEL 7.0.0 PC (i440FX + PIIX, 1996) (alias of pc-i440fx-rhel7.0.0)
pc-i440fx-rhel7.0.0  RHEL 7.0.0 PC (i440FX + PIIX, 1996) (default)
rhel6.6.0            RHEL 6.6.0 PC
rhel6.5.0            RHEL 6.5.0 PC
rhel6.4.0            RHEL 6.4.0 PC
rhel6.3.0            RHEL 6.3.0 PC
rhel6.2.0            RHEL 6.2.0 PC
rhel6.1.0            RHEL 6.1.0 …
Run Code Online (Sandbox Code Playgroud)

centos libvirt qemu kvm-virtualization

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

如何将 KVM 镜像替换到其他分区?

我有这样的硬盘空间结构:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             16G     0   16G   0% /dev
tmpfs           3.2G  8.9M  3.2G   1% /run
/dev/md2        193G   35G  148G  19% /
tmpfs            16G     0   16G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs            16G     0   16G   0% /sys/fs/cgroup
/dev/md4        492G   73M  466G   1% /mnt
Run Code Online (Sandbox Code Playgroud)

现在,我的 kvm-image 开启/dev/md2/ ls -l /kvm/vhdd/wwe.img -rw------- 1 libvirt-qemu kvm 163611607040 Mar 9 09:12 /kvm/vhdd/wwe.img

我需要将此图像替换为/dev/md4to /mnt

这该怎么做 ?我可以停止我的虚拟机。但是停车后我该怎么办?我应该做cp吗?或者我应该编辑配置?我发现 …

virtualization linux libvirt qcow2 kvm-virtualization

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

我应该在 QEMU 来宾上使用“检测零”来支持 TRIM/丢弃吗?

到目前为止,我已经使用 libvirt XML 命令在 QEMU 来宾上启用了丢弃功能

..
<driver name='qemu' type='qcow2' discard='unmap' />
..
Run Code Online (Sandbox Code Playgroud)

而且看起来效果很好。

现在我即将将我的存储从 转换virtio-scsivirtio-blk因为它现在支持丢弃,我遇到了该选项detect_zeroes=off|on|unmap(或 QEMU 等效项detect-zeroes

我也应该使用这个选项吗?为什么?我假设除了这些区域将被丢弃标记为“可用”之外,它们也被写入零,但它有什么值,特别是在 SSD 支持的存储上?

使用 qcow2 图像我看到写入零来标记稀疏的空白空间的意义,但如果没有此选项并且仅使用discard='unmap'.

libvirt 文档说:

可选的 detector_zeroes 属性控制是否检测零写入请求。该值可以是“off”、“on”或“unmap”。前两个值分别关闭和打开检测。第三个值(“unmap”)打开检测,并根据上面的丢弃值尝试从图像中丢弃这些区域(如果丢弃设置为“忽略”,它将充当“打开”)。注意,启用检测是一项计算密集型操作,但可以节省慢速媒体上的文件空间和/或时间。从2.0.0开始

不幸的是,这并没有让我更接近使用或不使用的决定detect_zeroes:-/

我的 QEMU 来宾的后备存储是 HDD 和 SSD 上的 qcow2 映像以及 SSD 上的 LVM 块设备。

libvirt qemu kvm-virtualization

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

删除磁盘映像时VM运行完美?

有没有人有这样的经历,在虚拟机运行时不小心删除了使用过的磁盘映像?

我预计虚拟机会立即失败,但令人惊讶的是,它仍然可以完美运行。我曾尝试执行许多 I/O 命令,甚至通过“dd”创建非常大的文件,这些文件完全大于 vm 的内存大小。但它仍然活着。

谁能解释为什么?

服务器信息:ubuntu 12.04,从默认仓库安装了 KVM 和 libvirt。VM 的磁盘映像为 qcow2 格式。

ubuntu image libvirt kvm-virtualization

-2
推荐指数
2
解决办法
1051
查看次数