文章目录

  • 一、实验目的
  • 二、实验环境
  • 三、实验内容
  • 4.1.在控制节点安装 nova 计算服务
  • 4.2.在 keystone 上面注册 nova 服务
  • 4.3.在控制节点安装 nova 相关服务
  • 4.4.同步 nova 数据(注意同步顺序)
  • 4.5.启动 nova 服务
  • 总结



一、实验目的

  1. 熟悉Linux基本服务配置;
  2. 理解OpenStack基本环境中各组件用途。

二、实验环境

  1. 实验资源 云主机Vultr、DigitalOCean等
  2. 软件环境 CentOS 7

三、实验内容

4.1.在控制节点安装 nova 计算服务

1)创建 nova 相关数据库
nova 服务新增加了两个数据库(Rocky 版)

mysql -u root -p123456
CREATE DATABASE nova_api;
 CREATE DATABASE nova;
 CREATE DATABASE nova_cell0;
 CREATE DATABASE placement;
 GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON nova_api.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON nova.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@‘localhost’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON nova_cell0.* TO ‘nova’@’%’ IDENTIFIED BY ‘nova’;
 GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@‘localhost’ IDENTIFIED BY ‘placement’;
 GRANT ALL PRIVILEGES ON placement.* TO ‘placement’@’%’ IDENTIFIED BY ‘placement’;
 flush privileges;
 show databases;
 select user,host from mysql.user;
 exit

云监控系统节点管理_openstack


云监控系统节点管理_云计算_02


云监控系统节点管理_mysql_03

4.2.在 keystone 上面注册 nova 服务

创建服务证书

1)在 keystone 上创建 nova 用户

source admin-openrc
 openstack user create --domain default --password=nova nova
 openstack user list

云监控系统节点管理_openstack_04


2)在 keystone 上将 nova 用户配置为 admin 角色并添加进 service 项目

以下命令无输出

openstack role add --project service --user nova admin

云监控系统节点管理_linux_05


3)创建 nova 计算服务的实体

openstack service create --name nova --description “OpenStack Compute” compute
 openstack service list

云监控系统节点管理_openstack_06


4)创建计算服务的 API 端点(endpoint)

计算服务 compute

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

云监控系统节点管理_云监控系统节点管理_07


云监控系统节点管理_linux_08


云监控系统节点管理_mysql_09


5)这个版本的 nova 增加了 placement 项目

创建并注册 placement 项目的服务证书

openstack user create --domain default --password=placement placement
 openstack role add --project service --user placement admin
 openstack service create --name placement --description “Placement API” placement

创建 placement 项目的 endpoint(API 端口)

openstack endpoint create --region RegionOne placement public http://controller:8778
 openstack endpoint create --region RegionOne placement internal http://controller:8778
 openstack endpoint create --region RegionOne placement admin http://controller:8778
 openstack endpoint list

云监控系统节点管理_openstack_10


云监控系统节点管理_linux_11


云监控系统节点管理_mysql_12


云监控系统节点管理_云计算_13

4.3.在控制节点安装 nova 相关服务

1)安装 nova 相关软件包

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

云监控系统节点管理_mysql_14


2)快速修改 nova 配置

openstack-config --set /etc/nova/nova.conf DEFAULT enabled_apis osapi_compute,metadata
 openstack-config --set /etc/nova/nova.conf DEFAULT my_ip 127.0.0.1
 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:openstack@controller
 openstack-config --set /etc/nova/nova.conf api_database connection mysql+pymysql://nova:nova@controller/nova_api
 openstack-config --set /etc/nova/nova.conf database connection mysql+pymysql://nova:nova@controller/nova
 openstack-config --set /etc/nova/nova.conf placement_database connection mysql+pymysql://placement:placement@controller/placement
 openstack-config --set /etc/nova/nova.conf api auth_strategy keystone
 openstack-config --set /etc/nova/nova.conf keystone_authtoken auth_url http://controller:5000/v3
 openstack-config --set /etc/nova/nova.conf keystone_authtoken memcached_servers controller: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
 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 glance api_servers http://controller: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://controller:5000/v3
 openstack-config --set /etc/nova/nova.conf placement username placement
 openstack-config --set /etc/nova/nova.conf placement password placement
 openstack-config --set /etc/nova/nova.conf scheduler discover_hosts_in_cells_interval 300
 openstack-config --set /etc/nova/nova.conf libvirt virt_type qemu校验生效的 nova 配置
 egrep -v “#|$” /etc/nova/nova.conf

云监控系统节点管理_云计算_15


云监控系统节点管理_云监控系统节点管理_16


云监控系统节点管理_云监控系统节点管理_17


云监控系统节点管理_openstack_18


3)修改 nova 的虚拟主机配置文件

vi /etc/httpd/conf.d/00-nova-placement-api.conf

云监控系统节点管理_云计算_19


重启 httpd 服务

systemctl restart httpd

systemctl status httpd

云监控系统节点管理_openstack_20

4.4.同步 nova 数据(注意同步顺序)

nova_api 有 32 张表,placement 有 32 张表,nova_cell0 有 110 张表,nova 也有110 张表

1)初始化 nova-api 和 placement 数据库

su -s /bin/sh -c “nova-manage api_db sync” nova

云监控系统节点管理_mysql_21


云监控系统节点管理_云监控系统节点管理_22


云监控系统节点管理_mysql_23


云监控系统节点管理_mysql_24


2)初始化 nova_cell0 和 nova 数据库

注册 cell0 数据库

su -s /bin/sh -c “nova-manage cell_v2 map_cell0” nova

创建 cell1 单元

su -s /bin/sh -c “nova-manage cell_v2 create_cell --name=cell1 --verbose” nova

初始化 nova 数据库

su -s /bin/sh -c “nova-manage db sync” nova

检查确认 cell0 和 cell1 注册成功

su -s /bin/sh -c “nova-manage cell_v2 list_cells” nova

验证数据库

mysql -h127.0.0.1 -unova -pnova -e “use nova_cell0;show tables;”

mysql -h127.0.0.1 -unova -pnova -e “use nova;show tables;”

云监控系统节点管理_云计算_25


云监控系统节点管理_linux_26


云监控系统节点管理_云监控系统节点管理_27


云监控系统节点管理_linux_28


云监控系统节点管理_云计算_29


5)检查确认 cell0 和 cell1 注册成功

su -s /bin/sh -c “nova-manage cell_v2 list_cells” nova

云监控系统节点管理_mysql_30

4.5.启动 nova 服务

1)启动 nova 服务并设置为开机自启动

需要启动 nova 的 5 个服务

systemctl start openstack-nova-api.service openstack-nova-consoleauth.service 
 openstack-nova-scheduler.service openstack-nova-conductor.service 
 openstack-nova-novncproxy.service
 systemctl status openstack-nova-api.service openstack-nova-consoleauth.service 
 openstack-nova-scheduler.service openstack-nova-conductor.service 
 openstack-nova-novncproxy.service
 systemctl enable openstack-nova-api.service openstack-nova-consoleauth.service 
 openstack-nova-scheduler.service openstack-nova-conductor.service 
 openstack-nova-novncproxy.service
 systemctl list-unit-files |grep openstack-nova* |grep enabled

云监控系统节点管理_云监控系统节点管理_31


云监控系统节点管理_mysql_32


云监控系统节点管理_云计算_33


在控制节点安装 nova 计算服务就完成


总结

  Nova是OpenStack云中的计算组织控制器。支持OpenStack云中实例(instances)生命周期的所有活动都由Nova处理。这样使得Nova成为一个负责管理计算资源、网络、认证、所需可扩展性的平台。
  功能和特点:
1.实例生命周期管理
2.管理计算资源
3.网络和认证管理
4.REST风格的API
5.异步的一致性通信
6.Hypervisor透明:支持Xen,XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V
7.Nova是openstack中最核心的组件。openstack的其他组件归根结底是为Nova组件服务的
8.Nova服务是由多个子服务构成,子服务是通过RPC实现通信。服务之间有很松的耦合性
9.概念框架与逻辑框架的对应

  Nova 在整个 OpenStack 架构中的位置如下图:

云监控系统节点管理_openstack_34


Nova服务:

  1. nova-API :nova-api是nova组件的接口服务进程;nova-api向外暴露REST API接口(Endpoints)以提供服务; nova-api兼容Amazon EC2 API, 基于nova-api开发的工具可以管理OpenStack和Amazon EC2
  2. nova-compute :nova-compute在计算节点上管理虚拟机实例:创建、删除等的管理
  3. nova-scheduler :创建Instance时,用户需要CPU、内存等资源,nova-scheduler自动实现对CPU等资源的调度;
  4. nova-conductor :nova-conductor实现数据库访问,为nova-compute提供instances信息。
    基于安全和可扩展性的考虑,nova-compute不直接访问数据库,而是分离出nova-conductor来
    访问数据库。
  5. nova-consoleauth :对访问虚拟机控台的请求提供Token认证
  6. Database :使用MySQL,位于控制节点,存放Nova运行时信息

控制节点架构:
控制节点包括以下服务
  管理支持服务
  基础管理服务
  扩展管理服务
  1)管理支持服务包含MySQL与Qpid两个服务
MySQL:数据库作为基础/扩展服务产生的数据存放的地方
Qpid:消息代理(也称消息中间件)为其他各种服务之间提供了统一的消息通信服务
  2)基础管理服务包含Keystone,Glance,Nova,Neutron,Horizon五个服务
Keystone:认证管理服务,提供了其余所有组件的认证信息/令牌的管理,创建,修改等等,使用MySQL作为统一的数据库
Glance:镜像管理服务,提供了对虚拟机部署的时候所能提供的镜像的管理,包含镜像的导入,格式,以及制作相应的模板
Nova:计算管理服务,提供了对计算节点的Nova的管理,使用Nova-API进行通信
Neutron:网络管理服务,提供了对网络节点的网络拓扑管理,同时提供Neutron在Horizon的管理面板
Horizon:控制台服务,提供了以Web的形式对所有节点的所有服务的管理,通常把该服务称为DashBoard
  3)扩展管理服务包含Cinder,Swift,Trove,Heat,Centimeter五个服务
Cinder:提供管理存储节点的Cinder相关,同时提供Cinder在Horizon中的管理面板
Swift:提供管理存储节点的Swift相关,同时提供Swift在Horizon中的管理面板
Trove:提供管理数据库节点的Trove相关,同时提供Trove在Horizon中的管理面板
Heat:提供了基于模板来实现云环境中资源的初始化,依赖关系处理,部署等基本操作,也可以解决自动收缩,负载均衡等高级特性。
Centimeter:提供对物理资源以及虚拟资源的监控,并记录这些数据,对该数据进行分析,在一定条件下触发相应动作
  控制节点一般来说只需要一个网络端口用于通信/管理各个节点