小生博客:http://xsboke.blog.51cto.com
-------谢谢您的参考,如有疑问,欢迎交流
目录:
一、keystone详解 --------------- (openstack认证服务)
二、glance详解 ---------------(openstack镜像服务)
三、nova详解 ---------------(openstack计算服务)
四、neutron详解 ---------------(openstack网络服务)
五、cinder详解 ---------------(openstack存储服务)
一、 Keystone概述
1. Keystone提供认证、权限、服务列表三大功能:
1)认证:身份验证(identify)、令牌(token)
2. Keystione的关键术语:
4)Role(角色):定义用户的权限,openstack有几个内置的角色,admin,member等
5)Token(令牌):定义了令牌的有效时间和令牌中用户的权限,项目等基本信息
6)Service:对应业务模型服务,如计算(compute),存储(volume),镜像(Glance)等
7)Endpoint:服务的访问入口每个服务都会有自己的访问入口,也称之为访问端点。
Endpoint使用对象分为三类:
admin url –>给admin用户使用,Post:35357
internal url –> OpenStack内部服务使用来跟别的服务通信,Port:5000
public url –>其它用户可以访问的地址,Post:5000
3. keystone验证流程:以创建虚拟机的流程为例
用户从列表中选取tenant,再次向keystone请求,keystone验证通过后,返回与该tenant相关的catalog信息和token。
二、 glance概述
openstack中的镜像管理模块,存储了镜像的元数据
Glance在openstack中的位置:
1. Glance的概念
image identifiers/image URI:镜像标识
2. Image 状态
l saving:镜像正在被上传
l active:镜像可以使用了
l killed:镜像损坏或者不可用
l deleted:镜像被删除
3. disk format:镜像磁盘格式(取决于虚拟化类型)
raw:分配多少占用多少空间,性能好
vmdk:common format 开源社区通用的,规范化的磁盘格式
iso: optical disc光盘镜像,主要用来做归档之用
qcow2:主要用于qemu类型的虚拟机,特点是磁盘大小动态扩展,占多少用多少,但是其性能比raw差
aki、ari、ami:亚马逊
4. container format:容器格式
1)容器的作用:
2)容器的格式:
Bare:当不确定磁盘格式时,使用。
Ovf:模版
aki、ami、ari:亚马逊
3) image-create命令至少要接收三个参数:
--name:指定创建的镜像名
5. Glance的基本组件
glanceDB:glance存在数据库中的镜像元数据
三、 nova概述
nova在openstack中用于提供计算服务,由多个组件组成
nova的核心组件:
nova在openstack中的位置
1. nova的架构(组件)
2. 通过一个云主机的创建流程了解openstack及其组件nova的工作流程
大概流程来说:
第七步:novacompute交由底层的hypervisor创建虚拟机
虚拟机启动过程如下:
界面或命令行通过RESTful API向keystone获取认证信息。
界面或命令行通过RESTful API向nova-api发送一个boot instance的请求(携带auth-token)。
nova-api接受请求后向keystone发送认证请求,查看token是否为有效用户和token。
keystone验证token是否有效,如有效则返回有效的认证和对应的角色(注:有些操作需要有角色权限才能操作)。
通过认证后nova-api和数据库通讯。
初始化新建虚拟机的数据库记录。
nova-api通过rpc.call向nova-scheduler请求是否有创建虚拟机的资源(HostID)。
nova-scheduler进程侦听消息队列,获取nova-api的请求。
对于有符合虚拟机创建的主机,nova-scheduler更新数据库中虚拟机对应的物理主机信息。
nova-scheduler通过rpc.cast向nova-compute发送对应的创建虚拟机请求的消息。
nova-conductor从消息队队列中拿到nova-compute请求消息。
nova-conductor根据消息查询虚拟机对应的信息。
nova-conductor从数据库中获得虚拟机对应信息。
nova-conductor把虚拟机信息通过消息的方式发送到消息队列中。
glance-api向keystone认证token是否有效,并返回验证结果。
token验证通过,nova-compute获得虚拟机镜像信息(URL)。
neutron-server向keystone认证token是否有效,并返回验证结果。
token验证通过,nova-compute获得虚拟机网络信息。
cinder-api向keystone认证token是否有效,并返回验证结果。
token验证通过,nova-compute获得虚拟机持久化存储信息。
四、 neutron概述
neutron是在openstack m版才开始使用的,主要用于网络管理。
Neutron为使用者提供了整合多个不同的网络技术来最大化发挥网络功能的机制,并提供了通过三层转发及NAT配置和管理网络功能的API以实现负载均衡,边缘防火墙及ipsec ***等
1. neutron的功能
提供网络模型:flat、flatdhcp、vlan
IP地址管理:novanetwork需要管理虚拟机使用的IP地址,这些地址包含两类,一类是fixed ip,在虚拟机的整个生命周期中该IP地址都不会发生变化;另一类是floating ip,是动态的分配给虚拟机的,随时都可以收回
2. Openstack早期版本的网络方案
Flat:扁平
所有虚拟机在同一网段,
没有网路隔离功能,不需要dhcp,
需要通过文件注入的方式设置网络,
通过网络控制器(nova-network节点)对虚拟机实例进行NAT转换,实现与外部的通信
Flatdhcp模式
与扁平模式类似,也只有一个子网
不需要文件注入
Vlan模式
每个项目(project)分配一个vlan id,每个项目也可以有自己的独立的ip地址段,属于不同project的虚拟机连接到不同的网桥上,因此不同的project之间是隔离的,不会相互影响
每个project启动一个dnsmasq来配置虚拟机的fixedip
3. Neutron服务简介
neutron是一个分层架构,所有的请求都先到neutron server上,neutron server有多个API,用于提供各种功能,用户调用API后,内部通过RPC机制调用agent层的一些服务,这些agent有二层、三层的,agent相当于一个中间代理层,agent再会调用设备层相应的驱动来完成用户API所请求的功能。
4. Neutron的基本概念
Dhcp aget:负责处理dhcp请求,为网络分配IP
DHCP agent scheduler:DHCP agent与network的调度,即某个网络的DHCP请求要发向那个DHCP agent,如采用轮询调度算法
5. Neutron部署模式/模型
1) Single FLAT Network:单一扁平网络
所有虚拟机在同意网段
可以使用dhcp分配ip地址
不支持浮动IP(floating ip,不使用后释放)
2)Mutiple FLAT network:多个扁平网络模式
可以创建多个子网,每个项目可以连接一个或多个子网
不支持floatingip
3) provider router with privatenetwork:租户私有网络单个路由器
允许每个租户拥有多个自己的私有网络,私有网络通过路由器router连接至外部网络
支持浮动ip(floating ip)
4)Per-tenant Routers with privatenetwork:多路由器私网模式
子网重叠(overlapping):支持不同网络的子网重叠
每个租户可以自己定义自己的虚拟路由器和私有网络,为虚拟机绑定floating IP,目前此种部署模式是最常用且先进的。
部署novanetwork时至少需要两块网卡,一块作为public network,主要承载公网流量和openstack各个组建之间的流量,要能够访问公网,ip地址可以为内网地址也可以为公网地址;另一块作为internal network,承载虚拟机之间相互通信的流量,不需要为其分配ip地址,只需要保证它们物理上可以互联即可
5. nova network的主要配置选项有
Multihost:多主机模式,可以降低neutron的负载
五、 cinder块存储
只负责提供虚拟机存储
在openstack中,硬盘以vda、vdb、vdc这种方式显示
-
存储具体实现机制如图:
nova存储实现机制包括以下几个关键环节:
volume-api存储接口将存储信息通过调度方式发送至调度引擎scheduler。
调度引擎scheduler根据一定的算法,选择具体一个存储节点,发指令至该节点cinder-volume
cinder-volume接收到创建云硬盘(create_volume)指令值,创建逻辑卷LV,并发布逻辑单元(LUN)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。