在 Oracle® Solaris 中安装和配置 OpenStack (Kilo)

退出打印视图

更新时间: 2016 年 6 月
 
 

VM 实例安装和配置

本节中讨论的问题专门与 VM 实例相关。

VM 实例处于错误状态

VM 实例可能处于错误状态的一个原因是您尝试安装其体系结构与主机系统不同的 VM 实例。在这种情况下,您可能不会收到专门指明体系结构不匹配的错误消息。要避免该问题,请确保在将映像上载到 glance 映像存储时正确设置映像的 architecture 属性。使用 Horizon 上载映像时,必须在上载后设置映像的属性。也可以使用命令行在一个 glance image-create 命令中上载映像并设置属性值。有关示例,请参见为 Glance 系统信息库准备映像

VM 实例属性值与区域属性值不匹配

OpenStack 报告的有关 VM 实例的部分信息与 Oracle Solaris 报告的有关相应区域的信息不匹配。Horizon 中显示的或 nova 命令显示的信息可能与 zoneadm 命令或其他 Oracle Solaris 命令显示的信息不匹配。

Name(名称)

Horizon 中显示的或 nova list 命令显示的 VM 实例的名称是您在创建实例时指定的名称,如 example-instancezoneadm list 命令显示的区域的名称与 instance-00000001 类似。使用 nova show 命令确定哪个区域与哪个 VM 实例相关联。在 nova show 输出中,OS-EXT-SRV-ATTR:instance_name 属性的值是区域的名称,name 属性的值是 VM 实例的名称。

UUID

Horizon 中显示的或 nova show 命令显示的 VM 实例的 UUID 与 zoneadm list -p 命令显示的同一区域的 UUID 不匹配。zoneadm 命令显示的 UUID 是与用于 Nova 的标识符不同的标识符。

CPU

Horizon 中显示的 VM 实例的 VCPU 数量是仅虚拟化至该实例可以使用的部分 CPU 数量的上限。该数量不提供上限实例内的可观察性。psrinfo 命令报告分配给区域的专用 CPU。

Memory(内存)

当您登录到 VM 实例时,Horizon 中显示的 VM 实例的内存量可能与 prtconf 命令显示的内存量不同。Horizon 显示用于创建 VM 实例的风格所指定的内存量。prtconf 命令报告所有系统内存。

Storage(存储)

Horizon 中显示的 VM 实例的存储量可能与您登录到该 VM 实例时显示的存储量不同,除非该 VM 实例是使用共享存储上的区域 (Zones on Shared Storage, ZOSS) 的非全局区域。

凭证问题

在某些情况下,可能会遇到与导致无法发出服务命令的不正确凭证相关的错误消息。例如,在发出 glance 命令时,可能会生成以下错误消息:

Invalid OpenStack Identity credentials.

此消息的根本原因可能每次都不一样。因此,必须检查日志来限定可能的原因。以 glance 服务为例,请看 Glance SMF 服务日志的内容。/var/log/glance/api.log 可能会报告如下内容:

WARNING keystonemiddleware.auth_token [-] Authorization failed for token

如果在 Glance 配置文件中设置了 Debug = TrueVerbose = True,则在 /var/svc/log/application-openstack-glance-glance-api:default.log 中会提供更多详细信息,如下所示:

DEBUG keystonemiddleware.auth_token [-] Received request from user:
 user_id None, project_id None, roles None service: user_id None,
 project_id None, roles None 
__call__/usr/lib/python2.7/vendor-packages/keystonemiddleware/auth_token.py:821

您可以浏览以下区域以解决问题。

  • 检查服务配置文件以确保正确地定义了相关参数。

  • 检查服务的全局 shell 变量是否正确。例如,对于 Glance 服务,应设置以下变量:

    • OS_USERNAME=glance

    • OS_PASSWORD=service-password

    • OS_PROJECT_NAME=service

    • OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0

如果命令仍然失败并报告相同的错误消息,则可能需要重新创建服务用户以生成新的凭证。请研究以下示例:

# export OS_USERNAME=admin
# export OS_PASSWORD=service-password
# export OS_PROJECT_NAME=project
# export OS_AUTH_URL=http://$CONTROLLER_ADMIN_NODE:5000/v2.0

# openstack user list

从此命令的输出中,记录损坏的服务用户的 ID 号。您将删除该用户,然后使用正确的凭证重新创建它:

# openstack user delete user-ID

# openstack user create --name glance --password service-password
# openstack user role add --user=glance --project=service --role=admin