OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案 第14讲 OpenStack的云主机管理者-Nova_第1页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案 第14讲 OpenStack的云主机管理者-Nova_第2页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案 第14讲 OpenStack的云主机管理者-Nova_第3页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案 第14讲 OpenStack的云主机管理者-Nova_第4页
OpenStack云计算平台搭建与管理(openEuler)(微课版) 教案 第14讲 OpenStack的云主机管理者-Nova_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

PAGE76云计算基础平台搭建与应用课程教案授课题目:第14讲OpenStack的云主机管理者——Nova教学时数:4授课类型:R理论课R实践课教学目的、要求:了解Nova的功能了解Nova的组件构成及功能了解Nova的基本工作过程能够安装配置Nova放置组件教学重点:Nova的组件构成及基本工作过程安装配置Nova服务教学方法和手段:通过微课讲解跟着视频实作教学条件:网课参考资料:

云计算基础平台搭建与应用课程教案教学内容及过程旁批课前准备:检查自己前面的系统配置是否完全完成,必须完成后才能进入这一段学习。并且先进行系统快照。教学引入:OpenStack云主机的创建和管理是由Nova组件负责的。安装Nova组件和前面的Keystone、Glance、Placement组件类似,但是它需要在两个节点(控制节点和计算节点)上进行安装,其中计算节点主机负责生成云主机。Nova是OpenStack中最核心的服务模块,负责管理和维护计算资源。比如平台提供的核心服务——云主机也称为实例(Instances)的整个生命周期的所有活动都由Nova管理。教学内容与教学设计:14.1Nova的基本概念14.1.1计算服务(Nova)Nova负责管理OpenStack中云主机实例的创建、删除、启动、停止等。Nova位于Openstack架构的中心,其他服务或者组件(比如Glance、Placement、Cinder、Neutron等)对它提供支持。其中Glance为实例提供镜像、Cinder为实例提供块存储、Neutron为实例提供网络支持。Nova自身并没有任何虚拟化能力,它通过Libvirt(一种管理虚拟化平台的开源应用接口)来创建和管理云主机。LibvirtAPI是管理虚拟化平台的开源的应用接口,提供对多种虚拟化技术如KVM、Xen、VMwareESX,QEMU和其他虚拟化技术的统一接口服务。14.1.2Nova计算服务的组件架构Nova这一组件由许多的小组件组成,主要组件如图14.1所示。图14.1Nova的模块组成Nova-api接收和响应外部请求,也是外部可用于管理NOVA的唯一组件。它是对外的窗口,负责与外部联系并响应用户的请求。Nova-scheduler虚拟机调度服务,与Placement合作,负责从计算机集群中选择某一主机去创建虚拟机。Nova-computeNova的核心服务,负责虚拟机的创建以及资源的分配。它本身并不提供任何虚拟化功能,但它却通过LibvirtAPI实现生成、管理不同的虚拟机形式(如KVM、Xen、QEMU等)云主机。如图14.1所示,三个组件之间的信息并不是直接传递,而是通过消息队列(RabbitMQ)进行消息的传递。Nova-conductorNova还有一个重要的组件是Nova-conductor,它负责与数据库的连接管理,Nova中其他组件均通过它与数据库交互。14.1.3Nova的基本工作流程图14.2创建云主机基本流程通过图14.2我们可以知道,在OpenStack中创建实例的大致流程为:1.用户通过管理界面或命令行发起实例创建请求,Keystone从请求中获取用户相关信息并进行身份验证;2.验证通过后,用户获得认证Token,实例创建请求通过Nova-api传递给Nova-scheduler;3.Nova-scheduler进行实例创建目的主机的调度选择,主机选取完成后,请求转入Nova-compute;4.Nova-compute通过Nova-conductor从数据库中获取创建实例的信息,在成功获取实例信息后,Nova-compute分别与Glance、Neutron和Cinder交互以获取镜像资源、网络资源和云存储资源;5.一切资源准备就绪后,Nova-compute调用Libvirt接口来创建虚拟机。14.2安装与配置控制节点Nova计算服务14.2.1安装和配置Nova安装Nova软件包[root@controller~]#yuminstallopenstack-nova-apiopenstack-nova-conductoropenstack-nova-novncproxyopenstack-nova-scheduler-y以上语句共安装了四个软件,它们分别是:openstack-nova-api:Nova与外部的接口组件;openstack-nova-conductor:Nova数据库服务,提供数据库访问;openstack-nova-novncproxy:Nova的vnc服务,提供虚拟控制台,用户可以通过该控制台管理实例;nova-scheduler:Nova调度服务,以选择某台计算节点主机进行创建实例。安装软件包时和前面几章的组件一样会自动创建“nova”用户和同名的用户组。[root@controller~]#cat/etc/passwd|grepnovanova:x:162:162:OpenStackNovaDaemons:/var/lib/nova:/sbin/nologin[root@controller~]#cat/etc/group|grepnovanobody:x:99:novanova:x:162:nova如上面的语句执行后能获得数据,则说明“nova”用户和用户组已经创建成功。创建一个nova数据库并授权进入数据库[root@controller~]#mysql-uroot-p000000因为MariaDB数据库完全兼容MySql数据库,因此在使用方式上是与MySql数据库是一样的。该命令的参数“-u”后为用户名,“-p”后为密码,可以不需要空格。登录数据库成功后就进入如上画面。建立nova数据库Nova需要创建三个数据库,分别是nova、nova_api、nova_cell0数据库,我们采用下面三条语句进行创建:MariaDB[(none)]>CREATEDATABASEnova;MariaDB[(none)]>

CREATEDATABASEnova_api;MariaDB[(none)]>

CREATEDATABASEnova_cell0;为数据库授权分别给三个数据各授予nova用户从本地和远程的访问权限。数据库nova授权MariaDB[(none)]>GRANTALLPRIVILEGESONnova.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONnova.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';数据库nova_api授权MariaDB[(none)]>GRANTALLPRIVILEGESONnova_api.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONnova_api.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';数据库nova_cell0授权MariaDB[(none)]>GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';MariaDB[(none)]>GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';【提示】密码可以根据需要变更,不一定是'NOVA_DBPASS',但是需要记住更改后的密码,后面配置连接数据库的配置文件时会使用得到。退出数据库MariaDB[(none)]>exit;修改Nova配置文件该文件为“/etc/nova/nova.conf”。备份配置文件[root@controller~]#cp/etc/nova/nova.conf/etc/nova/nova.conf.bak去掉所有注释,生成新的配置文件[root@controller~]#grep-Ev'^$|#'/etc/nova/nova.conf.bak>/etc/nova/nova.conf编辑新的配置文件[root@controller~]#vi/etc/nova/nova.conf我们可以看到该文件内容已经不存在空行和注释行。接下来针对该配置文件进行如下修改。[DEFAULT]enabled_apis=osapi_compute,metadatatransport_url=rabbit://openstack:RABBIT_PASS@controller:5672/my_ip=0use_neutron=truefirewall_driver=nova.virt.firewall.NoopFirewallDriver[api]auth_strategy=keystone[api_database]connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova_api

[database]connection=mysql+pymysql://nova:NOVA_DBPASS@controller/nova[glance]api_servers=http://controller:9292[keystone_authtoken]www_authenticate_uri=http://controller:5000/auth_url=http://controller:5000/memcached_servers=controller:11211auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=serviceusername=novapassword=NOVA_PASS[oslo_concurrency]lock_path=/var/lib/nova/tmp[placement]region_name=RegionOneproject_domain_name=Defaultproject_name=serviceauth_type=passworduser_domain_name=Defaultauth_url=http://controller:5000/v3username=placementpassword=PLACEMENT_PASS[vnc]enabled=trueserver_listen=$my_ipserver_proxyclient_address=$my_ip【提示】“my_ip”是当前主机也就是控制节点的IP;在这个配置文件中要设置Nova与消息队列RabbitMQ、Placement、nova和nova_api两个数据库的连接,需要用到它们的用户名和密码,请根据你所实际更改的用户名和密码进行修改;在[keystone_authtoken]配置中设置的用户名(username)和密码(password)可以根据需求更改,但需要记住它们,它们必须和后面给Nova组件进行初始化时添加的用户名和密码一致;[oslo_concurrency]中“lock_path”用于存储并发文件的路径,其中“/var/lib/nova/”文件夹是Nova安装时就已经存在的,已经授予了nova用户权限,所以如果你在工作中需要更改目录,请注意权限问题。同步数据库将Nova本地文件信息传入数据库生成数据表:[root@controller~]#su-s/bin/sh-c"nova-manageapi_dbsync"nova[root@controller~]#su-s/bin/sh-c"nova-managecell_v2map_cell0"nova[root@controller~]#su-s/bin/sh-c"nova-managecell_v2create_cell--name=cell1--verbose"nova[root@controller~]#su-s/bin/sh-c"nova-managedbsync"nova验证novacell0和cell1是否正确注册[root@controller~]#su-s/bin/sh-c"nova-managecell_v2list_cells"nova14.2.2Nova组件初始化在OpenStack中创建nova用户并分配admin角色导入admin环境变量[root@controller~]#.admin-openrc在OpenStack中创建用户“nova”[root@controller~]#openstackusercreate--domaindefault--passwordNOVA_PASSnova该语句在default域中创建了一个名为nova,密码为NOVA_PASS的用户。【提示】这里的用户名和密码要和在配置文件中[keystone_authtoken]节里的用户名和密码一致。给用户“nova”设定角色为“admin”[root@controller~]#openstackroleadd--projectservice--usernovaadmin该语句为service项目下的nova用户添加一个admin角色,也就是让nova具有admin的权限。创建服务实体“nvoa”[root@controller~]#openstackservicecreate--namenovacompute该语句创建了一个名为nova,类型为compute的服务。创建Nova计算服务访问端点(Endpoint)创建为一般用户访问Nova服务的端点(Endpoint)[root@controller~]#openstackendpointcreate--regionRegionOnecomputepublichttp://controller:8774/v2.1创建为内部组件访问Nova服务的端点(Endpoint)[root@controller~]#openstackendpointcreate--regionRegionOnecomputeinternalhttp://controller:8774/v2.1创建为admin用户访问Nova服务的端点(Endpoint)[root@controller~]#openstackendpointcreate--regionRegionOnecomputeadminhttp://controller:8774/v2.1启动控制节点的Nova计算服务[root@controller~]#systemctlenableopenstack-nova-apiopenstack-nova-scheduleropenstack-nova-conductoropenstack-nova-novncproxy#开机启动[root@controller~]#systemctlstartopenstack-nova-apiopenstack-nova-scheduleropenstack-nova-conductoropenstack-nova-novncproxy#立即启动14.2.3验证控制节点的Nova计算服务这里我们采用三种方式来验证服务查看端口占用情况Nova服务会占用8774和8775端口,通过查看这两个端口的状态,可以判断nova服务是否已经运行。[root@controller~]#netstat-tnlup检验服务端点[root@controller~]#curlhttp://controller:8774能得到这样的返回数据说明服务正常。查看服务运行状态[root@controller~]#nova-statusupgradecheck可以看到四个Success,说明服务运行正常。14.3安装和配置计算节点Nova计算服务先确定计算节点主机已经启动,并用SSH客户端连上计算节点主机IP如:“0”。14.3.1安装和配置Nova安装Nova软件包[root@compute~]#yuminstallopenstack-nova-compute-y这里的安装用时比较长,需要耐心等待。安装完成后与控制节点一样会自动生成Linux的用户“nova”和同名用户组。[root@compute~]#cat/etc/passwd|grepnovanova:x:162:162:OpenStackNovaDaemons:/var/lib/nova:/sbin/nologin[root@compute~]#cat/etc/group|grepnovanobody:x:99:novaqemu:x:107:novalibvirt:x:991:novanova:x:162:nova修改Nova配置文件该文件为“/etc/nova/nova.conf”。备份配置文件[root@compute~]#cp/etc/nova/nova.conf/etc/nova/nova.conf.bak去掉所有注释,生成新的配置文件[root@compute~]#grep-Ev'^$|#'/etc/nova/nova.conf.bak>/etc/nova/nova.conf编辑新的配置文件[root@compute~]#vi/etc/nova/nova.conf按照下面所示对文件进行修改[DEFAULT]enabled_apis=osapi_compute,metadatatransport_url=rabbit://openstack:RABBIT_PASS@controllermy_ip=0use_neutron=truefirewall_driver=nova.virt.firewall.NoopFirewallDriver[api]auth_strategy=keystone[glance]api_servers=http://controller:9292[keystone_authtoken]www_authenticate_uri=http://controller:5000/auth_url=http://controller:5000/memcached_servers=controller:11211auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=serviceusername=novapassword=NOVA_PASS[oslo_concurrency]lock_path=/var/lib/nova/tmp[placement]region_name=RegionOneproject_domain_name=Defaultproject_name=serviceauth_type=passworduser_domain_name=Defaultauth_url=http://controller:5000/v3username=placementpassword=PLACEMENT_PASS[vnc]enabled=trueserver_listen=server_proxyclient_address=$my_ipnovncproxy_base_url=0:6080/vnc_auto.html【提示】这里“my_ip”是当前主机也就是计算节点的IP;在这个配置文件中要设置Nova与消息队列RabbitMQ、Placement的连接,需要用到它们的用户名和密码,请根据你所实际更改的用户名和密码进行修改;在[keystone_authtoken]配置中设置的用户名(username)和密码(password)必须和控制节点配置的用户名和密码一致;[oslo_concurrency]中“lock_path”用于存储并发文件的路径,其中“/var/lib/nova/”文件夹是Nova安装后就已经存在的,已经授予了nova用户权限,所以如果你在工作中需要更改目录,请注意权限问题。虚拟机不支持硬件加速时的Nova设置[root@compute~]#grep-c'(vmx|svm)'/proc/cpuinfo如果得到的信息是0,那么说明计算节点不支持虚拟机硬件加速。我们就需要对“/etc/nova/nova.conf”再次进行修改,配置[libvirt]部分“virt_type”为使用QEMU而不是默认的KVM。如下进行修改:[libvirt]virt_type=qemu【提示】修改成qemu后并不会改变“grep-c'(vmx|svm)'/proc/cpuinfo”获得的值。启动计算节点的Compute服务[root@compute~]#systemctlenablelibvirtdopenstack-nova-compute#开机启动[root@compute~]#systemctlstartlibvirtdopenstack-nova-compute#立即启动【命令解释】Libvirtd:是管理虚拟化平台的开源的API,提供对KVM、Xen、VMwareESX,QEMU和其他虚拟化技术的统一管理接口服务。openstack-nova-compute:是管理虚拟机的核心服务,在计算节点上运行。14.3.2验证计算节点Nova计算服务我们可以通过查看线程运行情况来验证Nova计算服务的运行是否正常。查看nova-compute服务[root@compute~]#psaux|grepnova查看livirtd服务[root@compute~]#ps-aux|greplibvirtd14.4发现计算节点并验证服务本节任务操作均在控制节点上执行。14.4.1发现计算节点导入环境变量进行鉴权[root@controller~]#.admin-openrc发现新的计算节点[root@controller~]#su-s/bin/sh-c"nova-managecell_v2discover_hosts--verbose"nova由于OpenStack系统中可以有多个计算节点的存在,每增加一个新的节点就需要运行上面的语句进行发现。设置适当的自动发现时间间隔[root@controller~]#vi/etc/nova/nova.conf在配置文件中修改如下配置,间隔60秒自动发现一次[scheduler]discover_hosts_in_cells_interval=60重启nova-api服务[root@controller~]#systemctlrestartopenstack-nova-api14.4.2验证Nova计算服务查看计算服务列表[root@controller~]#openstackcomputeservicelist此语句查看运算单元的所有服务列表。这里可以看到有三个服务:nova-conductor、nova-scheduler、nova-compute。其中nova-conductor和nova-scheduler安装在控制节点,nova-compute安装在计算节点,它们都处于启用(enabled)和开启(up)状态。查看所有OpenStack服务及端点目录[root@controller~]#openstackcataloglist可以从上面看到OpenStack中已存在的四个服务名、类型和它们的服务端点(Endpoints)信息。查看Nova服务状态[root@controller~]#nova-statusupgradechec

温馨提示

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

评论

0/150

提交评论