Loading
close

上传 VMDK 镜像

time 更新时间:2025-04-30 15:11:21

实践场景

本文将详细介绍如何使用HTTP方式调用API创建VMDK镜像。

前提条件

镜像服务运行正常。

操作步骤

以curl作为客户端为例,请求方式如下所示:

  1. 创建镜像元数据
    curl -g -i -X POST http://glance.openstack.svc.cluster.local:80/v2/images -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '{"container_format": "bare", "disk_format": "vmdk", "name": "test", "es_virtio_enabled": "yes"}'
    其中:
  • $token即代表上一步获取到的Token ID,可参照签名机制中的描述获取用户Token。
  • es_virtio_enabled表示是否需要自动注入VirtIO驱动。

返回结果:

{
	"es_virtio_enabled": "yes",
	"name": "test",
	"disk_format": "vmdk",
	"container_format": "bare",
	"visibility": "shared",
	"size": null,
	"virtual_size": null,
	"status": "queued",
	"checksum": null,
	"protected": false,
	"min_ram": 0,
	"min_disk": 0,
	"owner": "a5bf2f5c3d0c4f0ebcb1310b7a576c22",
	"os_hidden": false,
	"os_hash_algo": null,
	"os_hash_value": null,
	"id": "62bc000b-90f8-4f23-973a-a7695c331671",
	"created_at": "2025-04-30T02:52:16Z",
	"updated_at": "2025-04-30T02:52:16Z",
	"locations": [],
	"tags": [],
	"self": "/v2/images/62bc000b-90f8-4f23-973a-a7695c331671",
	"file": "/v2/images/62bc000b-90f8-4f23-973a-a7695c331671/file",
	"schema": "/v2/schemas/image"
}
  1. 上传镜像文件
curl -i -X PUT http://glance.openstack.svc.cluster.local:80/v2/images/62bc000b-90f8-4f23-973a-a7695c331671/stage -H "X-Auth-Token: $token" -H "Content-Type: application/octet-stream" -d @/opt/test.vmdk 

其中:

  • $token即代表上一步获取到的Token ID,可参照签名机制中的描述获取用户Token。
  • 请求中的ID是上一步创建镜像元数据返回的镜像ID。
  • 请求body中@跟上镜像文件的本地路径。

返回结果:

无。

  1. 导入
curl -g -i -X POST http://glance.openstack.svc.cluster.local:80/v2/images/62bc000b-90f8-4f23-973a-a7695c331671/import -H "Content-Type: application/json" -H "X-Auth-Token: $token" -d '{"method": {"name": "glance-direct"}}'

其中:

  • $token即代表上一步获取到的Token ID,可参照签名机制中的描述获取用户Token。
  • 请求中的ID是上一步创建镜像元数据返回的镜像ID。

返回结果:

无。

  1. 跟踪镜像状态
curl -g -i -X GET http://glance.openstack.svc.cluster.local:80/v2/images/62bc000b-90f8-4f23-973a-a7695c331671 -H "Content-Type: application/octet-stream" -H "X-Auth-Token: $token"

其中:

  • $token即代表上一步获取到的Token ID,可参照签名机制中的描述获取用户Token。
  • 请求中的ID是上一步创建镜像元数据返回的镜像ID。

等待一段时间后,若镜像状态为active,表示镜像上传成功,若长时间卡在importing状态,并且os_glance_es_failed_reason字段的值为virtio error,表示自动注入VirtIO失败。

此篇文章对你是否有帮助?
没帮助
locked-file

您暂无权限访问该产品