OpenStack云计算平台搭建与管理教学教案共17单元14.docx
- 文档编号:3989284
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:29
- 大小:314.29KB
OpenStack云计算平台搭建与管理教学教案共17单元14.docx
《OpenStack云计算平台搭建与管理教学教案共17单元14.docx》由会员分享,可在线阅读,更多相关《OpenStack云计算平台搭建与管理教学教案共17单元14.docx(29页珍藏版)》请在冰豆网上搜索。
OpenStack云计算平台搭建与管理教学教案共17单元14
云计算基础平台搭建与应用课程教案
授课题目:
第14讲OpenStack的云主机管理者——Nova
教学时数:
4
授课类型:
理论课实践课
教学目的、要求:
了解Nova的功能
了解Nova的组件构成及功能
了解Nova的基本工作过程
能够安装配置Nova放置组件
教学重点:
Nova的组件构成及基本工作过程
安装配置Nova服务
教学方法和手段:
通过微课讲解
跟着视频实作
教学条件:
网课
参考资料:
云计算基础平台搭建与应用课程教案
教学内容及过程
旁批
课前准备:
检查自己前面的系统配置是否完全完成,必须完成后才能进入这一段学习。
并且先进行系统快照。
教学引入:
OpenStack云主机的创建和管理是由Nova组件负责的。
安装Nova组件和前面的Keystone、Glance、Placement组件类似,但是它需要在两个节点(控制节点和计算节点)上进行安装,其中计算节点主机负责生成云主机。
Nova是OpenStack中最核心的服务模块,负责管理和维护计算资源。
比如平台提供的核心服务——云主机也称为实例(Instances)的整个生命周期的所有活动都由Nova管理。
教学内容与教学设计:
14.1Nova的基本概念
第1篇
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的模块组成
(1)Nova-api
接收和响应外部请求,也是外部可用于管理NOVA的唯一组件。
它是对外的窗口,负责与外部联系并响应用户的请求。
(2)Nova-scheduler
虚拟机调度服务,与Placement合作,负责从计算机集群中选择某一主机去创建虚拟机。
(3)Nova-compute
Nova的核心服务,负责虚拟机的创建以及资源的分配。
它本身并不提供任何虚拟化功能,但它却通过LibvirtAPI实现生成、管理不同的虚拟机形式(如KVM、Xen、QEMU等)云主机。
如图14.1所示,三个组件之间的信息并不是直接传递,而是通过消息队列(RabbitMQ)进行消息的传递。
(4)Nova-conductor
Nova还有一个重要的组件是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
(1)安装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|grepnova
nova:
x:
162:
162:
OpenStackNovaDaemons:
/var/lib/nova:
/sbin/nologin
[root@controller~]#cat/etc/group|grepnova
nobody:
x:
99:
nova
nova:
x:
162:
nova
如上面的语句执行后能获得数据,则说明“nova”用户和用户组已经创建成功。
(2)创建一个nova数据库并授权
1进入数据库
[root@controller~]#mysql-uroot-p000000
因为MariaDB数据库完全兼容MySql数据库,因此在使用方式上是与MySql数据库是一样的。
该命令的参数“-u”后为用户名,“-p”后为密码,可以不需要空格。
登录数据库成功后就进入如上画面。
2建立nova数据库
Nova需要创建三个数据库,分别是nova、nova_api、nova_cell0数据库,我们采用下面三条语句进行创建:
MariaDB[(none)]>CREATEDATABASEnova;
MariaDB[(none)]> CREATEDATABASEnova_api;
MariaDB[(none)]> CREATEDATABASEnova_cell0;
3为数据库授权
分别给三个数据各授予nova用户从本地和远程的访问权限。
1)数据库nova授权
MariaDB[(none)]>GRANTALLPRIVILEGESONnova.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';
MariaDB[(none)]>GRANTALLPRIVILEGESONnova.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';
2)数据库nova_api授权
MariaDB[(none)]>GRANTALLPRIVILEGESONnova_api.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';
MariaDB[(none)]>GRANTALLPRIVILEGESONnova_api.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';
3)数据库nova_cell0授权
MariaDB[(none)]>GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'localhost'IDENTIFIEDBY'NOVA_DBPASS';
MariaDB[(none)]>GRANTALLPRIVILEGESONnova_cell0.*TO'nova'@'%'IDENTIFIEDBY'NOVA_DBPASS';
【提示】密码可以根据需要变更,不一定是'NOVA_DBPASS',但是需要记住更改后的密码,后面配置连接数据库的配置文件时会使用得到。
4退出数据库
MariaDB[(none)]>exit;
(3)修改Nova配置文件
该文件为“/etc/nova/nova.conf”。
1备份配置文件
[root@controller~]#cp/etc/nova/nova.conf/etc/nova/nova.conf.bak
2去掉所有注释,生成新的配置文件
[root@controller~]#grep-Ev'^$|#'/etc/nova/nova.conf.bak>/etc/nova/nova.conf
3编辑新的配置文件
[root@controller~]#vi/etc/nova/nova.conf
我们可以看到该文件内容已经不存在空行和注释行。
接下来针对该配置文件进行如下修改。
[DEFAULT]
enabled_apis=osapi_compute,metadata
transport_url=rabbit:
//openstack:
RABBIT_PASS@controller:
5672/
my_ip=192.168.14.10
use_neutron=true
firewall_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:
11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=nova
password=NOVA_PASS
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http:
//controller:
5000/v3
username=placement
password=PLACEMENT_PASS
[vnc]
enabled=true
server_listen=$my_ip
server_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用户权限,所以如果你在工作中需要更改目录,请注意权限问题。
(4)同步数据库
将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
(5)验证novacell0和cell1是否正确注册
[root@controller~]#su-s/bin/sh-c"nova-managecell_v2list_cells"nova
14.2.2Nova组件初始化
(1)在OpenStack中创建nova用户并分配admin角色
1导入admin环境变量
[root@controller~]#.admin-openrc
2在OpenStack中创建用户“nova”
[root@controller~]#openstackusercreate--domaindefault--passwordNOVA_PASSnova
该语句在default域中创建了一个名为nova,密码为NOVA_PASS的用户。
【提示】这里的用户名和密码要和在配置文件中[keystone_authtoken]节里的用户名和密码一致。
3给用户“nova”设定角色为“admin”
[root@controller~]#openstackroleadd--projectservice--usernovaadmin
该语句为service项目下的nova用户添加一个admin角色,也就是让nova具有admin的权限。
(2)创建服务实体“nvoa”
[root@controller~]#openstackservicecreate--namenovacompute
该语句创建了一个名为nova,类型为compute的服务。
(3)创建Nova计算服务访问端点(Endpoint)
1创建为一般用户访问Nova服务的端点(Endpoint)
[root@controller~]#openstackendpointcreate--regionRegionOnecomputepublichttp:
//controller:
8774/v2.1
2创建为内部组件访问Nova服务的端点(Endpoint)
[root@controller~]#openstackendpointcreate--regionRegionOnecomputeinternalhttp:
//controller:
8774/v2.1
3创建为admin用户访问Nova服务的端点(Endpoint)
[root@controller~]#openstackendpointcreate--regionRegionOnecomputeadminhttp:
//controller:
8774/v2.1
(4)启动控制节点的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计算服务
这里我们采用三种方式来验证服务
(1)查看端口占用情况
Nova服务会占用8774和8775端口,通过查看这两个端口的状态,可以判断nova服务是否已经运行。
[root@controller~]#netstat-tnlup
(2)检验服务端点
[root@controller~]#curlhttp:
//controller:
8774
能得到这样的返回数据说明服务正常。
(3)查看服务运行状态
[root@controller~]#nova-statusupgradecheck
可以看到四个Success,说明服务运行正常。
14.3安装和配置计算节点Nova计算服务
先确定计算节点主机已经启动,并用SSH客户端连上计算节点主机IP如:
“192.168.14.20”。
14.3.1安装和配置Nova
(1)安装Nova软件包
[root@compute~]#yuminstallopenstack-nova-compute-y
这里的安装用时比较长,需要耐心等待。
安装完成后与控制节点一样会自动生成Linux的用户“nova”和同名用户组。
[root@compute~]#cat/etc/passwd|grepnova
nova:
x:
162:
162:
OpenStackNovaDaemons:
/var/lib/nova:
/sbin/nologin
[root@compute~]#cat/etc/group|grepnova
nobody:
x:
99:
nova
qemu:
x:
107:
nova
libvirt:
x:
991:
nova
nova:
x:
162:
nova
(2)修改Nova配置文件
该文件为“/etc/nova/nova.conf”。
1备份配置文件
[root@compute~]#cp/etc/nova/nova.conf/etc/nova/nova.conf.bak
2去掉所有注释,生成新的配置文件
[root@compute~]#grep-Ev'^$|#'/etc/nova/nova.conf.bak>/etc/nova/nova.conf
3编辑新的配置文件
[root@compute~]#vi/etc/nova/nova.conf
按照下面所示对文件进行修改
[DEFAULT]
enabled_apis=osapi_compute,metadata
transport_url=rabbit:
//openstack:
RABBIT_PASS@controller
my_ip=192.168.14.20
use_neutron=true
firewall_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:
11211
auth_type=password
project_domain_name=Default
user_domain_name=Default
project_name=service
username=nova
password=NOVA_PASS
[oslo_concurrency]
lock_path=/var/lib/nova/tmp
[placement]
region_name=RegionOne
project_domain_name=Default
project_name=service
auth_type=password
user_domain_name=Default
auth_url=http:
//controller:
5000/v3
username=placement
password=PLACEMENT_PASS
[vnc]
enabled=true
server_listen=0.0.0.0
server_proxyclient_address=$my_ip
novncproxy_base_url=http:
//192.168.14.10:
6080/vnc_auto.html
【提示】这里“my_ip”是当前主机也就是计算节点的IP;在这个配置文件中要设置Nova与消息队列RabbitMQ、Placement的连接,需要用到它们的用户名和密码,请根据你所实际更改的用户名和密码进行修改;在[keystone_authtoken]配置中设置的用户名(username)和密码(password)必须和控制节点配置的用户名和密码一致;[oslo_concurrency]中“lock_path”用于存储并发文件的路径,其中“/var/lib/nova/”文件夹是Nova安装后就已经存在的,已经授予了nova用户权限,所以如果你在工作中需要更改目录,请注意权限问题。
(3)虚拟机不支持硬件加速时的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”获得的值。
(4)启动计算节点的Compute服务
[root@compute~]#systemctlenablelibvirtdopenstack-nova-compute#开机启动
[root@compute~]#systemctlstartlibvirtdopenst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- OpenStack 计算 平台 搭建 管理 教学 教案 17 单元 14
![提示](https://static.bdocx.com/images/bang_tan.gif)