openstack 【T版】(五)——部署nova组件

  • 一、相关概念
    • 1.Nova计算服务
      • 1.1概括
    • 2.Nova系统架构
  • 二、nova组件介绍
    • 1.API(通信接口)
    • 2.Scheduler(调度器)
      • 2.1) nova调度器的类型
      • 2.2 过滤器
      • 2.3 权重(weight)
    • 3.Compute(计算器)
      • 3.1 支持方式
      • 3.2 功能
      • 总结
    • 4.Conductor(管理器)
    • 5.PlacementAPI(管理接口)
  • 三、虚拟机实例化流程
  • 四、控制台接口
  • 五、架构
    • 1.Nova部署架构
    • 2.Nova的cell架构
      • (1)cell产生的原因
      • (2)cell架构图
    • 总结:cell为了给数据库和conductor分压
  • 六、nova的元数据(补充仅作了解)
  • 七、OpenStack-NOVA组件部署
    • 1.在CT控制节点上配置 Nova 服务
      • (1)创建数据库实例和授权
      • (2)创建用户、修改配置文件
    • 2.在C1、C2计算节点上配置 Nova 服务
      • (1)安装软件包并修改配置文件
      • (2)修改配置文件
      • (3)判断计算机是否支持虚拟机硬件加速
      • (4)开启 Nova 计算服务并配置开机启动
    • 3.CT控制节点后续操作
    • (1)添加计算节点到 cell 数据库
      • (2)发现计算节点
      • (3)修改配置文件增加扫描间隔时间
      • (4)验证计算服务

一、相关概念

1.Nova计算服务

  • 计算服务是openstack最核心的服务之一,负责维护和管理云环境的计算资源,它在openstack项目中代号是nova
  • Nova自身并没有提供任何虚拟化能力,它提供计算服务,使用不同的虚拟化驱动来与底层支持的Hypervisor(虚拟机管理器)进行交互。所有的计算实例(虚拟服务器)由Nova进行生命周期的调度管理(启动、挂起、停止、删除等)
  • Nova需要keystone、glance、neutron、cinder和swift等其他服务的支持,能与这些服务集成,实现如加密磁盘、裸金属计算实例等

1.1概括

  • openstack原生架构nova能提供虚拟化功能、资源(对实例的生命周期管理/提供虚拟化功能)
  • 核心服务nova是没有虚拟化能力的考的是自己虚拟化驱动通过驱动和底层虚拟化技术进行交互/调用操作

2.Nova系统架构


外部联系

  • DB:用于数据存储的sql数据库
  • Network:管理IP转发、网桥或虚拟局域网的nova网络组件
  • Keystone:安全认证的组件
  • Glance & Cinder:负责管理镜像的组件

内部结构

  • API:用于接收HTTP请求、转换命令、通过消息队列或HTTP与其他组件通信的nova组件
  • Scheduler:用于决定哪台计算节点承载计算实例的nova调度器
  • Compute:管理虚拟机管理器与虚拟机之间通信的nova计算组件
  • Conductor:处理需要协调(构建虚拟机或调整虚拟机大小)的请求,或处理对象转换

二、nova组件介绍

1.API(通信接口)

  • 是客户访问nova的http接口,它由nova-api服务实现,nova-api服务接收和响应来自最终用户的计算apI请求,作为openstack对外服务的最主要接口,nova-api提供了一个集中的可以查询所有api的端点

  • 所有对nova的请求都首先由nova-api处理,API提供REST标准调用服务,便于与第三方系统集成

  • 最终用户不会直接改送RESTful API请求,而是通过openstack命令行、dashbord和其他需要跟nova交换的组件来使用这些

  • 只要和虚拟机生命周期相关的操作nova-api都可以响应

  • nova-api对接收到的HTTP API请求做以下处理:
    1)检查客户端传入的参数是否合法有效
    2)调用nova其他服务来处理客户端HTTP请求
    3)格式化nova其他子服务返回结果并返回给客户端

  • nova-api是外部访问并使用nova提供的各种服务的唯一途径,也是客户端和nova之间的中间层

2.Scheduler(调度器)

  • Scheduler可译为调度器,由nova-scheduler服务实现,主要解决的是如何选择在哪个计算节点上启动实例的问题,它可以应用多种规则,如果考虑内存使用率,cpu负载率、cpu架构(Intel/amd)等多种因素,根据一定的算法,确定虚拟机实例能够运行在哪一台计算服务器上,nova-scheduler服务会从队列中接收一个虚拟机实例的请求,通过读取数据库的内容,从可用资源池中选择最合适的计算节点来创建新的虚拟机实例(调度器使用调度算法来确定计算节点)
  • 创建虚拟机实例时,用户会提出资源需求,如cpu、内存、磁盘各需要多少,openstack讲这些需求定义在实例类型中,用户只需指定使用哪个实例类型就可以了

2.1) nova调度器的类型

a.随机调度器(chance scheduler) :从所有正常运行nova-compute服务的节点中随机选择。

b.过滤器调度器(filter scheduler):根据指定的过滤条件以及权重选择最佳的计算节点,Filter又称为筛选器

调度器调度过程:主要分两个阶段

  • 通过指定的过滤器选择满足条件的计算节点,比如内存使用率小于50%,可以使用多个过滤器依次进行过滤(依次过滤,每次筛选过滤不符合条件的节点)
  • 对过滤之后的主机列表进行权重计算并排序,选择最优的计算节点来创建虚拟机实例(k8s中预选和优选的概念)

c.缓存调度器(caching scheduler):可看作随机调度器的一种特殊类型,在随机调度的基础上将主机资源信息缓存在本地内存中,然后通过后台的定时任务定时从数据库中获取最新的主机资源信息

2.2 过滤器

  1. 当过滤调度器需要执行调度操作时,会让过滤器对计算节点进行判断,返回True或False。
    在配置文件/etc/nova/nova.conf中

  2. scheduler_available_filters选项用于配置可用过滤器,默认是所有nova自带的过滤器都可以用于过滤作用
    另外还有一个选项scheduler_ default_ filters用于指定,nova-scheduler服务真正使用的过滤器(指定某种类型的过滤器)

过滤调度器将按照下列顺序依次过滤
RetryFilter(再审过滤器)
主要作用是过滤掉之前已经调度过的节点。如A、B、C都通过了过滤,A权重最大被选中执行操作,由于某种原因,操作在A上失败了。Nova-filter将重新执行过滤操作,那么此时A就被会RetryFilter直接排除, 以免再次失败(A可以标记为污点,重新使用需要去除污点,或者设置容忍机制可以在特殊情况下使用A节点)

AvailabilityZoneFilter (可用区域过滤器)
为提高容灾性并提供隔离服务,可以将计算节点划分到不同的可用区域中。Openstack默认有一个命名为nova的可用区域,所有的计算节点初始是放在nova区域中的。用户可以根据需要创建自己的一个可用区域。创建实例时,需要指定将实例部署在哪个可用区域中。Nova-scheduler执行过滤操作时,会使用AvailabilityZoneFilter不属于指定可用区域计算节点过滤掉

③RamFilter (内存过滤器)
根据可用内存来调度虚拟机创建,将不能满足实例类型内存需求的计算节点过滤掉,但为了提高系统资源利用率,Openstack在计算节点的可用内存时允许超过实际内存大小,超过的程度是通过nova.conf配置文件中
ram_allocation_ratio参数来控制的,默认值是1.5。
vi /etc/nova/nova.conf
ram_ allocation_ ratio=1 .5

④DiskFilter (硬盘调度器)
根据磁盘空间来调度虚拟机创建,将不能满足类型磁盘需求的计算节点过滤掉。磁盘同样允许超量,超量值可修改nova.conf中disk_allocation ratio参数控制,默认值是1.0
vi /etc/nova/nova.conf
disk_allcation_ratio=1.0
⑤coreFilter(核心过滤器)
根据可用cpu核心来调度虚拟机创建,将不能满足实例类型vCPU需求的计算节点过滤掉。vCPU也允许超量,超量值是通过修改nova.conf中
cpu_allocation_ratio参数控制,默认值是16
vi /etc/nova/nova.conf
cpu_allocation_ratio=16.0

ComputeFilter(计算过滤器)
保证只有nova-compute服务正常:工作的计算节点才能被nova-scheduler调度,它是必选的过滤器。

⑦ComputeCapablilitiesFilter (计算能力过滤器)
根据计算节点的特性来过滤,如x86_ 64和ARM架构的不同节点,将实例分别进行过滤

⑧ImagePropertiesFilter(镜像属性过滤器)
根据所选镜像的属性来筛选匹配的计算节点。通过元数据来指定其属性。如希望镜像只运行在KVM的Hypervisor上,可以通过Hypervisor Type属性来指定。

ServerGroupAntiAffinityFilter(服务器组反亲和性过滤器)
要求尽量将实例分散部署到不同的节点上。例如有3个实例s1、s2、s3, 3个计算节点A、B、C。具体操作如下:
创建一个anti-affinit策略的服务器组
openstack server group create -policy antiaffinity group-1
创建三个实例,将它们放入group-1服务器组
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s1
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s2
openstack server create -flavor m1.tiny -image cirros -hint group=group-1 s3
ServerGroupAffinityFilter(服务器组亲和性过滤器)
与反亲和性过滤器相反,此过滤器尽量将实例部署到同个计算节点上

2.3 权重(weight)

nova-scheduler服务可以使用多个过滤器依次进行过滤。过滤之后的节点再通过计算权重选出能够部署实例的节点。
注意:
所有权重位于nova/scheduler/weights目录下。目前默认实现是RAMweighter,根据计算节点空闲的内存量计算权重值,空闲越多,权重越大,实例将被部署到当前空闲内存最多的计算节点上

openstack源码位置 /usr/lib/python2.7/site-packages
权重源码位置 /usr/lib/python2.7site-packages/nova/scheduler/weights

3.Compute(计算器)

Nova-compute在计算节点上运行,负责管理节点上的实例
通常一个主机运行一个Nova-compute服务,一个实例部署在哪个可用的主机上取决于调度算法。OpenStack对实例的操作, 最后都是提交给Nova-compute来完成。
Nova-compute可分为两类
一类是定向openstack 报告计算节点的状态
另一类是实现实例生命周期的管理

3.1 支持方式

通过Driver (驱动)架构支持多种Hypervisor虚拟机管理器

  • 面对多种Hypervisor(虚拟层),nova-compute提供一个统一接口和底层虚拟化资源交互
  • 调用虚拟化资源和供给到openstack内部,都是通过driver的形式完成的

    两种方式调用
  • 虚拟化应用方式调用
  • LibVirt通用型工具,使用ioctl,调运具体资源使用的虚拟化技术(LXC是一种容器方式集成在内核中,早期docker依赖于LXC)

3.2 功能

1)定期向OpenStack 报告计算节点的状态

  • 每隔一段时间,nova-compute就会报告当前计算节点的资源使用情况(scheduler)和nova-compute服务状态
  • nova-compute是通过Hypervisor的驱动获取这些信息的
    2)实现虚拟机实例生命周期的管理
  • OpenStack对虚拟机实例最主要的操作都是通过nova-compute实现的。
    创建、关闭、重启、挂起、恢复、中止、调整大小迁移、快照
  • 以实例创建为例来说明nova-compute的实现过程。
    (1)为实例准备资源
    (2)创建实例的镜像文件
    (3)创建实例的XML定义文件
    (4)创建虚拟网络并启动虚拟机

总结

computer作用
1.负责执行具体的与实列生命周期/管理实例相关的工作
2.报告节点状态(写入数据库,保证sceduler读取数据库,数据库信息的实时性,celimetor,监控和管理openstack实例资源并汇报给用户/openstack,运维人员)

4.Conductor(管理器)

  • 由nova-conductor模块实现,旨在为数据库的访问提供一层安全保障。
    Nova-conductor作为nova-compute服务与数据库之间交互的中介,避免了直接访问由nova-compute服务创建对接数据库。对数据库分压
  • Nova-compute访问数据库的全部操作都改到nova-conductor中,nova-conductor作为对数据库操作的一个代理,而且nova-conductor是部署在控制节点上的
  • Nova-conductor 有助于提高数据库的访问性能,nova-compute可以创建多个线程使用远程过程调用(RPC)访问nova-conductor。
  • 在一个大规模的openstack部署环境里,管理员可以通过增加nova-conductor的数量来应付日益增长的计算节点对数据库的访问量

5.PlacementAPI(管理接口)

以前对资源的管理全部由计算节点承担,在统计资源使用情况时,只是简单的将所有计算节点的资源情况累加起来,但是系统中还存在外部资源,这些资源由外部系统提供。如ceph、nfs等提供的存储资源等。面对多种多样的资源提供者,管理员需要统一的、简单的管理接口来统计系统中资源使用情况,这个接口就是PlacementAPl。
PlacementAPI由nova-placement-api服务来实现,旨在追踪记录资源提供者的目录和资源使用情况。
被消费的资源类型是按类进行跟踪的。如计算节点类、共享存储池类、IP地址类等。

三、虚拟机实例化流程

用户可用通过多种方式访问虚拟机的控制台(通常在web页面操作)

  • Nova-novncproxy守护进程: 通过vnc连接访问正在运行的实例提供一个代理,支持浏览器novnc客户端。
  • Nova-spicehtml5proxy守护进程: 通过spice连接访问正在运行的实例提供一个代理,支持基于html5浏览器的客户端
  • Nova-xvpvncproxy守护进程: 通过vnc连接访问正在运行的实例提供一个代理,支持openstack专用的java客户端
  • Nova-consoleauth守护进程: 负责对访问虚拟机控制台提供用户令牌认证。这个服务必须与控制台代理程序共同使用。.

四、控制台接口

  • 首先用户(可以是OpenStack最终用户,也可以是其他程序)执行Nova Client提供的用于创建虚拟机的命令
  • nova-api服务监听到来自于Nova Client的HTTP请求,并将这些请求转换为AMQP消息之后加入消息队列。
  • 通过消息队列调用nova-conductor服务。
  • nova-conductor服务从消息队列中接收到虚拟机实例化请求消息后, 进行一些准备工作。
  • nova-conductor服务通过消息队列告诉nova-scheduler服务去选择一个合适的计算节点来创建虚拟机,此时nova-scheduler会读取数据库的内容。
  • nova-conductor服务从nova-scheduler服务得到了合适的将计算节点的信息后,在通过消息队列来通知nova-compute服务实现虚拟机的创建。

五、架构

1.Nova部署架构

(1)Nova经典部署架构
一个控制节点+多个计算节点

(2)Nova负载均衡部署架构
多个控制节点+多个计算节点+独立的数据库(MariaDB、RabbitMQ)

2.Nova的cell架构

(1)cell产生的原因

  • 当openstack nova集群的规模变大时,数据库和消息队列服务就会出现瓶颈问题。Nova为提高水平扩展及分布式、大规模的部署能力,同时又不增加数据库和消息中间件的复杂度,引入了Cell概念。
  • Cell可译为单元。为支持更大规模的部署,openstack将大的nova集群分成小的单元,每个单元都有自己的消息队列和数据库,可以解决规模增大时引起的瓶颈问题。在Cell中,Keystone、Neutron、Cinder、Glance等资源是共享的
    Cells V2的架构

(2)cell架构图

API节点上的数据库

  • nova_api数据库中存放全局信息,这些全局数据表是从nova库迁过来的,如flavor (实例模型)、instance groups实例组)、quota (配额)
  • nova_ cell0数据库的模式与nova一样,主要用途就是当实例调度失败时,实例的信息不属于任何一个Cell,因而存放到nova_cell0数据库中。

总结:cell为了给数据库和conductor分压

单Cell部署

多Cell部署

六、nova的元数据(补充仅作了解)

  • 元数据作用是通过向虚拟机实例注入元数据信息,实例启动时获得自己的元数据,实例中的cloud-init工具根据元数据完成个性化配置工作。
  • Openstack将cloud-init定制虚拟机实例配置时获取的元数据信息分成两大类,元数据(metadata),用户数据(user data)。
  • 元数据指的是结构化数据,以键值对形式注入实例,包括实例自身的一些常用属性
    如主机名、网络配置信息(IP地址和安全组)、SSH密钥等。
  • 用户数据是非结构化数据,通过文件或脚本的方式进行注入,支持多种文件格式
    如gzip、shell、cloud-init配置文件等, 主要包括一些命令、脚本,比如shell脚本。
  • Openstack将元数据和用户数据的配置信息注入机制分为两种,一种是配置驱动器机制,另一种是元数据服务机制。

七、OpenStack-NOVA组件部署

Nova 计算服务为 OpenStack 云环境提供了计算能力,相关环境需要在控制节点和计算节点分别进行部署。

CT VM:192.168.100.20 NAT:192.168.190.20
​nova-api(nova主服务)
​nova-scheduler(nova调度服务)
​nova-condutor(nova数据库服务,提供数据库访问)
​nova-novncproxy(nova的vnc服务,提供实例的控制台)

C1 VM:192.168.100.21 NAT:192.168.190.21
C2 VM:192.168.100.22 NAT:192.168.190.22
nova-compute(nova计算服务)

1.在CT控制节点上配置 Nova 服务

CT VM:192.168.100.20 NAT:192.168.190.20

(1)创建数据库实例和授权

创建nova_api数据库,nova数据库,nova_cell库(单cell模式),并授权

mysql -uroot -pCREATE DATABASE nova_api;
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_api.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';CREATE DATABASE nova;
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';CREATE DATABASE nova_cell0;
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
GRANT ALL PRIVILEGES ON nova_cell0.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
flush privileges;
exit

(2)创建用户、修改配置文件

创建OpenStack的nova用户

#创建nova用户;验证openstack user list
openstack user create --domain default --password NOVA_PASS nova#向nova用户添加admin角色;验证openstack role assignment list验证,还要查role、user、project列表看id号
openstack role add --project service --user nova admin#创建nova服务实体;验证openstack service list
openstack service create --name nova --description "OpenStack Compute" compute


创建 compute API 服务端点

openstack endpoint create --region RegionOne compute public http://ct:8774/v2.1
openstack endpoint create --region RegionOne compute internal http://ct:8774/v2.1
openstack endpoint create --region RegionOne compute admin http://ct:8774/v2.1

安装nova相关组件软件包

yum -y install openstack-nova-api openstack-nova-conductor openstack-nova-novncproxy openstack-nova-scheduler


修改配置文件
备份配置文件,并删除空行和注释行

cp -a /etc/nova/nova.conf{,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf

添加/etc/nova/nova.conf配置

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.100.20
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova_api
openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:NOVA_DBPASS@ct/nova
openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:PLACEMENT_DBPASS@ct/placement
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS



初始化nova数据库,生成相关表结构

su -s /bin/sh -c "nova-manage api_db sync" nova
su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova     #初始化cell0数据库
su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova       #创建cell1数据库
su -s /bin/sh -c "nova-manage db sync" nova


验证 nova cell0 和 cell1 是否正确注册

su -s /bin/sh -c "nova-manage cell_v2 list_cells" nova


启动 Nova 服务并配置开机启动

systemctl start openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxysystemctl enable openstack-nova-api openstack-nova-scheduler openstack-nova-conductor openstack-nova-novncproxy

2.在C1、C2计算节点上配置 Nova 服务

C1 VM:192.168.100.21 NAT:192.168.190.21
C2 VM:192.168.100.32 NAT:192.168.190.22

(1)安装软件包并修改配置文件

yum -y install openstack-nova-compute
cp -a /etc/nova/nova.conf{,.bak}
grep -Ev '^$|#' /etc/nova/nova.conf.bak > /etc/nova/nova.conf

(2)修改配置文件

配置文件内容和ct节点内容一样,除了ip地址和[libvirt] virt_type = qemu指定创建的虚拟机类型

my_ip: 192.168.100.21/192.168.100.22

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
openstack-config --set /etc/nova/nova.conf DEFAULT transport_url rabbit://openstack:RABBIT_PASS@ct
openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 192.168.100.21
openstack-config --set /etc/nova/nova.conf DEFAULT use_neutron true
openstack-config --set /etc/nova/nova.conf DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers ct:11211
openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_type password
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken user_domain_name Default
openstack-config --set /etc/nova/nova.conf keystone_authtoken project_name service
openstack-config --set /etc/nova/nova.conf keystone_authtoken username nova
openstack-config --set /etc/nova/nova.conf keystone_authtoken password NOVA_PASS
openstack-config --set /etc/nova/nova.conf vnc enabled true
openstack-config --set /etc/nova/nova.conf vnc server_listen 0.0.0.0
openstack-config --set /etc/nova/nova.conf vnc server_proxyclient_address '$my_ip'
openstack-config --set /etc/nova/nova.conf vnc novncproxy_base_url http://ct:6080/vnc_auto.html
openstack-config --set /etc/nova/nova.conf glance api_servers http://ct:9292
openstack-config --set /etc/nova/nova.conf oslo_concurrency lock_path /var/lib/nova/tmp
openstack-config --set /etc/nova/nova.conf placement region_name RegionOne
openstack-config --set /etc/nova/nova.conf placement project_domain_name Default
openstack-config --set /etc/nova/nova.conf placement project_name service
openstack-config --set /etc/nova/nova.conf placement auth_type password
openstack-config --set /etc/nova/nova.conf placement user_domain_name Default
openstack-config --set /etc/nova/nova.conf placement auth_url http://ct:5000/v3
openstack-config --set /etc/nova/nova.conf placement username placement
openstack-config --set /etc/nova/nova.conf placement password PLACEMENT_PASS
openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu


(3)判断计算机是否支持虚拟机硬件加速

egrep -c '(vmx|svm)' /proc/cpuinfo
返回4是开启的 0没有开启
查看/etc/nova/nova.conf 中的
[libvirt]
virt_type = qemu

(4)开启 Nova 计算服务并配置开机启动

systemctl start libvirtd.service openstack-nova-compute.service
systemctl enable libvirtd.service openstack-nova-compute.service

3.CT控制节点后续操作

CT VM:192.168.100.20 NAT:192.168.190.20

(1)添加计算节点到 cell 数据库

openstack compute service list --service nova-compute
# 查看compute节点是否注册到controller上,通过消息队列;需要在controller节点执行

(2)发现计算节点

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova
#扫描当前openstack中有哪些计算节点可用,发现后会把计算节点创建到cell中,后面就可以在cell中创建虚拟机;相当于openstack内部对计算节点进行分组,把计算节点分配到不同的cell中

以后添加新的计算节点时,必须在控制器节点上运行 su -s /bin/sh -c “nova-manage cell_v2 discover_hosts --verbose” nova 以注册这些新的计算节点

(3)修改配置文件增加扫描间隔时间

默认每次添加个计算节点,在控制端就需要执行一次扫描,这样会很麻烦,所以可以修改控制端nova的主配置文件:

vim /etc/nova/nova.conf
[scheduler]
discover_hosts_in_cells_interval = 300     #没300秒扫描一次systemctl restart openstack-nova-api.service

(4)验证计算服务

列出服务组件以验证每个进程的成功启动和注册情况
openstack compute service list

列出身份服务中的API端点以验证与身份服务的连接
openstack catalog list

列出图像服务中的图像以验证与图像服务的连接性
openstack image list
检查Cells和placement API是否正常运行
nova-status upgrade check

openstack 【T版】(五)——部署nova组件相关推荐

  1. OpenStack 运维 - 部署Nova组件 [T版]

    OpenStack 运维 - 部署Nova组件 一.创建Nova数据库并执行授权操作 二.管理Nova用户及服务 ① 创建Nova用户 ② 创建Nova服务 ③ Nova关联endpoint端点 ④ ...

  2. OpenStack的部署T版(五)——Nova组件

    目录 一.Nova计算服务概念 Nova系统架构 二.Nova组件介绍 1.API 2.Scheduler调度器 Nova调度器的类型 过滤器 权重(weight) 3.Compute组件 Compu ...

  3. openstack“T版“nova组件部署

    文章目录 NOVA组件 Nova计算服务 Nova系统架构 Nova组件介绍 API Scheduler OpenStack-nova组件部署 NOVA组件 Nova计算服务 Nova系统架构 Nov ...

  4. OpenStack Victoria版——6.2计算节点-Nova计算服务组件

    6.2计算节点-Nova计算服务组件 更多步骤:OpenStack Victoria版安装部署系列教程 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 Ope ...

  5. 传统公司部署OpenStack(t版)简易介绍(五)——nova模块部署

    传统公司部署OpenStack(t版)简易介绍(五)--nova模块部署 一.nova组件部署位置 二.ct节点Nova服务配置 三.c1节点配置Nova服务(c2节点一样,只是配置文件的IP不同) ...

  6. OpenStack T版—Nova组件部署详解

    目录 一.Nova计算服务 1.1.Nova系统架构 1.2.Nova组件介绍-API 1.3.Nova组件介绍-Scheduler 1.3.1.Nova调度器的类型 1.3.2.过滤器调度器调度过程 ...

  7. (四)浅谈OpenStack T版服务组件--Nova计算服务(#^.^#)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.Nova简介 1.Nova的概念 2.Nova系统架构 二.Nova组件详解 1.Nova--API 2.Nova--S ...

  8. Openstack“T版“全组件手动部署

    Openstack"T版"全组件手动部署 部署Keystone 创建数据库实例和数据库用户 安装.配置keystone.数据库.Apache 初始化认证服务数据库 配置bootst ...

  9. OpenStack---T版-nova组件部署流程

    OpenStack---T版-nova组件部署流程 nova组件部署位置 计算节点Nova服务配置 nova组件部署位置 [控制节点ct] nova-api(nova主服务) nova-schedul ...

最新文章

  1. HDR sensor 原理介绍
  2. 独家 | 准备数据时如何避免数据泄漏
  3. 把Eclipse项目转换成Maven项目
  4. 分子生物学-氨基酸电中性与肽键
  5. 每天改變或學習一點點 終究聚沙成塔
  6. [No000022]他们说:得诺贝尔奖到底有多难?
  7. 面向数据结构设计的基本思想
  8. ubuntu中文输入法fcitx的安装以及出现方块的解决方法
  9. Php 取出session中的值,获取php值
  10. 力扣347. 前 K 个高频元素(JavaScript,堆)
  11. VB6(Fast Report Studio 4.6.80)
  12. 计算机电子贺卡制作圣诞节,圣诞节电子贺卡怎么制作?
  13. 移动通信核心网技术总结(二)电信网络发展趋势与CS网络架构
  14. pr关键帧动画、字幕、音频
  15. 无需安卓手游模拟器,电脑玩绝地求生:全军出击TC Games完美匹配手游服
  16. 【JS】问题——解决JS文件页面更新不生效问题
  17. c语言是世界上最好的语言搞笑图片,C++是世界上最好的语言!不服来辩! | 爆笑囧图...
  18. monkey稳定性测试详细介绍
  19. MFC 画笔功能实现
  20. 小米运动改步数不同步的原因找到了,尽然是这问题

热门文章

  1. Centos7 安装CUPS (安装斑马ZP450打印机驱动)
  2. Android 手机OAT升级后应用没有更新问题解析
  3. PHP打印调用堆栈的三种方法
  4. 基于javaweb+mysql的二手交易平台二手商城二手物品(前台、后台)
  5. geteditor p 取消自动_进自助洗车机之前请先确认自动驻车和电子手刹的状态哦
  6. CSS 奇思妙想边框动画
  7. 沪深A股分析数据投资参考信息API接口(JSON标准格式,Get请求方式)
  8. Windows常用快捷键(提高您的工作效率轻松完成日常工作)
  9. 贾扬清从阿里毕业了!
  10. html语言 日期和星期,日期 时间 星期的html代码是什么代码