一、Glance

  Glance是Openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找、注册和检索等。 Glance提供Restful API可以查询虚拟机镜像的metadata及获取镜像。 Glance可以将镜像保存到多种后端存储上,比如简单的文件存储或者对象存储。

    

glance 架构图

glance-api

glance-api 是系统后台运行的服务进程。 对外提供 REST API,响应 image 查询、获取和存储的调用。

glance-api 不会真正处理请求。 如果操作是与 image metadata(元数据)相关,glance-api 会把请求转发给 glance-registry; 如果操作是与 image 自身存取相关,glance-api 会把请求转发给该 image 的 store backend。

glance-registry

glance-registry 是系统后台运行的服务进程。 负责处理和存取 image 的 metadata

Glance 支持多种格式的 image,包括

二、Nova

  Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源。OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的。

用途与功能 :

1、 实例生命周期管理

2、管理计算资源

3、 网络和认证管理

4、REST 风格的 API

5、异步的一致性通信

6、Hypervisor 透明:支持Xen,XenServer/XCP,KVM, UML, VMware vSphere and Hyper-V

Nova 架构

nova创建虚拟机详细过程

1、界面或命令行通过RESTful API向keystone获取认证信息。

2、keystone通过用户请求认证信息,并生成auth-token返回给对应的认证请求。

3、界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。

4、nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。

5、keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。

6、通过认证后nova-api和数据库通讯。

7、初始化新建虚拟机的数据库记录。

8、nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(Host ID)。

9、nova-scheduler进程侦听消息队列,获取nova-api的请求。

10、nova-scheduler通过查询nova数据库中计算资源的情况,并通过调度算法计算符合虚拟机创建需要的主机。

11、对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。

12、nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。

13、nova-compute会从对应的消息队列中获取创建虚拟机请求的消息。

14、nova-compute通过rpc.call向nova-conductor请求获取虚拟机消息。(Flavor)

15、nova-conductor从消息队队列中拿到nova-compute请求消息。

16、nova-conductor根据消息查询虚拟机对应的信息。

17、nova-conductor从数据库中获得虚拟机对应信息。

18、nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。

19、nova-compute从对应的消息队列中获取虚拟机信息消息。

20、nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求glance-api获取创建虚拟机所需要镜像。

21、glance-api向keystone认证token是否有效,并返回验证结果。

22、token验证通过,nova-compute获得虚拟机镜像信息(URL)。

23、nova-compute通过keystone的RESTfull API拿到认证k的token,并通过HTTP请求neutron-server获取创建虚拟机所需要的网络信息。

24、neutron-server向keystone认证token是否有效,并返回验证结果。

25、token验证通过,nova-compute获得虚拟机网络信息。

26、nova-compute通过keystone的RESTfull API拿到认证的token,并通过HTTP请求cinder-api获取创建虚拟机所需要的持久化存储信息。

27、cinder-api向keystone认证token是否有效,并返回验证结果。

28、token验证通过,nova-compute获得虚拟机持久化存储信息。

29、nova-compute根据instance的信息调用配置的虚拟化驱动来创建虚拟机。

三、环境准备

1、三台机器:主机名:lichaohost1      (控制节点)集群网ip:192.168.206.137  租户网ip: 192.168.206.142  外网ip:192.168.206.143

主机名:lichaohost2        (计算节点)集群网ip:192.168.206.138   租户网ip: 192.168.206.144

主机名:lichaohost3        (储存节点)   集群网ip :192.168.206.139

2、控制节点端三块网卡:

ens33: 集群网 (组件相互通信)

ens37:租户网  (实例相互通信)

ens38:外网

3、计算节点两块网卡

ens33:集群网

ens37:租户网

4、储存节点一块网卡

ens33:集群网

5、每台机器最少4G内存

6、静态域名解析

7、免密登录

openstacke ocata版 官方网站:https://docs.openstack.org/ocata/index.html

四、搭建glance服务

注:此配置将映像存储在本地文件系统中。

1、控制节点:创建数据库

&1 登录数据库并创建数据库

mysql -u root -p
CREATE DATABASE glance;

&2   授予对glance数据库的正确访问权

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'localhost'  IDENTIFIED BY 'GLANCE_DBPASS';

GRANT ALL PRIVILEGES ON glance.* TO 'glance'@'%'   IDENTIFIED BY 'GLANCE_DBPASS';

2、控制节点:  宣告环境变量

. openrc  或者    source openrc

3、  控制节点:添加glance 用户

openstack user create --domain default --password=glance glance

4、 控制节点: 将admin角色添加到server项目的glance用户中

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

5、 控制节点:创建glance服务实体

openstack service create --name glance    --description "OpenStack Image" image

6、控制节点:创建服务API端点

#1

 openstack endpoint create --region RegionOne  image public http://lichaohost1:9292

#2

 openstack endpoint create --region RegionOne   image internal http://lichaohost1:9292

#3

openstack endpoint create --region RegionOne     image admin http://lichaohost1:9292

#4 查看服务端点

openstack  endpoint  list

7、控制节点:安装glance服务

yum install openstack-glance -y

8、控制节点:编辑/etc/glance/glance-api.conf文件

# 备份

# 编辑如下

[DEFAULT]

[cors]

[cors.subdomain]

[database]

connection = mysql+pymysql://glance:GLANCE_DBPASS@lichaohost1/glance

[glance_store]
stores = file,http
default_store = file
filesystem_store_datadir = /var/lib/glance/images/ [image_format] [keystone_authtoken]
auth_uri = http://lichaohost1:5000
auth_url = http://lichaohost1:35357
memcached_servers = lichaohost1:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance [matchmaker_redis] [oslo_concurrency] [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [paste_deploy]
flavor = keystone [profiler] [store_type_location_strategy] [task] [taskflow_executor]

9、控制节点: 编辑  /etc/glance/glance-registry.conf

#备份

#编辑如下

[DEFAULT]

[database]
connection = mysql+pymysql://glance:GLANCE_DBPASS@lichaohost1/glance [keystone_authtoken]
auth_uri = http://lichaohost1:5000
auth_url = http://lichaohost1:35357
memcached_servers = lichaohost1:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = glance
password = glance [matchmaker_redis] [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_policy] [paste_deploy]
flavor = keystone [profiler]

10、控制节点:同步数据库(导入表)

su -s /bin/sh -c "glance-manage db_sync" glance

11、控制节点:开启服务并设置开机自启

#  systemctl  restart openstack-glance-api.service  openstack-glance-registry.service
# systemctl enable openstack-glance-api.service openstack-glance-registry.service

12、控制节点:上传测试镜像

#

#   上传 测试镜像命令

openstack image create "cirros"   --file cirros-0.3.-x86_64-disk.img.   --disk-format qcow2 --container-format bare --public

# 查看 镜像列表

openstack  image list  

测试镜像存在

五、搭建nova计算服务

1、控制节点:创建数据库

&1 登录数据库并创建数据库

mysql -u root -p
CREATE DATABASE nova_api;
CREATE DATABASE nova;
CREATE DATABASE nova_cell0;

&2 给予正确使用数据库的权利

#  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';
# GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'localhost' IDENTIFIED BY 'NOVA_DBPASS';
# GRANT ALL PRIVILEGES ON nova.* TO 'nova'@'%' IDENTIFIED BY 'NOVA_DBPASS';
# 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';

2、控制节点:宣告环境变量

. openrc  或 source  openrc

3、控制节点:创建nova用户

openstack user create --domain default --password=nova  nova

4、控制节点:向nova用户添加管理(admin)角色

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

5、控制节点:创建nova服务实体

openstack service create --name nova   --description "OpenStack Compute" compute

6、控制节点:创建 API 服务端点

#   openstack endpoint create --region RegionOne compute public http://lichaohost1:8774/v2.1

#    openstack endpoint create --region RegionOne  compute internal http://lichaohost1:8774/v2.1

#  openstack endpoint create --region RegionOne  compute admin http://lichaohost1:8774/v2.1

# 查看

openstack endpoint list

7、控制节点:创建 placement 用户   ( 负责服务追踪,统计资源使用量的用户)

openstack user create --domain default --password=placement  placement

8、控制节点:向placement用户添加管理(admin)角色

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

9、控制节点:创建服务

openstack service create --name placement --description "Placement API" placement

10、控制节点:创建服务API端点

#   openstack endpoint create --region RegionOne placement public http://lichaohost1:8778

#  openstack endpoint create --region RegionOne placement internal http://lichaohost1:8778

#   openstack endpoint create --region RegionOne placement admin http://lichaohost1:8778

11、控制节点:安装nova

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

12、控制节点:编辑配置文件  /etc/nova/nova.conf

# 备份

#编辑如下

[DEFAULT]
my_ip=192.168.206.137
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
transport_url = rabbit://openstack:admin@lichaohost1
[api]
auth_strategy = keystone
[api_database]
connection = mysql+pymysql://nova:NOVA_DBPASS@lichaohost1/nova_api
[barbican] [cache] [cells] [cinder] [cloudpipe] [conductor] [console] [consoleauth] [cors] [cors.subdomain] [crypto] [database]
connection = mysql+pymysql://nova:NOVA_DBPASS@lichaohost1/nova
[ephemeral_storage_encryption] [filter_scheduler] [glance]
api_servers = http://lichaohost1:9292 [guestfs] [healthcheck] [hyperv] [image_file_url] [ironic] [key_manager] [keystone_authtoken]
auth_uri = http://lichaohost1:5000
auth_url = http://lichaohost1:35357
memcached_servers = lichaohost1:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova [libvirt] [matchmaker_redis] [metrics] [mks] [neutron] [notifications] [osapi_v21] [oslo_concurrency]
lock_path=/var/lib/nova/tmp [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [pci] [placement]
os_region_name = RegionOne
auth_type = password
auth_url = http://lichaohost1:35357/v3
project_name = service
project_domain_name = Default
username = placement
password = placement
user_domain_name = Default [quota] [rdp] [remote_debug] [scheduler] [serial_console] [service_user] [spice] [ssl] [trusted_computing] [upgrade_levels] [vendordata_dynamic_auth] [vmware] [vnc] enabled=true vncserver_listen=$my_ip vncserver_proxyclient_address=$my_ip [workarounds] [wsgi] [xenserver] [xvp]

#

#

#

13、控制节点:编辑配置文件  /etc/httpd/conf.d/00-nova-placement-api.conf   ( 服务追踪)

#添加内容如下

<Directory /usr/bin>
<IfVersion >= 2.4>
  Require all granted
</IfVersion>
<IfVersion < 2.4>
Order allow,deny
Allow from all
</IfVersion>
</Directory>

14、控制节点:重启httpd

15、控制节点:同步数据库

#    su -s /bin/sh -c "nova-manage api_db sync" nova

#    su -s /bin/sh -c "nova-manage cell_v2 map_cell0" nova

#    su -s /bin/sh -c "nova-manage cell_v2 create_cell --name=cell1 --verbose" nova     ( 创建证书的id  )

  #    su -s /bin/sh -c "nova-manage db sync" nova

15、控制节点:查看cell 证书的列表

nova-manage cell_v2 list_cells

16、控制节点:启动服务并设置开机自启

#  systemctl start 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 status openstack-nova-api.service openstack-nova-consoleauth.service openstack-nova-scheduler.service openstack-nova-conductor.service openstack-nova-novncproxy.service | grep active

17、计算节点: 安装 openstack-nova-compute

yum install openstack-nova-compute -y

18、计算节点:编辑配置文件 /etc/nova/nova.conf

#备份

#编辑内容如下

[DEFAULT]
my_ip=192.168.206.138
use_neutron = True
firewall_driver = nova.virt.firewall.NoopFirewallDriver
enabled_apis=osapi_compute,metadata
transport_url = rabbit://openstack:admin@lichaohost1 [api]
auth_strategy = keystone
[api_database] [barbican] [cache] [cells] [cinder] [cloudpipe] [conductor] [console] [consoleauth] [cors] [cors.subdomain] [crypto] [database]
[ephemeral_storage_encryption] [filter_scheduler] [glance]
api_servers = http://lichaohost1:9292 [guestfs] [healthcheck] [hyperv] [image_file_url] [ironic] [key_manager] [keystone_authtoken]
auth_uri = http://lichaohost1:5000
auth_url = http://lichaohost1:35357
memcached_servers = lichaohost1:
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = nova
password = nova [libvirt]
virt_type=qemu [matchmaker_redis] [metrics] [mks] [neutron] [notifications] [osapi_v21] [oslo_concurrency]
lock_path=/var/lib/nova/tmp [oslo_messaging_amqp] [oslo_messaging_kafka] [oslo_messaging_notifications] [oslo_messaging_rabbit] [oslo_messaging_zmq] [oslo_middleware] [oslo_policy] [pci] [placement]
os_region_name = RegionOne
auth_type = password
auth_url = http://lichaohost1:35357/v3
project_name = service
project_domain_name = Default
username = placement
password = placement
user_domain_name = Default [quota] [rdp] [remote_debug] [scheduler] [serial_console] [service_user] [spice] [ssl] [trusted_computing] [upgrade_levels] [vendordata_dynamic_auth] [vmware] [vnc]
enabled=true
vncserver_listen=0.0.0.0
vncserver_proxyclient_address=$my_ip
novncproxy_base_url = http://192.168.206.137:6080/vnc_auto.html
[workarounds] [wsgi] [xenserver] [xvp]

#

#

#

19、计算节点:查看是否支持虚拟化

egrep -c '(vmx|svm)' /proc/cpuinfo

20、计算节点:启动服务并设置开机自启

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

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

21、控制节点:查看计算节点的工作状态

openstack   compute  service list

22、控制节点:宣告环境变量

. openrc 或  source openrc

23、控制节点:列出管理的虚拟化类型

openstack hypervisor list

#查看计算节点

nova hypervisor-list

#  查看计算节点上有哪些虚拟机

nova hypervisor-servers lichaohost2

24、控制节点: 数据库同步计算节点

su -s /bin/sh -c "nova-manage cell_v2 discover_hosts --verbose" nova

25、查看服务及服务端点

openstack catalog list

26、更新nova服务的检测  ( 必须三个成功才说明运行成功)

nova-status upgrade check

openstack (4)---部署Glance镜像服务,Nova计算服务的更多相关文章

  1. OpenStack核心组件-nova计算服务

    1. nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...

  2. openstack核心组件——nova计算服务(7)

    云计算openstack核心组件——nova计算服务(7)   一.nova介绍:       Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 ...

  3. 云计算OpenStack核心组件---nova计算服务(7)

    一.nova介绍 Nova 是 OpenStack 最核心的服务,负责维护和管理云环境的计算资源.OpenStack 作为 IaaS 的云操作系统,虚拟机生命周期管理也就是通过 Nova 来实现的. ...

  4. CentOS7安装OpenStack(Rocky版)-04.安装Nova计算服务(控制节点)

    上一篇文章分享了glance镜像服务的安装配置,本文主要分享openstack的计算服务Nova的安装和配制方法 ------------------ 完美的分割线 ----------------- ...

  5. Openstack Nova 控制服务 和 计算服务 (六)

    Openstack Nova 控制服务 和 计算服务 (六) 引用: https://docs.openstack.org/ocata/zh_CN/install-guide-rdo/nova.htm ...

  6. OpenStack Train版-6.安装nova计算服务(计算节点)

    安装nova计算服务(computel01计算节点 192.168.0.20)安装软件包 yum install centos-release-openstack-train -y yum insta ...

  7. OpenStack Train版-5.安装nova计算服务(控制节点)

    nova计算服务需要在 控制节点 和 计算节点 都安装 控制节点主要安装 ​ nova-api(nova主服务)​ nova-scheduler(nova调度服务)​ nova-conductor(n ...

  8. CentOS7安装OpenStack(Rocky版)-05.安装一个nova计算节点实例

    上一篇文章分享了控制节点的nova计算服务的安装方法,在实际生产环境中,计算节点通常会安装一些单独的节点提供服务,本文分享单独的nova计算节点的安装方法 ----------------  完美的分 ...

  9. OpenStack中部署glance的步骤

    OpenStack中部署glance的步骤(基于Ubuntu14.04系统) author:headsen  chen   2017-10-13   08:34:35 个人原创,转载请注明作者,出处, ...

随机推荐

  1. CAD交互绘制矩形框(com接口)

    主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE dY1 直线的开始点y坐标 DOUBLE ...

  2. Analysis Of The Causes Of Internal Symmetry Of Hydraulic Motor

    The main reasons why hydraulic motors have this symmetrical internal structure are as follows: The   ...

  3. JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误

    JFinal项目eclipse出现Unknown column 'createtime' in 'order clause' 的错误,在本次项目中的原因是我的表中的字段信息中创建时间的字段是creat ...

  4. 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)

    出题:在已经排序的数组中,找出给定数字出现的次数: 分析: 解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数: ...

  5. 树莓派 - wiringPi

    wiringPi其实和BCM2835 library类似,也是通过memmap, IOmap来实现在用户空间直接操作底层寄存器 wiringPi http://wiringpi.com/ Wiring ...

  6. PHP:现有图片验证码类

    文章来源:http://www.cnblogs.com/hello-tl/p/7593022.html <?php class TL_Captcha_img{ private $image; / ...

  7. MySQL-----改

    改 **修改用户名** rename user 'username'@'IP address' to 'new username'@'IP address'; **修改密码** set passwor ...

  8. LeetCode(59)SPiral Matrix II

    题目 Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. F ...

  9. 【BZOJ 1202】 [HNOI2005]狡猾的商人 (加权并查集)

    题链:http://www.lydsy.com/JudgeOnline/problem.php?id=1202 Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪 ...

  10. STM32F407 开发环境搭建 程序下载 个人笔记

    详细资料: http://www.openedv.com/thread-13912-1-1.html 需要安装的软件: 1.keil(MDK,必选),用keygen破解 2.CH340驱动,(usb串 ...