我已经在 Ubuntu Oneiric Server 64 AMD 上安装了 KVM。
uname -a
Linux myhostname 3.0.0-12-server #20-Ubuntu SMP Fri Oct 7 16:36:30 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)
我尝试使用相同的操作系统创建来宾。首先我试过这个:
vmbuilder kvm ubuntu \
--suite oneiric --flavour virtual --arch amd64 \
--libvirt qemu:///system \
--ip 192.168.0.100 \
--hostname myguest \
--part vmbuilder.partition \
--user adminUser --name fullname--pass defaultPass \
--addpkg apache2 --addpkg apache2-utils --addpkg tomcat6 --addpkg mysql-client \
--addpkg mysql-server --addpkg wwwconfig-common --addpkg dbconfig-common \
--addpkg apache2.2-common --addpkg unattended-upgrades --addpkg vim \
--addpkg openssh-server …Run Code Online (Sandbox Code Playgroud) 我有一些虚拟机需要在主机系统启动时启动。如何将它们设置为自动启动?
如果您在两台服务器之间没有共享存储(因此您无法进行标准迁移),那么将 VM 从一台服务器克隆到另一台服务器上的最简单/最快捷的方法是什么?
我在一台服务器上安装了一个生产就绪的 VM,我想将它克隆到另一个系统上。我在两台主机之间没有共享存储,但我已经在两台主机之间复制了磁盘映像并为其添加了配置(virsh 定义了它)。当我尝试启动它时,它不需要:
# virsh create /etc/libvirt/qemu/cloned-vm.xml
error: Failed to create domain from /etc/libvirt/qemu/cloned-vm.xml
error: Unable to read from monitor: Connection reset by peer
Run Code Online (Sandbox Code Playgroud)
我在 RHEL6 上使用 KVM。这是重复的配置
Run Code Online (Sandbox Code Playgroud)<!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit or other application using the libvirt API. --> <domain type='kvm'> <name>cloned-vm</name> <uuid>NEW_UUID_HERE</uuid> <memory>15360000</memory> <currentMemory>15360000</currentMemory> <vcpu>7</vcpu> <os> <type arch='x86_64' machine='rhel6.2.0'>hvm</type> <boot dev='hd'/> …
我正在研究在 VM 使用中使用文件与分区来存储虚拟磁盘映像之间的差异。的常识是,基于分区的图像是不是因为一个基于文件的图像更快的开销降低。这是有道理的,但我从未见过任何实际数字。
我自己的测试证实了不同的结果。当我标杆直接到分区的虚拟磁盘,然后格式化ext4的是同一个分区,创建存储上的ext4文件系统上的虚拟磁盘映像,然后基准说,我看不出有任何加速在所有的直接到分区的虚拟盘。相反,在某些系统上,基于文件的映像甚至更快(可能是由于主机操作系统缓存或类似的原因)。该测试在许多系统上重复多次,结果相当一致。
因此,也许抛开性能理由,使用分区而不是虚拟磁盘映像是否仍然被认为更好?直接分区访问比图像文件更好还有其他原因吗?
或者也许有什么理由反过来?也许是原始分区映像无法获得的一种虚拟磁盘文件格式的优势?
virtualization linux performance virtual-machines kvm-virtualization
我正在配置服务,该服务将 nginx 上传的大量文件存储在主机系统的 /srv/storage 目录中。这些文件由工作 KVM 来宾处理,它们可能会创建新文件或为现有文件分配扩展属性。文件永远不会被覆盖,但最终会被其中一名工作人员删除。
因此主机服务器的文件写入速度约为 177MB/s。KVM 映像是存储在主机文件系统上的 QCOW2 文件,由于此 virtio 设置,映像在 KVM 实例内达到了约 155MB/s:
<driver name='qemu' type='raw' cache='none' io='native'/>
Run Code Online (Sandbox Code Playgroud)
但是我无法为共享文件夹获得这样的结果。我使用virtfs aka virtio 9p获得了最大 40MB/s 的速度。似乎没有挂载的 AIO 等效项:
mount -t 9p -o trans=virtio,version=9p2000.L uploads /srv/storage
Run Code Online (Sandbox Code Playgroud)
我也在想:
那么如何使用扩展属性有效地与 KVM 来宾共享主机的文件夹)。
我有一个服务器(带有 24GB RAM 的单插槽 Nehalem)主要用作 KVM 主机,其中包含一堆 Windows 服务器和一些(无滴答声)Linux 实例。
我通常使用 BFS CPU 调度程序(通过 CK 补丁集)和 BFQ 磁盘调度程序编译可抢占的桌面内核,使用 1000 Hz 无滴答计时器。在服务器上,我使用 CFQ 以 100 Hz 无滴答声进行所有操作,并且没有强制抢占。
但是,我没有时间或技能对此进行基准测试,因此我正在寻找有关 KVM 内核最佳设置的一些输入。虚拟机的吞吐量会从 1000 Hz 内核中受益吗?
并且,使用 BFS 调度程序会不会是一个坏主意?我听说它也可能给单 CPU 服务器带来好处。我也在考虑在禁用low_latency 选项的情况下使用 BFQ 磁盘调度程序。
任何人都可以指出我正确的方向吗?当涉及到低级系统的东西时,我是一个新手。:-)
系统:CentOS 6.5
网络:br0上的桥接
IPv6:ISP 本机 /64 块。
IPv4:ISP 地址(不是内部 LAN)
目的:仅将 IPv6 分配给来宾(手动),我不希望将 ipv4 地址分配给来宾操作系统。
在主机上:
/etc/sysctl.conf:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv6.conf.br0.forwarding = 1
net.ipv6.conf.default.forwarding = 1
Run Code Online (Sandbox Code Playgroud)
brctl 显示
bridge name bridge id STP enabled interfaces
br0 8000.e840f2ecdfed no eth0
vnet0
virbr0 8000.52540051ef3c yes virbr0-nic
Run Code Online (Sandbox Code Playgroud)
如果配置:
br0 Link encap:Ethernet HWaddr E8:40:F2:EC:DF:ED
inet addr:xxx.xxx.xxx.xxx Bcast:xxx.xxx.xxx.255 Mask:255.255.255.0
inet6 addr: 2607:beef:be:beef::1/64 Scope:Global
inet6 addr: fe80::ea40:f2ff:feec:dfed/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:365707 errors:0 dropped:0 overruns:0 frame:0
TX packets:470458 errors:0 …Run Code Online (Sandbox Code Playgroud) 我有一个带有 3 个 KVM-Guest CentOS 6.5 的 CentOS 6.5 KVM 主机。现在我想使用单个网络接口为主机分配一个公共 IP,为每个来宾分配一个公共 IP。我的 IP(由网络管理员分配)是:
掩码:255.255.254.0
网关 10.25.146.9
这是一张图片,可以更好地解释我的情况:

我是 linux 的新手,所以请帮助我 :)
提前致谢
我正在尝试将 VM 从 KVM 迁移到 Virtualbox(win7 64 位)。我能够使用以下命令转换磁盘映像:
VBoxManage convertfromraw -format VDI XX.img XX.vdi
qemu-img convert -f qcow2 XX.img -O vdi XX.vdi
Run Code Online (Sandbox Code Playgroud)
我还尝试先转换为 raw,然后再转换为 vdi。仍然当我将新磁盘安装到 IDE 或 SATA 控制器下的虚拟框时。系统根本不启动。给出(Windows 加载文件..)然后重新启动。
非常感谢任何建议,我可能会遗漏一个细节。
我需要在主动-被动模式下构建 2 节点集群(类似?)解决方案,也就是说,一台服务器是主动的,而另一台是被动的(备用),它不断地从主动复制数据。基于 KVM 的虚拟机将在主动节点上运行。
如果主动节点因任何原因不可用,我想手动切换到第二个节点(成为主动节点和另一个被动节点)。
我看过这个教程:https : //www.alteeve.com/w/AN!Cluster_Tutorial_2#Technologies_We_Will_Use
但是,我没有足够的勇气相信全自动故障转移并构建复杂的东西并相信它可以正确运行。裂脑情况、复杂性以某种方式失败、数据损坏等的风险太大,而我的最大停机时间要求并不严重到需要立即自动故障转移。
我无法找到有关如何构建此类配置的信息。如果您已经这样做了,请在答案中分享信息/HOWTO。
或者也许可以使用 Linux 节点构建高度可靠的自动故障转移?Linux 高可用性的问题在于,像 8 年前一样,人们对这个概念的兴趣激增,而且许多教程现在已经很老了。这表明 HA 在实践中可能存在重大问题,一些/许多系统管理员只是放弃了它。
如果可能,请分享如何构建它的信息以及您在生产中运行集群的经验。
linux ×4
bridge ×2
9p ×1
boot ×1
centos ×1
centos6.5 ×1
cluster ×1
convert ×1
drbd ×1
kernel ×1
networking ×1
performance ×1
qemu ×1
redhat ×1
rhel6 ×1
vdi ×1
virt-manager ×1
virtio ×1
virtualbox ×1