FAQs:
一、如何找出哪个主机绑定到哪个cell?
有几种方法可以做到这一点。
1、运行 nova-manage –config-file host list. 这将仅列出所提供单元nova.conf中的主机。
从版本16.0.0开始不推荐使用:自16.0.0 Pike版本起,不推荐使用nova-manage host list命令。
2、运行 nova-manage cell_v2 discover_hosts –verbose
这不会生成报告,但如果您尝试确定主机是否在cell中,则可以运行此报告,它将报告尚未映射到cell的任何主机并映射它们。 此命令是幂等的。
3、运行 nova-manage cell_v2 list_hosts 这将列出所有cell格中的主机。 如果要列出特定cell中的主机,可以运行
nova-manage cell_v2 list_hosts –cell_uuid d853bdc3-a1f6-4e53-ae3c-9a805adb6ae4
二、我使用nova-manage cell_v2 update_cell命令更新了单元格中的database_connection和/或transport_url,但API仍在尝试使用旧设置。
cell映射缓存在nova-api服务工作程序中,因此您需要重新启动工作进程以重建缓存。
请注意,还有另一个全局缓存与请求上下文绑定,后者用于nova-conductor和nova-scheduler服务,因此如果您在这些服务中遇到相同问题,则可能需要执行相同操作。
从16.0.0 Pike版本开始,缓存或钩子上没有计时器来使用SIGHUP刷新缓存到服务。
三、我已经从Newton升级到Ocata,我可以列出实例,但是当我尝试获取特定实例的详细信息时,我收到404 NotFound错误。
实例需要映射到cell,以便API知道实例所在的单元格。升级时,nova-manage cell_v2 simple_cell_setup命令将自动将实例映射到由现有nova数据库支持的单个cell。
如果您已经升级并且未使用simple_cell_setup命令,则可以运行nova-manage cell_v2 map_instances –cell_uuid 命令来映射给定cell中的所有实例。
有关命令用法的详细信息,请参见Nova Cells v2手册页。
四、我应该更改Cells v2的任何[cells]配置选项吗?
没有。 这些选项仅适用于Cells v1,并且完全不用于Cells v2。 这包括nova-cells服务 – 它与Cells v2无关。
五、我可以创建一个cell,但是在调度时禁用它吗?
是。 可以创建预先禁用的cell,使其不会成为调度新VM的候选cell。 这可以通过使用–disabled选项运行nova-manage cell_v2 create_cell命令来完成。
六、如何禁用cell,以便在执行维护时新服务器创建请求不会转到它?
可以通过运行nova-manage cell_v2 update_cell –cell_uuid –disable来禁用现有cell。
并且可以通过运行nova-manage cell_v2 update_cell –cell_uuid – 启用维护周期结束后重新启用现有cell
七、我使用nova-manage cell_v2 update_cell禁用(或启用)了一个cell,或者使用nova-manage cell_v2 create_cell命令创建了一个新的(预先禁用的)cell(映射),但调度程序仍在使用旧设置。
cell映射缓存在 scheduler 工作程序中,因此您需要重新启动 scheduler 进程以刷新缓存,或者向调度程序发送SIGHUP信号,通过该信号它将自动刷新单元缓存并且更改将生效。
八、为什么CellV2没有实现cell REST API? 为什么API中的cell没有CRUD操作?
CellsV1面临的部署挑战之一是在部署新cell之前需要API和控制服务。
对于从不关闭的大规模公共云来说,这不是一个问题,但对于进行离线升级的小型云和/或可能因断电等完全脱机的云而言,这不是一个合理的需求。
CellV1的初始devstack和门测试由于需要设计解决方案以使API和控制服务在线以便部署其余部分而被推迟,这仍然与其他部署工具的差距。
还要考虑FFU情况,其中控制平面需要关闭以进行多版本升级窗口,其中必须对cell记录进行更改。
如果这些更改的方式是通过API进行的,那么这将会非常困难,API必须在此过程中保持不变。
此外,还有一个长期目标:存在将cell配置(即,cell映射和cell注册的URL以及凭证)移动到配置中,远离在数据库中存储和配置这些内容的需要
九、为什么在API中没有将cell公开为列出服务,实例和其他资源的分组机制?
在CellsV2的早期设计中,我们设定了一个目标,即不让操作员将cell从API中泄露出来。 由于各种原因, aggregates是nova支持主机分组的方式, aggregates可以跨越单元格,和/或如果需要可以与它们对齐。
如果我们支持将cell作为另一种分组机制,我们可能最终必须为 aggregates实现许多相同的功能,例如调度程序功能,元数据和其他搜索/过滤操作。
由于 aggregates是Nova支持分组的方式,任何时候 aggregates都需要将一个cell称为API中的一组主机,并将实际cell留作纯粹的架构细节。
在API中按cell过滤实例的需求,可以通过添加通用的aggregate过滤器来解决,这将允许列出实例在任何aggregate中包含的主机上,如果需要也可以匹配cell边界。
十、为什么GET /servers, GET /servers/detail, GET /servers/{server_id} and GET /os-services的API响应在特定时间内缺少某些单元的某些信息?
在运行openstack server list or openstack server show时,为什么我在这些单元格中看到服务器的状态为“UNKNOWN”?
从microversion 2.69开始, GET /servers, GET /servers/detail, GET /servers/{server_id} and GET /os-services 的API响应可能在向下cell情况下包含丢失的密钥。
有关部分构造的更多信息,请参阅Compute API指南的“处理单元格”部分。