我正在研究 QEMU/KVM 和 Firecracker/KVM。据我了解,Firecracker 和 QEMU 都与 KVM 通信,通过将 CPU 模式更改为来宾到主机(反之亦然),最终使硬件辅助虚拟化受益。
在CPU的guest模式下,guest甚至可以直接执行其特权指令,那么为什么我们还需要半虚拟化呢?
在 Firecracker 中,仅模拟了 5 个设备,例如
即使在这种极简设计中,我们也必须放置半虚拟化驱动程序。难道我们不能仅仅依靠硬件辅助虚拟化吗?
virtualization virtual-machines qemu paravirtualization kvm-virtualization
我正在尝试设置一个服务器,我将在其中运行多个应用程序。主要是内部的,但也可能是像 Redmine 这样的开源项目。它们都是在无头浏览器上运行的 Rails/Ruby 应用程序/测试脚本。本质上,我试图在内部设置一个类似 heroku 的环境,并希望在这些正在运行的进程之间进行某种进程隔离。
我首先偶然发现了 chroot jails,然后了解了 LXC。LXC 似乎对普通的 chroot jails 提供了更好的控制。我有一个 nginx 前端,我想在隔离的容器中运行网络服务器应用程序进程(thin/mongrel/webrick)。通常我们只是在本地 IP 地址上启动这些进程,并为它们设置 nginx 代理。完成这项工作的最佳方法是什么?人们是否为容器设置了静态桥接 IP 并让 nginx 指向它?如何确保容器中运行的网络服务器只能由外部主机访问?
关于 LXC 的文档似乎有点稀疏。指向一些好的教程或 HOWTO 的指针将不胜感激。我的目标部署环境是一个 Lucid 64 位盒子。
PS我不是Linux大师。所以,要温柔。
所以已经几天了,我仍然无法连接到运行 Ubuntu 16 的 EC2 的新 HVM 实例。作为参考,我正在尝试将我们的服务器从运行 Ubuntu 16 的 m3 实例升级到运行 Ubuntu 16 的 C5 实例。对于几乎我尝试过的所有方法,我都可以停止我的新 C5 实例,分离所有卷,并将新更新的源卷附加为/dev/sda1
,但是当我去连接到实例时,我总是最终超时。亚马逊的状态检查也失败了,因为它说实例无法访问。但是,系统日志在启动时没有显示任何问题。
我已经尝试在这篇文章中做所有事情。我也试过这个帖子。我看过其他网站,并尝试过这个和这个。我什至尝试过 ec2 命令行工具方法和从 ec2 控制台(在线)转换 AMI,但是我要么无法使用转换后的 AMI 启动 C5 实例,要么实例将停止并失败(在通过命令行转换)。
我真正能想到的唯一原因可能是 C5 实例上的分区的命名约定。我见过的每一个指南都使用xvda/xvdf/xvdg
. 我可能是错的,但我没有这些分区或磁盘,而是有nvme0n1
、nvme0n1p1
、(新的 HVM 根)nvme1n1
、 和nvme1n1p1
。当我尝试 HVM / 源 / 目标磁盘方法时,我有nvme0n1/nvme0n1p1
,nvme1n1
(目标 - 一切都应该结束的地方)和nvme2n1/nvme2n1p1
(源 - 一切来自哪里,在 m3 上)。我发现了这篇关于 nvme 的亚马逊帖子,所以我不认为这应该是一个问题,因为我只是在使用时使用了正确的磁盘/分区/mnt/
,即。我打电话 …
对于 XEN,我们不需要硬件辅助支持来运行 linux 操作系统。但是为什么我们需要 KVM 来运行基于 linux 的操作系统。
可以将 Kvm 配置为支持准虚拟化。
编辑:
完全虚拟化来宾可能不知道它正在被虚拟化,并且会降低总性能,而在准虚拟化中,来宾知道它被虚拟化并因此可以提高性能,是吗?
是否可以使用 Xen 将 Windows 作为虚拟机运行qemu-dm
?如果可以的话,该怎么办呢?
由于没有VT技术的Xen仅支持半虚拟化,那么qemu-dm
帮助虚拟机访问网络和磁盘的模拟器是否可以配置为模拟整个硬件?
对于 KVM,可以qemu-dm
为没有硬件辅助虚拟化支持的系统执行此操作吗?