使用 ISO 镜像启动实例

从 ISO 镜像启动实例

OpenStack 支持使用 ISO 镜像启动实例。但在使这些实例正常运行之前,请使用以下参数的 openstack server create 命令来启动实例

$ openstack server create --image ubuntu-14.04.2-server-amd64.iso \
  --nic net-id = NETWORK_UUID \
  --flavor 2 INSTANCE_NAME
+--------------------------------------+--------------------------------------------+
| Field                                | Value                                      |
+--------------------------------------+--------------------------------------------+
| OS-DCF:diskConfig                    | MANUAL                                     |
| OS-EXT-AZ:availability_zone          | nova                                       |
| OS-EXT-SRV-ATTR:host                 | -                                          |
| OS-EXT-SRV-ATTR:hypervisor_hostname  | -                                          |
| OS-EXT-SRV-ATTR:instance_name        | instance-00000004                          |
| OS-EXT-STS:power_state               | 0                                          |
| OS-EXT-STS:task_state                | scheduling                                 |
| OS-EXT-STS:vm_state                  | building                                   |
| OS-SRV-USG:launched_at               | -                                          |
| OS-SRV-USG:terminated_at             | -                                          |
| accessIPv4                           |                                            |
| accessIPv6                           |                                            |
| adminPass                            | ZaiYeC8iucgU                               |
| config_drive                         |                                            |
| created                              | 2015-06-01T16:34:50Z                       |
| flavor                               | m1.small (2)                               |
| hostId                               |                                            |
| id                                   | 1e1797f3-1662-49ff-ae8c-a77e82ee1571       |
| image                                | ubuntu-14.04.2-server-amd64.iso            |
| key_name                             | -                                          |
| metadata                             | {}                                         |
| name                                 | INSTANCE_NAME                              |
| os-extended-volumes:volumes_attached | []                                         |
| progress                             | 0                                          |
| security_groups                      | default                                    |
| status                               | BUILD                                      |
| tenant_id                            | ccef9e62b1e645df98728fb2b3076f27           |
| updated                              | 2014-05-09T16:34:51Z                       |
| user_id                              | fef060ae7bfd4024b3edb97dff59017a           |
+--------------------------------------+--------------------------------------------+

在此命令中,ubuntu-14.04.2-server-amd64.iso 是 ISO 镜像,INSTANCE_NAME 是新实例的名称。 NETWORK_UUID 是您系统中有效的网络 ID。

创建可启动卷,以便在关机后实例驻留在其上。

  1. 创建卷

    $ openstack volume create \
      --size <SIZE_IN_GB> \
      --bootable VOLUME_NAME
    
  2. 将实例附加到卷

    $ openstack server add volume
      INSTANCE_NAME \
      VOLUME_NAME \
      --device /dev/vda
    

注意

您需要块存储服务来在关机后保留实例。使用旧版 nova boot--block-device 参数将无法与 OpenStack openstack server create 命令一起使用。相反,openstack volume createopenstack server add volume 命令创建持久存储。

实例成功启动后,使用远程控制台连接到实例,并按照说明安装系统,就像在普通计算机上使用 ISO 镜像一样。安装完成后并重新启动系统,实例会再次要求您安装操作系统,这意味着您的实例无法使用。如果您在创建镜像时遇到问题,请参考 虚拟机镜像指南

使从 ISO 镜像启动的实例正常运行

现在完成以下步骤,使使用 ISO 镜像创建的实例真正正常运行。

  1. 使用以下命令删除实例。

    $ openstack server delete INSTANCE_NAME
    
  2. 删除实例后,您使用 ISO 镜像安装的系统仍然存在,因为设置了参数 shutdown=preserve,因此运行以下命令。

    $ openstack volume list
    +--------------------------+-------------------------+-----------+------+-------------+
    | ID                       | Name                    | Status    | Size | Attached to |
    +--------------------------+-------------------------+-----------+------+-------------+
    | 8edd7c97-1276-47a5-9563- |dc01d873-d0f1-40b6-bfcc- | available |   10 |             |
    | 1025f4264e4f             | 26a8d955a1d9-blank-vol  |           |      |             |
    +--------------------------+-------------------------+-----------+------+-------------+
    

    您将获得一个包含系统中所有卷的列表。在此列表中,您可以找到附加到您的 ISO 创建实例的卷,其可启动属性为 false。

  3. 将卷上传到 glance。

    $ openstack image create --volume SOURCE_VOLUME IMAGE_NAME
    $ openstack image list
    +-------------------+------------+--------+
    | ID                | Name       | Status |
    +-------------------+------------+--------+
    | 74303284-f802-... | IMAGE_NAME | active |
    +-------------------+------------+--------+
    

    SOURCE_VOLUME 是附加到您的 ISO 创建实例的卷的 UUID 或名称,IMAGE_NAME 是您为新镜像指定的名称。

  4. 镜像成功上传后,您可以使用新镜像启动实例。

    使用此镜像启动的实例包含您使用 ISO 镜像刚刚安装的系统。