我有一台使用 Centos6 作为虚拟化主机的机器设置。它有一个配置为单个 lvm 卷组 (vg_fluke) 的 250G 硬盘驱动器。现在想用主机的lvm作为KVM的存储池。
我在 SF 上发现了这个问题,方法一描述了我想要实现的目标。但我找不到办法解决它。
我尝试了以下操作,但由于文档很粗略,我确信我做错了什么。
virsh # pool-define-as guest_images_lvm logical - - - - /dev/vg_fluke
Pool guest_images_lvm defined
Run Code Online (Sandbox Code Playgroud)
然后跟着,
virsh # pool-start guest_images_lvm
error: Failed to start pool guest_images_lvm
error: internal error Child process (/sbin/vgchange -ay -) status unexpected: exit status 5
Run Code Online (Sandbox Code Playgroud)
有关 LVM 设置的更多信息:
[root@fluke ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sdb2 vg_fluke lvm2 a-- 232.39g 125.45g
[root@fluke ~]# lvs
LV VG Attr LSize Origin …Run Code Online (Sandbox Code Playgroud) 我们可以在虚拟机上安装 KVM 机器吗???虚拟机上的虚拟机
当我发出时,我收到以下错误:
$ virt-install –-name kvm_client1 –-ram 256 –-disk
path=/var/lib/libvirt/images/kvm_client1.img,size=5 –-network network=default –-
cdrom /dev/cdrom
ERROR No 'Guest' class for virtualization type 'lxc'
Run Code Online (Sandbox Code Playgroud)
我在 Virtual Box 虚拟机上使用 RHEL 6.0
我正在尝试创建两个都连接到同一个专用网络的虚拟机。我正在使用带有 qemu-kvm 1.0 的 Linux。
我的攻击计划是这样的:
brctl addbr 桥 ifconfig 桥接 tunctl -t tap1 tunctl -t tap2 ifconfig tap1 up ifconfig tap2 up brctl addif 桥接tap1 brctl addif 桥接tap2 qemu-kvm -net nic,macaddr=52:54:00:11:22:33 -net tap,ifname=tap1 disk1.img qemu-kvm -net nic,macaddr=52:54:00:44:55:66 -net tap,ifname=tap2 disk2.img
启动后,我给第一台机器的 IP 地址为 192.168.100.5,第二台为 192.168.100.10。
此时,当我尝试从另一个虚拟机 ping 一个虚拟机时,没有 ping 响应。但是,使用 Wireshark,我看到 ARP 请求被发送和响应,并且我验证了 ARP 缓存确实包含有关其他 VM 的信息。然而没有生成 ping 回复(如通过 Wireshark 看到的)。
接下来,我尝试给网桥一个 IP 地址 192.168.100.1。执行此操作后,VM 之间的 ping 工作正常,但仍然存在问题:现在所有请求似乎都来自网桥本身。例如,如果我从一台 VM 连接到另一台的 FTP 服务器,在带有 FTP 服务器的 VM 上运行 netstat 会显示 192.168.100.1 …
我的 KVM 主机遇到了一个问题,该主机在 LVM 卷上运行 VM。截至昨晚,逻辑卷不再如此(即使我已经创建了几个月,我也无法创建它们的快照)。
运行任何扫描都不会发现任何内容:
[root@apollo ~]# pvscan
No matching physical volumes found
[root@apollo ~]# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
root@apollo ~]# lvscan
No volume groups found
Run Code Online (Sandbox Code Playgroud)
如果我尝试恢复 VG conf 备份,/etc/lvm/backups/vg0我会收到以下错误:
[root@apollo ~]# vgcfgrestore -f /etc/lvm/backup/vg0 vg0
Couldn't find device with uuid 20zG25-H8MU-UQPf-u0hD-NftW-ngsC-mG63dt.
Cannot restore Volume Group vg0 with 1 PVs marked as missing.
Restore failed.
Run Code Online (Sandbox Code Playgroud)
/etc/lvm/backups/vg0 具有以下物理卷:
physical_volumes {
pv0 {
id = "20zG25-H8MU-UQPf-u0hD-NftW-ngsC-mG63dt"
device = …Run Code Online (Sandbox Code Playgroud) 我有一个新安装的 Windows Server 2008 R2 SP1 虚拟机,尽管显然具有正确的 IPv6 连接,但它完全无法访问任何 IPv6 网页。此外,其他 Linux VM 也无法访问 IPv6 网站。
此设置以前在虚拟机中具有完整的 IPv6 连接,并且在没有明显原因的情况下停止工作。
我的所有 VM 都桥接到物理以太网,并从主机上的 radvd 接收通知。IPv6 在主机上正常工作,主机也是 IPv6 路由器。Wireshark 显示主机在收到 HTTP SYN 数据包后正在发回 ICMPv6 Destination Unreachable (Administratively disabled)。
Internet Explorer 报告它无法显示网页,而 Google Chrome 仅显示 Oops!Chrome 无法连接到网页,没有错误号。
我什至能够 ping 本地网关和 Google 的 IPv6 地址并进行 IPv6 DNS 查找。
PS C:\Users\Administrator> ping -6 fe80::6e62:6dff:fed1:dfad
Pinging fe80::6e62:6dff:fed1:dfad with 32 bytes of data:
Reply from fe80::6e62:6dff:fed1:dfad: time<1ms
Reply from fe80::6e62:6dff:fed1:dfad: time<1ms
Reply from fe80::6e62:6dff:fed1:dfad: time<1ms
Reply from …Run Code Online (Sandbox Code Playgroud) 我正在从 Xen 切换到 qemu-kvm。我当前的 Xen 安装有许多 LVM 卷,每个卷都有一个分区(而不是完整的磁盘映像)。在 Xen 中,我使用如下配置启动每个 VM:
kernel = "/boot/vmlinuz-2.6.18-128.4.1.el5xen"
ramdisk = "/boot/initrd-xen-2.6.18-128.4.1.el5xen"
disk = [ 'phy:/dev/vmdata/vm-standalone,sda1,w' ]
Run Code Online (Sandbox Code Playgroud)
我现在想重用这些虚拟机,而是在 kvm 下启动它们。似乎 virt-install--import会让我这样做,使用--boot kernel=<kernel>,initrd=<initrd>,但我不知道如何指示 virt-install 将现有卷附加为引导/根文件系统。这可能吗?
我有三台 KVM 服务器,每台都有 1 个来宾 VM,直接在它的本地存储上运行,(因此它们基本上每个都获得了一个专用的计算能力)。如果主机出现故障,我希望来宾至少复制到其他主机之一,以便我可以在那里旋转,直到故障主机得到修复。
我对 KVM 克隆很好奇。我可以实时克隆 VM,也可以在它挂起/关闭时进行克隆。显然,挂起的 VM 克隆起来自然会更快,但这三个 VM 构成了一个解决方案的三个部分,所以我不想让其中任何一个关闭。
如何在服务器之间有效地克隆这些 VM?
我有几个想法,但这些想法是疯狂的,还是我在我的场景中错过了更好的方法?
在运行 VM 1 的 box 1 和 2 之间设置一个 DRDB 分区,因此在 box1 和 box 2 之间复制,在 box 2 & 3 和 box 3 & 1 之间重复(这可能很疯狂,我从来没有只使用过 DRDB阅读它)
只需使用标准的 KVM CLI 克隆选项来执行实时克隆(我对此表示怀疑,因为我不知道这需要多长时间以及在此期间会产生什么性能影响)
在至少一台其他主机上运行每个 VM 的副本,并让一台主机上的来宾将其数据导出到另一台主机上的匹配来宾,在那里它可以导入该数据,并在来宾上编写脚本)
一些其他的方式?欢迎提出想法!
边注
这些服务器在 RAID 10 中有 4x15k SAS 驱动器,因此它们不会飞速发展,而且正如我所提到的,每个 VM 都从主机的本地存储运行,没有 NAS 或 SAN 等。所以这就是我问这个关于来宾复制的问题的原因. 此外,这与灾难恢复无关。访客将通过 VPN 将他们的数据导出到 NAS,因此我正在研究如何让他们在主机故障情况下快速启动。
我在KVM设置中将 FreeBSD 9.0 设置作为虚拟机运行。在以前的 FreeBSD 版本中,通常会强制kern.hz设置为较低的值,以便虚拟机不会让主机忙,因为它正在处理计时器中断而无需任何工作 - FreeBSD 手册解释说:
最重要的一步是减少 kern.hz 可调参数,以降低 FreeBSD 在 Parallels 环境下的 CPU 使用率。这是通过将以下行添加到
/boot/loader.conf: kern.hz=100
如果没有此设置,空闲的 FreeBSD Parallels 客户操作系统将使用单处理器 iMac® 大约 15% 的 CPU。在此更改之后,使用率将接近仅 5%。
但是,在 FreeBSD 9 中,“动态滴答模式”(又名“无滴答模式”)是默认设置,由kern.eventtimer.periodic默认设置控制0(阅读:无滴答模式)。
这让我想知道 - 降低的技巧是否kern.hz仍然与使 FreeBSD 9 在虚拟机设置中运行良好有关?
我已经在 Google 上搜索了一段时间,但我还没有找到有关如何将我的 6300esb 看门狗计时器的内核驱动程序连接到 /dev/watchdog 并确保看门狗守护程序使其保持活动状态的正确文档。
顺便说一下,我在 KVM 虚拟机中使用了 RHEL 兼容的 Scientific Linux 6.3
以下是我迄今为止尝试过的所有内容:
dmesg|grep 6300
i6300ESB timer: Intel 6300ESB WatchDog Timer Driver v0.04
i6300ESB timer: initialized (0xffffc900008b8000). heartbeat=30 sec (nowayout=0)
Run Code Online (Sandbox Code Playgroud)
|
ll /dev/watchdog
crw-rw----. 1 root root 10, 130 Sep 22 22:25 /dev/watchdog
Run Code Online (Sandbox Code Playgroud)
|
/etc/watchdog.conf
#ping = 172.31.14.1
#ping = 172.26.1.255
#interface = eth0
file = /var/log/messages
#change = 1407
# Uncomment to enable test. Setting one of these values to '0' disables it.
# These values …Run Code Online (Sandbox Code Playgroud) 与 Windows VM 来宾共享 Linux KVM-QEMU 主机上的数据分区的最佳方法是什么?
我可以使用 Samba 网络并将驱动器作为网络共享连接到驱动器,但我希望可能有更简单的方法。
谢谢,尼克
linux ×4
lvm ×3
bridge ×1
disk-volume ×1
freebsd ×1
ipv6 ×1
libvirt ×1
radvd ×1
replication ×1
samba ×1
virtualbox ×1
watchdog ×1