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

Zig*_*idy 2 server kvm virtualization qemu qcow2

Tl/Dr:在 OS SSD 崩溃后重建 VM。寻找最佳实践技巧以查看我是否遗漏了任何内容,并确认 RAW 与 QCOW2 是否存在性能差异,以及是否可以使用相同的命令设置它们,或者需要不同的命令来设置它们。我对 Linux 不太熟悉,所以我需要大量阅读才能解读建议,但在此先感谢您!

大家好,我是一个非常环保的 Ubuntu 服务器用户,即使在使用它几年之后,它仍然是一种忘记它的时尚。我因用于 OS 的 OS 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 ;
Run Code Online (Sandbox Code Playgroud)

有人在 Reddit 上向我建议使用 RAW 而不是 QCOW2 将使 VM 更快并具有更好的性能。我想得到反馈。我尝试了一种不同的创建虚拟机的方法,如下所示,它有效,但我终生无法弄清楚如何使用它。我到底是怎么连接到它的我不知道,我也不知道如何在设置时设置网络信息,我用MANPAGE尝试了几种方法,但我遇到了错误。

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 \
Run Code Online (Sandbox Code Playgroud)

Chr*_*rdt 6

你结合了几个问题,让我试着一一回答。来宾使用其中的默认网络和 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
Run Code Online (Sandbox Code Playgroud)

注意:我个人总是更喜欢更时尚的(无需安装,但使用云图像)uvtool-libvirt-如果您有兴趣,请查看此信息


然后是好的旧rawvsqcow2讨论。我已经做了一些年的 KVM 性​​能 - 有区别吗?但答案并不那么容易。您qcow2为此交换了相当多的功能(稀疏分配、快照等)。

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

您可以根据您的设置进一步旋转这个想法,恕我直言,这是一些正常设置的最佳解决方案之一(总是有一些> 10k $的企业替代方案,让我们忽略它)目前优化速度是一个额外的PCIe nvme控制器,您PCI-passthrough 到来宾 - 但这需要硬件这样做。

所以恕我直言"raw file vs qcow2 file",这个问题从来都不是,它是"qcow2 for features, or some pass-through for speed"-raw files介于两者之间,对上述权衡决定几乎没有用。