OpenStack云计算平台搭建与管理(openEuler)(微课版) 课件项目9 计算服务(Nova)安装_第1页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 课件项目9 计算服务(Nova)安装_第2页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 课件项目9 计算服务(Nova)安装_第3页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 课件项目9 计算服务(Nova)安装_第4页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 课件项目9 计算服务(Nova)安装_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程OpenStack云计算平台

搭建与管理项目8计算服务(Nova)安装第18讲安装Nova组件学习目标【知识目标】(1)了解Nova的功能。(2)了解Nova的组件架构。(3)了解Nova的基本工作流程。【技能目标】(1)能够安装与配置Nova组件。(2)能够初始化Nova用户与服务。(3)能够用手动和自动两种方式发现计算节点。(4)能够用命令检测Nova服务。引例描述

安装好负责系统安全的Keystone、负责镜像管理的Glance、负责资源监控的Placement这几个OpenStack云计算平台组件后,小王有了新的思考,谁负责OpenStack云计算平台的核心业务,即云主机的创建和管理呢?项目陈述

IaaS云计算平台的核心业务是将资源池中的资源虚拟化成基础硬件为用户提供服务,云主机就是集成这些基础硬件而得到的网上计算机。对于用户来说,云主机除了不能直接触摸以外,其使用起来和一般的计算机没有太大区别。小王经过调研得知,OpenStack云计算平台用计算组件Nova对云主机在其整个生命周期内进行管理,包括云主机的创建、开机、关机、挂起、删除等。

本项目将在控制节点和计算节点为OpenStack云计算平台安装Nova组件。

Nova负责管理OpenStack中云主机实例的创建、删除、启动、停止等。Nova位于OpenStack架构的中心,其他服务或者组件(如Glance、Placement、Cinder、Neutron等)对它提供支持。Nova自身并没有任何虚拟化能力,它通过虚拟机管理器(Hypervisor)来创建和管理云主机。Hypervisor为多种虚拟化程序(如KVM、Xen、VMwareESX、QEMU)提供统一接口服务。Nova的基本概念Nova的组件架构——Nova的模块构成Nova这一组件功能强大且结构复杂,由多种模块组成,这些模块分属若干单元(Cell)。每个单元又是若干计算节点的集合。模块功能介绍nova-api该模块用于接收和响应外部请求,也是外部可用于管理Nova的唯一入口nova-scheduler该模块负责虚拟机调度服务,与Placement合作,负责从计算机集群中选择某一主机创建虚拟机Nova的组件架构——Nova的单元管理模式OpenStack中的计算节点被分成若干小单元进行管理,除了顶层管理单元“cell0”外,每个单元都有自己的消息队列和数据库,“cell0”只有数据库。其中单元“cell0”包含接口模块(nova-api)和调度模块(nova-scheduler)。而其余的单元如“cell1”“cell2”负责具体的云主机实例的创建与管理。为Nova各个单元服务的数据库一共有3个,分别是“nova_api”“nova_cell0”“nova”。顶层管理单元“cell0”使用了“nova_api”“nova_cell0”数据库。“nova_api”数据库存放的是全局信息,如单元的信息、实例类型(创建云主机的模板)信息等。“nova_cell0”数据库的作用是当某台云主机调度失败时,此时云主机的信息将不属于任何一个单元,而只能存放到“nova_cell0”数据库中,因此“nova_cell0”数据库用于存放云主机调度失败的数据以集中管理。而“nova”数据库为其他所有单元服务,存储单元中云主机的相关信息。第1步,nova-api接收到用户通过管理界面或命令行发起的云主机创建请求,并将其发送到消息队列中。第2步,nova-conductor从消息队列获得请求,从数据库获得如Cell单元的相关信息,再将请求和获得的数据放入消息队列。第3步,nova-scheduler从消息队列获得请求和数据以后,与Placement组件配合选择创建云主机的物理机,选择完成后,请求转入消息队列等待nova-compute处理。第4步,nova-compute从消息队列获得请求后,分别与Glance、Neutron和Cinder交互以获取镜像资源、网络资源和云存储资源。一切资源准备就绪后,nova-compute通过Hypervisor调用具体的虚拟化程序,如KVM、QEMU、Xen等,来创建虚拟机。Nova的基本工作流程项目实施在控制节点安装与配置Nova——安装Nova软件包[root@controller~]#yum-yinstallopenstack-nova-apiopenstack-nova-conductoropenstack-nova-scheduleropenstack-nova-novncproxy

在控制节点共安装了Nova的4个软件包,它们分别如下。“openstack-nova-api”:Nova与外部的接口模块。“openstack-nova-conductor”:Nova传导服务模块,提供数据库访问。“nova-scheduler”:Nova调度服务模块,用以选择某台主机进行云主机创建。“openstack-nova-novncproxy”:Nova的虚拟网络控制台(

VirtualNetworkConsole,VNC)代理模块,支持用户通过VNC访问云主机。在控制节点安装与配置Nova——创建Nova的数据库并授权第1步,用下面的方法进入MariaDB数据库服务器。[root@controller~]#mysql-uroot-p000000第2步,新建“nova_api”“nova_cell0”“nova”数据库。MariaDB[(none)]>CREATEDATABASEnova_api;MariaDB[(none)]>CREATEDATABASEnova_cell0;MariaDB[(none)]>CREATEDATABASEnova;第3步,给用户授权使用新建数据库。GRANTALLPRIVILEGESON数据库名.*TO'nova'@'localhost'IDENTIFIEDBY'000000';GRANTALLPRIVILEGESON数据库名.*TO'nova'@'%'IDENTIFIEDBY'000000';这里数据库名分别是“nova_api”“nova_cell0”“nova”,即6条语句。安装与配置Nova——创建Nova的数据库并授权检查授权情况[root@controller~]#mysql-unova-p000000[root@controller~]#mysql-unova-p000000-hcontroller都要能进入数据库,并且用“showdatabases;”都能看到nova的3个数据库。在控制节点安装与配置Nova——修改Nova配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@controller~]#

cp/etc/nova/nova.conf/etc/nova/nova.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@controller~]#grep-Ev'^$|#'/etc/nova/nova.bak>/etc/nova/nova.conf这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在控制节点安装与配置Nova——修改Nova配置文件(2)编辑新的配置文件第1步,打开配置文件进行编辑。#vi/etc/nova/nova.confproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=novapassword=000000第2步,修改“[api_database]”和“[database]”部分,实现与数据库“nova_api”“nova”的连接。[api_database]connection=mysql+pymysql://nova:000000@controller/nova_api[database]connection=mysql+pymysql://nova:000000@controller/nova第3步,修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone交互。[api]auth_strategy=keystone[keystone_authtoken]auth_url=http://controller:5000memcached_servers=controller:11211auth_type=password在控制节点安装与配置Nova——修改Nova配置文件第4步,修改“[placement]”部分,实现与Placement交互。[placement]auth_url=http://controller:5000auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=placementpassword=000000region_name=RegionOne第5步,修改“[glance]”部分,实现与Glance交互。[glance]api_servers=http://controller:9292第6步,修改“[oslo_concurrency]”,配置锁路径。[oslo_concurrency]lock_path=/var/lib/nova/tmp这里的“/var/lib/nova/tmp”是在安装软件包时由“nova”用户创建的,因此“nova”对它拥有所有权限。不要随意更改该路径。在控制节点安装与配置Nova——修改Nova配置文件第7步,修改“[DEFAULT]”部分,配置使用消息队列及防火墙等信息。[DEFAULT]enabled_apis=osapi_compute,metadatatransport_url=rabbit://rabbitmq:000000@controller:5672my_ip=0use_neutron=truefirewall_driver=nova.virt.firewall.NoopFirewallDriver第8步,修改“[vnc]”部分,配置VNC连接模式。[vnc]enabled=trueserver_listen=$my_ipserver_proxyclient_address=$my_ip文件内容中的“$”表示取变量值,因此“$my_ip”就是指在“[DEFAULT]”中定义的“my_ip”的值“0”。在控制节点安装与配置Nova——初始化Nova的数据库第1步,初始化“nova_api”数据库。[root@controller~]#sunova-s/bin/sh-c"nova-manageapi_dbsync"第2步,创建“cell1”单元,该单元将使用“nova”数据库。[root@controller~]#sunova-s/bin/sh-c"nova-managecell_v2create_cell--name=cell1"第3步,映射“nova”到“cell0”数据库,使“cell0”的表结构和“nova”的保持一致。[root@controller~]#sunova-s/bin/sh-c"nova-managecell_v2map_cell0"第4步,初始化“nova”数据库,由于映射的存在,在“cell0”中同时创建相同数据表。[root@controller~]#sunova-s/bin/sh-c"nova-managedbsync"在控制节点安装与配置Nova——检查单元注册情况用下列语句获得已注册的单元列表。[root@controller~]#nova-managecell_v2list_cells+--------+-------+-------------------+-----------------------------------------------------------------+----------+|名称

|UUID

|TransportURL|

数据库连接

|Disabled|+--------+-------+-------------------+------------------------------------------------------------------+----------+|cell0 |***** |********

|mysql+pymysql://nova:****@controller/nova_cell0|False||cell1 |***** |********

|mysql+pymysql://nova:****@controller/nova

|False|+--------+--------+------------------+-------------------------------------------------------------------+----------+可以看到,当前已经存在“cell0”和“cell1”两个单元。其中“cell0”是用于系统管理的,“cell1”是用于云主机管理的,每增加一个计算节点就应增加一个和“cell1”功能相同的单元。Nova组件初始化——创建Nova用户并分配角色第1步,导入环境变量模拟登录。[root@controller~]#.admin-login第2步,在OpenStack云计算平台中创建用户“nova”。#openstackusercreate--domaindefault--password000000nova第3步,给用户“nova”分配“admin”角色#openstackroleadd--projectproject--usernovaadminNova组件初始化——创建Nova服务及端点(1)创建服务创建名为“nova”、类型为“compute”的服务。#openstackservicecreate--namenovacompute(2)创建计算服务端点OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址。第1步,创建公众用户访问的服务端点。#openstackendpointcreate--regionRegionOnenovapublichttp://controller:8774/v2.1第2步,创建内部组件访问的服务端点。#openstackendpointcreate--regionRegionOnenovainternalhttp://controller:8774/v2.1第3步,创建Admin用户访问端点。[root@controller~]#openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.1Nova组件初始化——启动Nova服务首先,将安装的“openstack-nova-api”“openstack-nova-scheduler”“openstack-nova-conductor”“openstack-nova-novncproxy”四大模块设置为开机启动。[root@controller~]#systemctlenableopenstack-nova-apiopenstack-nova-scheduleropenstack-nova-conductoropenstack-nova-novncproxy

然后,将这4个模块立即启动。[root@controller~]#systemctlstartopenstack-nova-apiopenstack-nova-scheduleropenstack-nova-conductoropenstack-nova-novncproxy

检测控制节点的Nova服务1.查看端口占用情况由于Nova服务会占用8774和8775端口,通过查看这两个端口是否启用,可以判断Nova服务是否已经运行。[root@controller~]#netstat-nutpl|grep877tcp 0 0:8774 :* LISTEN 46716/python2tcp 0 0:8775 :*

LISTEN 46716/python2tcp6

0 0:::8778 :::*

LISTEN 41715/httpd2.查看计算服务列表[root@controller~]#openstackcomputeservicelist+----+---------------------+-------------+----------+------------+------+--------------------------------------------+|ID|Binary

|Host

|Zone

|Status

|State|UpdatedAt

|+----+---------------------+-------------+----------+------------+------+--------------------------------------------+|5|nova-conductor

|controller|internal|enabled

|up

|2021-09-22T12:58:44.000000||7|nova-scheduler

|controller|internal|enabled|up

|2021-09-22T12:58:45.000000|+----+---------------------+-------------+----------+------------+------+--------------------------------------------+在计算点安装与配置Nova——安装Nova软件包在计算节点只需要安装Nova的计算模块“nova-compute”,按照以下方法进行安装。[root@compute~]#yum-yinstallopenstack-nova-compute在计算节点安装与配置Nova——修改Nova配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@compute~]#

cp/etc/nova/nova.conf/etc/nova/nova.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@compute~]#grep-Ev'^$|#'/etc/nova/nova.bak>/etc/nova/nova.conf这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在计算节点安装与配置Nova——修改Nova配置文件(2)编辑新的配置文件第1步,打开配置文件进行编辑。#vi/etc/nova/nova.conf第2步,修改“[api]”与“[keystone_authtoken]”部分,实现与Keystone交互。[api]auth_strategy=keystone[keystone_authtoken]auth_url=http://controller:5000memcached_servers=controller:11211auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=novapassword=000000第3步,修改“[placement]”部分,实现与Placement交互。auth_url=http://controller:5000auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=placementpassword=000000region_name=RegionOne在计算节点安装与配置Nova——修改Nova配置文件第4步,修改“[glance]”部分,实现与Glance交互。api_servers=http://controller:9292第5步,修改“[oslo_concurrency]”,配置锁路径。lock_path=/var/lib/nova/tmp第6步,修改“[DEFAULT]”部分,配置使用消息队列、防火墙、云主机存储地址等信息。enabled_apis=osapi_compute,metadatatransport_url=rabbit://rabbitmq:000000@controller:5672my_ip=0use_neutron=truefirewall_driver=nova.virt.firewall.NoopFirewallDrivercompute_driver=libvirt.LibvirtDriverinstances_path=/var/lib/nova/instances/在计算节点安装与配置Nova——修改Nova配置文件第7步,修改“[vnc]”部分,配置VNC连接模式。[vnc]enabled=trueserver_listen=server_proxyclient_address=$my_ipnovncproxy_base_url=0:6080/vnc_auto.html第8步,配置“[libvirt]”部分,设置虚拟化类型为QEMU。[libvirt]virt_type=qemu文件内容中的“$”表示取变量值,因此“$my_ip”就是指在“[DEFAULT]”中定义的“my_ip”的值“192.168.10.20”。novncproxy_base_url的值是VNC控制台网页。启动计算节点Nova服务首先,设置开机启动服务。[root@compute~]#systemctlenablelibvirtdopenstack-nova-compute然后,立即启动服务。[root@compute~]#systemctlstartlibvirtdopenstack-nova-compute

其中的“libvirtd”是管理虚拟化平台的开源的接口应用,提供对KVM、Xen、VMwareESX,QEMU和其他虚拟化程序的统一管理接口服务。

发现计算节点并检验服务每当一个计算节点要加入系统时,需要在控制节点执行一次发现计算节点的操作,只有被控制节点发现的计算节点才能被映射为一个单元,成为OpenStack云计算平台中的一员。(1)导入环境变量模拟登录[root@controller~]#.admin-login

(2)发现新的计算节点[root@controller~]#sunova-s/bin/sh-c"nova-managecell_v2discover_hosts--verbose"Found2cellmappings.Found1unmappedcomputesincell:90764975-27f8-4673-e41c发现计算节点并检验服务(3)设置自动发现由于OpenStack系统中可以有多个计算节点的存在,每增加一个新的节点就需要执行上面的命令进行发现。可以设置每隔一段时间就自动执行发现命令一次。第1步,打开配置文件,修改“[scheduler]”,设置每隔60s自动执行发现一次。[root@controller~]#vi/etc/nova/nova.conf[scheduler]discover_hosts_in_cells_interval=60第2步,重启“nova-api”服务,使修改过的配置文件生效。[root@controller~]#systemctlrestartopenstack-nova-api验证Nova服务(1)查看计算服务列表用以下代码查看计算服务中各个模块的服务状态。[root@controller~]#openstackcomputeservicelist+----+----------------------+------------+-----------+------------+----------+-------------------------------------------+|ID|Binary

|Host |Zone

|Status|State|UpdatedAt

|+----+----------------------+-------------+----------+-------------+---------+-------------------------------------------+|5|nova-conductor |controller

|internal|enabled|up|2021-09-22T13:12:04.000000||7|nova-scheduler |controller|internal|enabled|up|2021-09-22T13:12:05.000000||8|nova-compute |compute

|nova|enabled|up|2021-09-22T13:11:57.000000|+----+----------------------+-------------+-----------+------------+---------+-------------------------------------------+在控制节点运行的“nova-conductor”“nova-scheduler”和在计算节点运行的“nova-compute”都处于启用(enabled)和开启(up)状态。验证Nova服务(2)查看所有OpenStack服务及端点列表用下面的代码查看OpenStack现有的服务和服务对应的端点列表。[root@controller~]#openstackcataloglist|nova

|compute |RegionOne || |

|internal:http://controller:8774/v2.1

|| |

|RegionOne || |

|admin:http://controller:8774/v2.1

|| |

|RegionOne ||

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论