我想要做的是从主机系统设置来宾的网络配置(IP 地址、子网、网关、广播地址)。使用的网络设置处于bridge模式。如何从主机配置网络而不是将客户端本身配置为静态网络配置?
如果我执行:
virsh edit vm1
Run Code Online (Sandbox Code Playgroud)
还有一个<network>块,我试图从那里配置网络接口,但不幸的是来宾 VM 似乎没有使用它,因此对网络离线(因为它仅使用自动网络配置)......来宾VM 都基于 Linux 和 Windows。任何帮助将不胜感激。
我已经在我的 Ubuntu 笔记本电脑上设置了一个运行 Windows XP 的虚拟机。使用virt-managerGUI 应用程序,我可以在我的驱动器中插入一张 CD,然后转到 Details?IDE CDROM 1 并单击Connect按钮。然后 CD 在我的虚拟机中可用。
如何通过命令行执行相同的操作?显然,我也希望能够与命令行断开连接。
注意:我可以从命令行使用virsh start testbed(testbed 是域/VM 的名称)启动 VM。
virsh create somefile.xml创建我的机器就好了,但是当我关闭机器时,整个事情就消失了。我用 virt-manager GUI 制作的机器是持久的(关机后仍然存在)并且 xml 文件来自那些 virt-manager 创建的机器。
我正在尝试在 KVM 上使用不同的存储池,以便存储我的 VM 的虚拟磁盘以及我正在使用的操作系统的 ISO。
例如:我想使用/media/work/kvm挂载的目录/dev/sda5作为所有未来情况的默认存储池
要配置、创建和启动一个新的存储池,这很容易,但至少在 Ubuntu 中,如果我从不同的存储池中选择 ISO 并不重要,Virtual Machine Manager总是将我指向默认存储池 ( /var/cache/libvirt) 作为将创建来自我的 VM 的虚拟磁盘的存储。
我怎样才能避免这种情况?
我注意到在一台使用 Debian 的机器上出现了一个奇怪的行为,我无法在另一台运行 Ubuntu 的机器上重现。当virsh以普通用户列出网络时,它显示一个空列表:
~$ virsh 网络列表 --all 名称 状态 自动启动 持久 -------------------------------------------------- --------
使用 运行相同的命令时sudo,它会显示默认连接:
~$ sudo virsh 网络列表 --all 名称 状态 自动启动 持久 -------------------------------------------------- -------- 默认活动 否 是
文件本身的权限似乎设置正确:
~$ ls -l /etc/libvirt/qemu/networks 共 8 个 drwxr-xr-x 2 根 4096 7 月 1 日 18:19 自动启动 -rw-r--r-- 1 根根 228 Jul 1 18:19 default.xml
用户属于kvm和libvirtd组。
怎么了?为什么我不能以普通用户的身份列出网络?
我正在尝试按照此过程使用 KVM 进行实时快照。
我一定是在某个时候搞砸了,因为我处于一种我不明白的状态。
我的 VM 被称为prod. 它是在文件中创建的/srv/vm/prod.qcow2。
显然,没有正在运行的快照:我正在处理基本文件。我可以猜测是因为文件的修改日期/srv/vm/prod.qcow2每分钟左右更改一次。此外,此命令确认:
# virsh domblklist prod
Target Source
------------------------------------------------
vda /srv/vm/prod.qcow2
Run Code Online (Sandbox Code Playgroud)
并且没有什么可以阻止提交:
# virsh blockcommit prod vda --active --pivot
error: invalid argument: top '/srv/vm/prod.qcow2' in chain for 'vda' has no backing file
Run Code Online (Sandbox Code Playgroud)
但是,libvirt 会跟踪旧快照:
# virsh snapshot-list prod
Name Creation Time State
------------------------------------------------------------
snap 2015-06-09 12:11:33 +0200 disk-snapshot
Run Code Online (Sandbox Code Playgroud)
它的描述符文件是/var/lib/libvirt/qemu/snapshot/prod/snap.xml:
<domainsnapshot>
<name>snap</name>
<state>disk-snapshot</state>
<creationTime>1433844693</creationTime>
<memory snapshot='no'/>
<disks>
<disk name='vda' snapshot='external' type='file'>
<driver type='qcow2'/>
<source …Run Code Online (Sandbox Code Playgroud) 拥有运行 KVM 的 Ubuntu 服务器:
Linux hyperv 4.4.0-109-generic #132-Ubuntu SMP Tue Jan 9 19:52:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
它正在运行几台 Linux 虚拟机和一台 Windows 虚拟机。安装新的Windows 2016服务器虚拟机后出现问题。可以通过执行以下操作来启动虚拟机(称为 winstore):
virsh start winstore
Run Code Online (Sandbox Code Playgroud)
结果很好。如果从 VM 内部重新启动此特定 VM,它将完全关闭,但不会恢复。跑步
virsh list
Run Code Online (Sandbox Code Playgroud)
确认它尚未启动。为了启动虚拟机,必须执行以下操作
virsh start winstore
Run Code Online (Sandbox Code Playgroud)
再次。这不是所需的行为,也不是其他 Windows VM 的行为方式(它们具有所需的行为,即重新启动时重新启动)。
该虚拟机的创建方式与正常情况略有不同。以下是最初创建虚拟机的步骤:
创建磁盘映像
qemu-img create -f qcow2 -o preallocation=metadata /mnt/vmstorage/images/winstore.qcow2 1300G
Run Code Online (Sandbox Code Playgroud)
获取我们将要执行的操作的 xml 输出,以便我们可以修改 cdrom 属性
virt-install --name winstore --ram 8192 --vcpus=2 --graphics=vnc --network=bridge=br731,model=virtio --disk path=/mnt/vmstorage/images/winstore.qcow2,format=qcow2,bus=virtio,cache=none --disk path=/mnt/backups/isos/virtio-win-0.1.126.iso,device=cdrom --cdrom /mnt/backups/isos/SW_DVD9_Win_Server_STD_CORE_2016_64Bit_English_-4_DC_STD_MLF_X21-70526.ISO --os-type=windows --noautoconsole …Run Code Online (Sandbox Code Playgroud) virsh save vm_name memdump然后virsh restore memdump恢复一个(正在运行的)VM 就好了。
但是,VM 在 之后关闭virsh save。我正在为 KVM 虚拟机编写“实时”备份和恢复脚本,因此在备份部分,我显然需要在备份后运行虚拟机。virsh restore memdump备份后立即执行不是问题,但在我看来基本上没有必要 - 我“应该”能够暂停虚拟机,将其内存保存到文件中,然后简单地恢复/取消挂起虚拟机。
这对于内存很少的虚拟机来说并不是真正的问题,但是如果虚拟机有相当大的工作内存,那么它会不必要地延长备份时间。
不幸的是,即使我virsh suspend在virsh save.
有没有办法做到这一点?(即暂停、保存、取消暂停)
我使用 virt-manager 创建了一个虚拟机并保存了其当前状态的快照。
现在我想使用第一台机器的所有快照创建一个完全相同的重复机器。
我怎样才能做到这一点?
我想知道有没有virsh命令可以显示每台机器虚拟的cpu和内存消耗。我在ubuntu系统中使用KVM创建了虚拟机。
virtualization virtual-machines virtualhost kvm-virtualization virsh
virsh ×10
libvirt ×5
linux ×2
dhcp ×1
permissions ×1
rhel6 ×1
snapshot ×1
sudo ×1
virtualhost ×1