gpt4 book ai didi

google-cloud-platform - 如何在 e2-micro GCP VM 上使用嵌套虚拟化?

转载 作者:行者123 更新时间:2023-12-02 03:04:17 37 4
gpt4 key购买 nike

我正在尝试利用 Google Cloud Platform (GCP) 上的嵌套虚拟化功能,但是在尝试使用它时没有成功。这是我根据 GCP documentation 遵循的程序:

  1. 基于 Ubuntu 18 LTS 镜像创建新磁盘
  2. 从磁盘创建新镜像,应用 vmx 许可证
  3. 从镜像创建新的虚拟机实例
  4. 使用 Ubuntu 中的 cpu-checker 软件包检查是否支持嵌套虚拟化
gcloud compute disks create disk1 --image-project ubuntu-os-cloud --image-family ubuntu-1804-lts --zone us-central1-a
gcloud compute images create nested-vm-image --source-disk disk1 --source-disk-zone us-central1-a --licenses "https://compute.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"
gcloud compute instances create firecracker --description firecracker --image nested-vm-image --zone us-central1-a --preemptible --machine-type e2-micro

运行 sudo kvm-ok 命令后,我收到此消息:

INFO: Your CPU does not support KVM extensions

KVM acceleration can NOT be used

疑难解答

确保我使用的是 Haswell CPU

我使用 gcloudcomputeinstancesdescribe 命令来确认我的 e2-micro 虚拟机正在使用 Intel Haswell CPU,这是嵌套虚拟化工作的最低要求,根据 GCP 文档。

(base) ➜  ~ gcloud compute instances describe firecracker
No zone specified. Using zone [us-central1-a] for instance: [firecracker].
canIpForward: false
cpuPlatform: Intel Haswell
creationTimestamp: 'xxxxxxxxxxxxxxx'
deletionProtection: false
description: firecracker
disks:
- autoDelete: true
boot: true
deviceName: persistent-disk-0
guestOsFeatures:
- type: VIRTIO_SCSI_MULTIQUEUE
index: 0
interface: SCSI
kind: compute#attachedDisk
licenses:
- https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/licenses/ubuntu-1804-lts
- https://www.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx
mode: READ_WRITE
source: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/disks/firecracker
type: PERSISTENT
id: 'xxxxxxxxxxxxxxxxxxxxx'
kind: compute#instance
labelFingerprint: xxxxxxxxxxxxxx
machineType: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/machineTypes/e2-micro
metadata:
fingerprint: xxxxxxxxxxxxxxx
kind: compute#metadata
name: firecracker
networkInterfaces:
- accessConfigs:
- kind: compute#accessConfig
name: external-nat
natIP: xxxxxxxxxxx
networkTier: PREMIUM
type: ONE_TO_ONE_NAT
fingerprint: xxxxxxxxxxxxxx
kind: compute#networkInterface
name: nic0
network: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/global/networks/default
networkIP: xxxxxxxxxxxxxx
subnetwork: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/regions/us-central1/subnetworks/default
scheduling:
automaticRestart: false
onHostMaintenance: TERMINATE
preemptible: true
selfLink: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a/instances/firecracker
serviceAccounts:
- email: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="1f67676767676767675f7b7a697a73706f7a6d31786c7a6d69767c7a7e7c7c706a716b317c7072" rel="noreferrer noopener nofollow">[email protected]</a>
scopes:
- https://www.googleapis.com/auth/devstorage.read_only
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/pubsub
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/trace.append
startRestricted: false
status: RUNNING
tags:
fingerprint: xxxxxxxxxxxxxxxx
zone: https://www.googleapis.com/compute/v1/projects/xxxxxxxx/zones/us-central1-a

尝试过 Ubuntu 16.04 LTS

根据文档,我还在 Ubuntu 16.04 LTS 上尝试了相同的过程,并收到了与 Ubuntu 18.04 LTS 相同的结果。

问题

问题:如何成功启动支持嵌套虚拟化的 GCP 虚拟机?据我所知,我遵循了文档的要求,但无法让它工作。

我意识到文档没有明确表明他们使用 Ubuntu 18 LTS 测试嵌套虚拟化,但这并不一定意味着它不起作用。

最佳答案

我尝试了与您相同的命令,但在 Ubuntu 16.04 和 18.04 LTS 上,我的虚拟机一开始也不支持 KVM。

我决定检查documentation然后重试:

  1. 启动盘(与您的相同)

    gcloud 计算磁盘创建 disk1 --image-project ubuntu-os-cloud\
    --image-family ubuntu-1804-lts --zone us-central1-a

  2. 自定义图像(与您的相同)

    gcloud 计算镜像创建嵌套虚拟机镜像\
    --source-disk disk1 --source-disk-zone us-central1-a\
    --licenses "https://compute.googleapis.com/compute/v1/projects/vm-options/global/licenses/enable-vmx"

  3. VM n1-standard-1(根据官方文档)

    gcloud 计算实例创建 example-nested-vm --zone us-central1-b\
    --min-cpu-platform“英特尔 Haswell”\
    --image 嵌套虚拟机图像

嵌套虚拟化工作正常:

$ grep -cw vmx/proc/cpuinfo
1
$ sudo kvm-ok
信息:/dev/kvm 存在
可以使用KVM加速

它也适用于抢占式虚拟机:

gcloud 计算实例创建可抢占式嵌套虚拟机\
--zone us-central1-a --preemptible\
--min-cpu-platform“英特尔 Haswell”\
--image 嵌套虚拟机图像

我尝试在第 3 步设置另一种机器类型,但出现错误:

gcloud 计算实例创建 e2-nested-vm --zone us-central1-a\
--机器类型 e2-standard-2\
--min-cpu-platform“英特尔 Haswell”\
--image 嵌套虚拟机图像

错误:(gcloud.compute.instances.create)无法获取资源:
- 所选机器类型 e2 不支持设置最低 CPU 平台-
标准-2。

但是此命令不遵循documentation

因此,如果您逐步按照指南和 machine-type e2-standard-2 doesn't support nested virtualization 进行操作,嵌套虚拟化可以在 Ubuntu 16.04 和 18.04 上正常工作。 。

关于google-cloud-platform - 如何在 e2-micro GCP VM 上使用嵌套虚拟化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59367377/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com