在运行 CentOS 6.3 和 KVM/Qemu 虚拟化的主机和来宾上,我有以下场景:
对于前 3 个场景,Libvirt 日志没有显示任何内容。我可以很好地暂停客人。
Grub 没有 acpi=off。ACPI 是在下面@mgorven 回复后安装的。除了/var/log/messages 中的这些条目之外,来宾日志中没有任何关于 ACPI 的内容。令我感到困惑的是,有关于 ACPI 的条目,因为它直到日志的最后一行才安装。
最重要的是,我无法从客人外部关闭。我要检查什么才能弄清楚发生了什么?
我有几个 ubuntu 12.04 VM 在 ubuntu 12.04 KVM 主机上运行。那些完全空闲且没有服务的虚拟机(系统日志和全新安装的其他“小”标准内容除外)在 top/htop 中显示恒定负载“0.00 0.01 0.05”,平均 1/5/15。
当有“真正的”应用程序在运行时,平均负载表现完全正常,但它们永远不会低于提到的值。
虽然这根本不会影响性能并且很容易被忽略,但它以一种非常烦人的方式搞砸了监控图:

(请注意,如果图片右半部分在短时间内 > 0.05 时 load15 表现良好)
不幸的是,我不知道哪些诊断输出可能对你有帮助,所以这里有一些默认的东西:
# top
top - 16:31:01 up 1:05, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 62 total, 1 running, 61 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.2%id, 0.5%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1019464k total, 73452k used, 946012k free, 6140k buffers
Swap: 0k total, 0k used, 0k free, 22504k cached
Run Code Online (Sandbox Code Playgroud)
.
# free -m …Run Code Online (Sandbox Code Playgroud) 只是想知道从 USB 密钥运行时是否有任何性能影响/降级
我计划使用 KVM 或 xen,因为我的服务器没有板载 RAID 控制器,我计划降低成本并使用 USB 密钥。
谢谢
我安装了 Ovirt 并想为 NAT 添加网络接口。所以我需要通过 virsh 连接到虚拟机管理程序并添加网卡。
Ovirt 安装在我的本地服务器上,主机(ovirt-engine.kvmserver.net)位于同一服务器上。
我尝试以可读模式连接没问题
# virsh -r
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh > list
Id Name State
----------------------------------------------------
10 CentOS_test running
12 CentOS_test2 running
16 Windows1 running
17 Windows2 running
Run Code Online (Sandbox Code Playgroud)
正常模式下
# virsh
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh # list
Please enter your authentication name:
Please enter your password:
error: …Run Code Online (Sandbox Code Playgroud) 在 Debian wheezy 上,我安装了用于虚拟化的 KVM 并在其上安装了一些 VM。我使用单独的 LVM 磁盘,因为它适用于我的 VM 磁盘。
现在我需要在新的 LVM 磁盘中克隆其中之一。我搜索了太多,我找到了virt-clone,但不幸的是,virt-clone只是在文件中使用磁盘克隆 Vms,无法克隆 LVM 磁盘。我认为有可能dd像这样:
dd if=/dev/vg_kvm/lv_disk1 of=/dev/vg_kvm/lv_disk2
Run Code Online (Sandbox Code Playgroud)
有没有更优化的解决方案?如何将安装在 LVM 磁盘上的 VM 克隆到新的 LVM 磁盘?
我的 SSH 配置有一个相当奇怪的问题。我在远程访问卡的帮助下设置了我的服务器,并使用 KVM 查看器配置了所有内容。
因此,在通过 KVM 查看器登录服务器时,我仅使用公钥配置了 SSH,并尝试从本地笔记本电脑登录。它工作得很好。
如果我退出 KVM 会话(或在 KVM 会话中与用户一起注销),我将无法再通过 ssh 登录(公钥被拒绝)。SSH 登录仅在用户在某处仍处于登录状态时才有效。
任何提示可能是什么问题?
登录失败的控制台输出(所有个人数据交换):
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/mylocaluser/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 103: Applying options for *
debug1: Connecting to 100.100.100.100 [100.100.100.100] port 12345.
debug1: Connection established.
debug1: identity file /Users/mylocaluser/.ssh/id_rsa type 1
debug1: identity file /Users/mylocaluser/.ssh/id_rsa-cert type -1
debug1: identity file /Users/mylocaluser/.ssh/id_dsa type -1
debug1: …
[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) 我有这样的硬盘空间结构:
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吗?或者我应该编辑配置?我发现 …
到目前为止,我已经使用 libvirt XML 命令在 QEMU 来宾上启用了丢弃功能
..
<driver name='qemu' type='qcow2' discard='unmap' />
..
Run Code Online (Sandbox Code Playgroud)
而且看起来效果很好。
现在我即将将我的存储从 转换virtio-scsi为virtio-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 块设备。
我正在从事一个论文研究项目,我在弄清楚如何让一个 NIC 产生多个“桥接”接口以便可以在本地网络上看到每个 KVM VM 时遇到了一些困难。我对 KVM 非常陌生,并且仍在探索它可以做什么。以下是我尝试制作的场景(在 CentOS/RHEL 6 系统上):
eth0) 连接到交换机。eth0会为每个 VM 提供唯一的 IP。这样每个 VM 都可以与网络上的其他主机通信,网络上的其他主机也可以与 VM 通信。iptablesKVM 主机能够操纵/控制/限制将在这些“桥接”接口上发送的流量。我以前从 中制作了一个br0界面eth0,但不幸的是,我无法再添加任何界面。看来您只能将 1 个接口桥接到 NIC。我想将多对一联系起来。
将一个tap设备能够做到这一点?如果是这样,它会如何设置?
实际上,我正在尝试复制可以在 Windows 上使用 VirtualBox 轻松创建的内容,其中每个 VM 都有一个“桥接”接口,并且可以存在于网络上。我想用 Linux KVM 实现同样的事情。
谢谢你
编辑:为了更具描述性,我想实现如下所示的内容:
这可以在此页面上找到:http : //en.gentoo-wiki.com/wiki/KVM#Networking_2
HOST
+---------------+
| | KVM GUEST1
| | +--------------+
| +------+ …Run Code Online (Sandbox Code Playgroud)