虚拟机最佳实践以及 RAW 与 QCOW2

虚拟机最佳实践以及 RAW 与 QCOW2

Tl/Dr:在 OS SSD 崩溃后重建虚拟机。寻找最佳实践技巧,看看我是否遗漏了什么,并确认 RAW 与 QCOW2 是否存在性能差异,以及它们是否可以使用相同的命令进行设置,或者是否需要不同的命令来设置它们。我不擅长使用 Linux,所以我需要阅读大量资料才能理解建议,不过提前谢谢你!

大家好,我是 Ubuntu 服务器的新手,即使使用了几年,也习惯了设置后就忘了。我的服务器因用于操作系统的操作系统 SSD 故障而崩溃,而且从未备份过。我已重新启动系统并运行,但正在逐步设置虚拟机。之前我使用的是 14.04 LTS,但现在使用的是 18.04 LTS。下面的代码基本上是我用来启动虚拟机的代码,效果很好。我想看看我是否遗漏了最佳实践。

我确实需要添加控制台访问,因为 SSD 故障始于重新启动后无法启动的 VM,然后它就失控了。VM 会“启动”并可 ping,但会拒绝 SSH 连接,因此无法完全启动。我仍需要学习如何设置控制台,本周将开始使用它,但我想知道我是否还忽略了其他内容。

sudo ubuntu-vm-builder kvm xenial \
 --dest /mnt/Chaos.raw \
 --hostname Chaos \
 --arch amd64 \
 --mem 4096 \
 --cpus 4 \
 --user admin \
 --pass password \
 --bridge br0 \
 --ip 172.16.5.21 \
 --mask 255.255.255.0 \
 --net 172.16.5.0 \
 --bcast 172.16.5.255 \
 --gw 172.16.5.1 \
 --dns 172.16.5.2 \
 --components main,universe \
 --addpkg acpid \
 --addpkg openssh-server \
 --addpkg nfs-common \
 --addpkg linux-image-generic \
 --addpkg postfix \
 --addpkg mailutils \
 --addpkg libsasl2-2 \
 --addpkg ca-certificates \
 --addpkg libsasl2-modules \
 --addpkg htop \
 --rootsize=100000 \
 --libvirt qemu:///system ;

Reddit 上有人建议我使用 RAW 而不是 QCOW2 可以让虚拟机运行得更快,性能更好。我想得到关于此的反馈。我尝试了一种不同的方法来创建虚拟机,如下所示,它成功了,但我无论如何也想不出如何使用它。我到底是怎么连接到它的,我也不知道如何在设置中设置网络信息,我尝试了几种方法手册页,但我收到了错误。

virt-install \
--connect qemu:///system \
--name Chaos \
--memory 4096 \
--vcpus cpuset=1-4 \
--disk=path=/mnt/Chaos/Chaos.raw,size=100,bus=virtio,format=raw,cache=none \
--os-variant ubuntu16.04 \
--location http://us.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/ \
--network bridge=virbr0,model=virtio, \
--virt-type kvm \
--hvm \

答案1

您已经将几个问题组合在一起,让我尝试逐一回答。 在您的后一个命令中,客户机使用默认网络和 dhcp。 我假设您在安装时设置了一个用户。 了解如何连接的最简单方法是virsh domifaddr

$ virsh domifaddr xenial-kvm
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet0      52:54:00:fe:2c:1f    ipv4         192.168.122.232/24

注意:我个人更喜欢更简洁的版本(无需安装,但使用云图像)uvtool-libvirt- 请参阅此信息如果你感兴趣


然后是经典的rawvsqcow2讨论。我从事 KVM 性​​能研究已有数年 - 存在差异吗?是的。但答案并不那么简单。qcow2为此,您需要牺牲一些功能(稀疏分配、快照等)。

如果你真的关心性能,那么 raw 也不是你想要的 - 至少释放一个分区或者更好的是一个完整的设备,经过 (type='block' device='disk',driver type='raw' 与 .raw type='file' 不同)该设备到客户机 - 跳过更多的主机堆栈并允许检测客户机中的设备特性,这通常会更快。

你可以根据自己的设置进一步思考,在我看来,最好的解决方案之一有些正常设置(总是有一些> 10k$的企业替代方案,让我们忽略它)目前优化速度是一个额外的 PCIe nvme 控制器,您可以通过 PCI 直通到客户机 - 但这需要硬件才能这样做。

所以在我看来,问题从来都不是"raw file vs qcow2 file",而是"qcow2 for features, or some pass-through for speed"-raw files介于两者之间,并且对于上述任何一个权衡决策都很少有用。

相关内容