【问题标题】:Can VirtualBox be executed under Amazon EC2 instance?VirtualBox 可以在 Amazon EC2 实例下执行吗?
【发布时间】:2011-11-27 22:44:18
【问题描述】:

我们有一个测试系统,其中在每次主要测试之前都会启动 VirtualBox VM 快照。快照包含特定于测试的测试系统的状态。

这是一个内存密集型测试。

有一个想法是将每日测试运行转移到 Amazon EC2 大型实例(7.5G RAM)中。

不过,我的理解是 EC2 本身就是一个主管。是否允许在其下启动其他虚拟机软件(VirtualBox)?

【问题讨论】:

  • 虚拟化虚拟化....哎哟。
  • 您可能想查看this 文章
  • @Ella:很好的链接!太糟糕了 lxc-checkpoint 还没有实现,所以 LXC 还没有快照。但我会密切关注这个项目。

标签: testing amazon-ec2 virtualization virtualbox


【解决方案1】:

不,我不相信它会。

我不是 100% 清楚确切原因,但我的理解是 VirtualBox 主机需要访问 ring 0,但由于您的主机将在虚拟化系统中运行,因此无法获得此访问权限.

如果你真的想在其他虚拟机中运行虚拟机,你可以使用QEMU。因为它是一个处理器仿真器,它不依赖于任何底层硬件,所以它可以“在任何地方”工作。不过,缺点是它要慢得多

【讨论】:

  • 大卫,你有更多关于这方面的信息吗?我正在尝试在 64 位 CentOS 6.4 上安装 QEMU,虽然我在查找资源时遇到了一些麻烦
【解决方案2】:

我还没有找到一个非常“权威”的来源(例如明确的 EC2 或 VirtualBox 文档),但答案肯定是:不。

到目前为止我发现的最好的解释是在Running Hyper-V, VMware or Xen on an AWS EC2 Instance?:虚拟化感觉就像模拟,好像亚马逊正在运行一个“CPU 模拟器应用程序”。但是管理程序更像是一个内核:它在实际的物理 CPU 上要求某些特权,专为自己而设。就像内核阻止应用使用会干扰其他应用的物理 CPU 功能一样,管理程序是一种“超级内核”,可以防止内核使用可能干扰其他内核的物理 CPU 功能。

基本上:亚马逊的虚拟化软件已经在使用 VirtualBox 需要的特权指令集。您将不得不按照 David 的建议使用模拟器,或者以某种方式将您的 VirtualBox 映像转换为 Amazon's VM Import 工具支持的格式 — 基本上将您的 VM 转换为直接作为其自己的 EC2 实例运行。

【讨论】:

  • VB 绝对可以在 AWS 上运行
  • 你能提供比这更详细的参考吗?我特别好奇它是真的虚拟化,还是在那种情况下只是退回到仿真?现在这里的其他一些答案表明该应用程序至少可以在 Windows 实例中运行,但速度很慢 [表明有模拟的可能性……]
  • 这很容易测试 - 启动一个运行 Windows 2012R2 的 t2.micro(免费) - 下载最新版本的 Virtualbox 并安装。它只会运行 32 位操作系统。我的实现是运行 freenas(它做得很好)。它不会运行 64 位,因为服务器已经是虚拟的;我不知道“仿真”是什么意思,但您可以很容易地免费查看它是否适合您的需求。
【解决方案3】:

我在 Windows AMI 下运行了 VirtualBox。我正在尝试在 Linux 下运行它,但存在各种依赖和麻烦。 这是痛苦的缓慢。 所以答案是“是”,但你可能不想这样做,除非你真的很绝望。

【讨论】:

  • 您能否提供有关如何在 amazon linux 中执行此操作的指南?
  • 我记得,你可以让它在“模拟”模式下运行 32 位操作系统(不是完全“真正的”虚拟化)。这种机制避免了对“环 0”访问的需要,但性能成本很高。
【解决方案4】:

嗯,亚马逊现在允许导入 VirtualBox 和 VMWare 虚拟机。并非所有操作系统都受支持,但它们都可以使用:

http://aws.amazon.com/ec2/vmimport/

因此无需在Amazon下运行VirtualBox,只需将VM作为实例导入和克隆即可。

【讨论】:

  • 好像不支持Virtualbox vmdk文件。 AWS 上的文档都没有提到 Virtualbox:docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
  • 需要:B/SaaS 应用程序可能需要大量超小型机器 - 每个用户 1 台。
  • EC2根本不支持virtualbox导入,可惜virtualbox可以导出为OVA、OVF 1.0、OVF 2.0,还可以导出为VMDK以及其他所有支持的硬盘镜像跨度>
  • 问题标题“可以在Amazon EC2实例下执行VirtualBox吗?”这里不回答。运行 VirtualBox 和 VMWare 有很多需求,其中一个例子是为这些虚拟化提供商创建映像的构建自动化。
【解决方案5】:

我尝试做某事,尽管它至少对 没有多大意义,它就像 VM 中的 VM,如果它对某人有帮助的话

  1. 使用 Amazon EC2 帐户并安装免费层 Windows Server 2012
  2. 远程访问这个所谓的虚拟机,并在其中安装虚拟机。
  3. 在此虚拟机中安装尽可能小的 Linux Headless (Slitaz)。

这是它的外观,

【讨论】:

  • 您能否提供有关如何在 amazon linux 中执行此操作的指南?
【解决方案6】:

我今天尝试在 Amazon EC2 中使用 Virtual Box。这是我发现的

64 位 VM 根本不工作。所以你必须在 Virtual Box 中只使用 x86 VM。您还必须将每个 VM 的 CPU 计数限制为 1。它不适用于 1+ CPU。您可以直接在vm_name.vbox 文件中修改它。寻找<CPU count="1" hotplug="false">

注意:在测试时,Virtual Box 上的主机操作系统是“Ubuntu 14.04 x64”,来宾操作系统是“Ubuntu 14.04 x64/x86”

【讨论】:

    【解决方案7】:

    我今天试过了,确定的答案是:不。

    您可以安装 GUI,但不会安装内核模块:

    sudo /sbin/vboxconfig
    vboxdrv.sh: Stopping VirtualBox services.
    vboxdrv.sh: Building VirtualBox kernel modules.
    vboxdrv.sh: Starting VirtualBox services.
    vboxdrv.sh: failed: Running VirtualBox in a Xen environment is not supported.
    

    【讨论】:

      【解决方案8】:

      最近有一些新的发展。现在 AWS 已经光秃秃的 metal boxes,不是虚拟机,而是实际的物理盒子。

      不幸的是,因为 AWS 硬件非常密集,所以你可以得到的最小盒子是 m5d.metal,它是 96 核,768GB 的​​怪物,相当 pricey。而且,看起来那些也没有现货市场。

      我只是尝试在 m5d.metal 机器上启动 Ubuntu 实例,安装 Vagrant 和 VirtualBox 并尝试运行我的一个 Windows 机器。它按预期工作,没有任何问题。

      【讨论】:

      • AWS 在 2019 年 10 月推出了具有 32GB RAM 的更便宜的实例类型 a1.metal。
      • 不幸的是,这个不起作用。 A* 机器基于 ARM CPU。虚拟机不是模拟器,它们只能运行为相同 CPU 架构构建的客户操作系统。
      【解决方案9】:

      对于那些有兴趣了解“嵌套虚拟化”如何在裸机 EC2 实例上工作的人:

      # curl -w "\n" 169.254.169.254/latest/meta-data/instance-type
      c5n.metal
      
      # cat /etc/issue
      Ubuntu 20.04.3 LTS \n \l
      
      # dpkg -l virtualbox
      Desired=Unknown/Install/Remove/Purge/Hold
      | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
      |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
      ||/ Name           Version                       Architecture Description
      +++-==============-=============================-============-===========================================
      ii  virtualbox     6.1.26-dfsg-3~ubuntu1.20.04.2 amd64        x86 virtualization solution - base binaries
      
      # VBoxManage list vms
      "vagrant-project1_vm1_CentOS_1643693775729_39367" {d5043860-dcb6-4d05-a5be-a528b28cddf9}
      "vagrant-project1_vm2_Ubuntu_1643693811420_34650" {3534a74d-a52b-4c2f-84bf-404ce524018d}
      
      # vagrant status
      Current machine states:
      
      vm1_CentOS                running (virtualbox)
      vm2_Ubuntu                running (virtualbox)
      
      # vagrant ssh vm2_Ubuntu --command  "sudo virt-what"
      virtualbox
      

      上面最后一条命令显示嵌套VM的虚拟化类型是“virtualbox”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        • 2011-05-28
        • 1970-01-01
        • 2015-02-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多