您可以通过配置映像元数据来为 OpenStack 实例启用实时调整大小。通过实时调整大小,您可以在打开实例电源的同时更改实例的磁盘大小、内存和 vCPU。

实时调整大小时存在以下限制:
  • 请勿使用实时调整大小创建包含已启用 SR-IOV 的端口的实例。实时调整大小与 SR-IOV 不兼容。
  • 请勿在租户虚拟数据中心中使用启用了实时调整大小的实例。实时调整大小与租户虚拟数据中心不兼容。
  • 请勿向 Linux 64 位或 Windows 7 32 位操作系统添加超过 3 GB 的内存。有关详细信息,请参见 KB 2008405
注: 实时调整大小仅支持增加实例的磁盘大小、内存和 vCPU 的值。

另外,以下情况适用于实时调整磁盘大小:

  • 使用 VMDK 作为映像的磁盘格式。
  • 为映像使用 SCSI 虚拟磁盘适配器类型。不支持 IDE 适配器类型。
  • 将映像中的虚拟机部署为完整克隆。无法实时调整链接克隆的大小。

过程

  1. root 用户身份登录到 Integrated OpenStack Manager 并打开工具箱。
    ssh root@mgmt-server-ip
    toolbox
  2. 创建启用实时调整大小的新映像。
    openstack image create image-name --disk-format {vmdk | iso} --container-format bare --file image-file {--public | --private} [--property vmware_adaptertype="vmdk-adapter-type"] [--property vmware_disktype="{sparse | preallocated | streamOptimized}"] --property vmware_ostype="operating-system" --property img_linked_clone="false" --property os_live_resize="{vcpu | memory | disk}"
    选项 说明

    image-name

    输入源映像的名称。

    --disk-format

    输入 vmdk

    --container-format

    输入 bare。Glance 当前未使用该容器格式参数。

    --file

    指定要上传的映像文件。

    {--public | --private}

    包括 --public 使映像可用于所有用户,包括 --private 使映像仅可用于当前用户。

    --property vmware_adaptertype

    指定 VMDK 磁盘的适配器类型。如需实时调整磁盘大小,必须指定 SCSI 适配器。

    如果不包括此参数,将通过自检确定适配器类型。

    --property vmware_disktype

    指定 sparsepreallocatedstreamOptimized

    如果不包括此参数,将通过自检确定磁盘类型。

    --property vmware_ostype

    指定映像上的操作系统。

    --property img_linked_clone

    输入 false

    --property os_live_resize

    指定 vcpumemorydisk 或以逗号分隔的任意组合(例如,vcpu,memory,disk)。

    实时调整租户 VDC 内、外和跨租户 VDC 的实例的大小

    要实时调整租户 VDC 内、外和跨租户 VDC 的实例的大小,请执行以下步骤:

    • 按照前两个步骤所述,为映像配置实时调整大小。
    • 在计算节点 1 中创建 tenant-vdc1
      viocli create tenant-vdc --name tvdc-01 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
    • 创建特定实例并更新特定实例属性。
      openstack flavor set --property vmware:tenant_vdc='746146ea-a8f2-4be2-8bef-1dabe1249de7' m1.tvdc-01
    • 使用创建的特定实例属性创建实例,您可以将其置于 tvdc1 下,如下所示:
      openstack server create --flavor m1.small --network 39f32be5-7079-4110-8f38-8c3948d3079d --image "Photon 3.0" resize-01
    • 在计算节点 1 中创建 tenant-vdc1
      viocli create tenant-vdc --name tvdc-02 --project-id ecbf813ee5d54420864247a2edcd76dc --compute compute-c05c9c49-c55
      • 将租户 VDC 外部的实例移至 tvdc-01
        openstack server resize resize-01 --flavor m1.tvdc-01
        openstack server resize confirm resize-01
      • 将实例从 tvdc-01 移至 tvdc-02
        openstack server resize resize-01 --flavor m1.tvdc-02
        openstack server resize confirm resize-01
      • 将实例移出 tvdc-02
        openstack server resize resize-01 --flavor m1.small
        openstack server resize confirm resize-01

结果

使用此过程中定义的映像创建虚拟机时,可以调整这些虚拟机的大小,而无需关闭电源。