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
- 请参阅此信息如果你感兴趣
然后是经典的raw
vsqcow2
讨论。我从事 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
介于两者之间,并且对于上述任何一个权衡决策都很少有用。