OpenStack原理及在华为云中的应用

1、什么是openstack

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

来源: https://www.openstack.org/software/

翻译:openstack是一个云操作系统,控制着一个大规模(数据中心级别)的资源池,资源池包含计算、存储和网络。给管理员提供一个仪表盘去控制资源池里所有资源,最终用户可以通过web页面下发(获得)这些资源。

Bare Metal:物理服务器  Virtual Machines:虚拟机  Containers:容器

Object Storage:对象存储  File Storage:文件存储  Block Storage:块存储

Dashboard(GUI):仪表盘  Monitoring & Tools:监控工具

YOUR APPLICATIONS:用户的程序

Control Plane:控制平面

2、云与操作系统

虚拟化与云计算的区别

虚拟化是将物理资源分配给多个虚拟机,提高硬件资源利用率,重点在于分配物理资源的能力

云计算通过管理众多云虚拟机对外提供服务,重点在于提供服务。并且能够多租户之间隔离,按需使用、按量计费

操作系统功能

云也被当成操作系统,因为它也提供了:资源抽象、资源分配与负载调度、应用生命周期管理、系统运维、人机交互

3、openstack的定位

OpenStack只是云计算系统的控制面

为了构建一个云,我们还需要很多东西:

#资源池由虚拟化软件构造而来,如KVM、qemu、Xen、华为FusionSphere中的FusionCompute

4、openstack的设计理念

开放

1.开源。

2.尽最大可能重用已有开源项目。

灵活

1.不使用任何不可替代的私有/商业组件(如华为云用GaussDB替代MySQL)。

2.大量使用插件化方式进行架构设计与实现。

可拓展

1.由多个相互独立的项目组成。

2.每个项目包含多个独立服务组件。

3.无中心架构。

4.无状态架构(高可用)。

5、openstack的项目分层

#数据库默认为MySQL;消息队列默认为RabbitMQ

#华为云使用自己写的Console页面代替Horizon

6、openstack各主要项目间相互关系

在Dashboard[Horizon]上申请一台云虚拟机流程:Network[Neutron]提供网络,Block Storage[Cinder]提供卷,image[Glance]提供操作系统镜像(image不存储镜像,只存镜像目录,镜像实际存储在Object Storage[Swift]),然后交由Compute[Nova]创建虚拟机。在这个过程中Identity[Keystone]为各个独立的服务提供认证、鉴权服务。

7、openstack的物理部署示例

8、nova是什么

OpenStack中提供计算资源服务的项目

Nova负责:

  •   虚拟机生命周期管理
  •   其他计算资源生命周期管理

Nova不负责:

  •   承载虚拟机的物理主机自身的管理
  •   全面的系统状态监控

Nova是OpenStack事实上最核心的项目

9、nova逻辑架构

API接收简单用户请求(开关虚拟机)->Compute(计算节点)处理请求

API接收复杂用户请求(创建虚拟机)->Conductor(指令器)->Scheduler(调度器)选择空闲的Compute->Conductor发送指令给Compute

Compute中实际执行指令的是Hypervisor(虚拟机监视器)

10、nova物理部署示例

无中心结构、可水平扩展

通常将nova-api、nova-scheduler、nova-conductor组件合并部署在控制节点上

通过部署多个控制节点实现HA和负载均衡

通过增加控制节点和计算节点实现简单方便的系统扩容

11、nova中的核心概念

区域:地理概念,如东北区、华北区、华东区、华南区等。推荐用户就近获取资源

可用分区:一个区域内有多个可用分区,一个分区内有一个或多个数据中心,一个分区内使用同一套电力、网络等系统。推荐用户在不同可用区域做主备,提高可靠性,即使一个区域断电,也不影响备机继续提供服务

主机组:对用户不可见,一个分区内有多个主机组,将相同规格的主机归入一个主机组,如高cpu的主机、高内存的主机,根据用户业务调度对应的主机组进行服务

主机:对用户不可见,主机组内部有多台主机

名称 简介 说明
Server/Instance 虚拟机 Nova管理提供的云服务资源。Nova中最重要的数据对象。
Server metadata 虚拟机元数据 通常用于为虚拟机附加必要描述信息。key/value。
Flavor 虚拟机规格模板 用于定义一种虚拟机类型,如一种具有2个VCPU、4GB内、40GB本地存储空间的虚拟机。Flavor由系统管理员创建,供普通用户在创建虚拟机时使用。
Quota 资源配额 用于指定租户最多能够使用的逻辑资源上限。
Hypervisor / node 节点 对于KVM、Xen等虚拟化技术,一个node即对应于一个物理主机。对于vCenter , 一个node对应于一个cluster。
Host 主机 对于KVM、Xen等虚拟化技术,一个host即对应于一个物理主机,同时对应于一个node。对于vCenter,一个host对应于—套vCenter部著。
Host Aggregate 主机聚合 —个HA内包含若干host。一个HA内的物理主机通常具有相同的CPU型号等物理资源特性。
Server Group 虚拟机亲和性/反亲和组 同一个亲和性组的虚拟机,在创建时会被调度到相同的物理主机上。同一个反亲和性组的虚拟机,在创建时会被调度到不同的物理主机上,如主备系统。

12、nova的典型操作

分组 说明
虚拟机生命周期管理 虚拟机创建、删除、启动、关机、重启、重建、规格更改、暂停、解除暂停、挂起、继续、迁移、在线迁移、锁定、解锁、疏散,拯救,解拯救,搁置,删除搁置,恢复搁置,备份,虚拟机导出镜像、列表、详细信息、信息查询更改,密码修改
卷和快照管理操作 本质上是对Cinder API的封装。卷创建、删除、列表、详细信息查询。快照创建、删除、列表、详细信息查询
虚拟机卷操作 虚拟机挂卷、虚拟机卸卷、虚拟机挂卷列表、虚拟机挂卷详细信息查询
虚拟网络操作 本质上是对Neutron API的封装。虚拟网络创建、删除、列表、详细信息查询
虚拟机虚拟网卡操作 虚拟机挂载网卡、虚拟机卸载网卡、虚拟机网卡列表。
虚拟机镜像的操作 本质上是对Glance API的封装,支持镜像的创建、删除、列表、详细信息查询。
虚拟机HA 自研虚拟机的可靠性操作。可手动触发(FS5.1)。
其他资源其他操作 Flavor,主机组,keypairs , quota等

13、cinder是什么

为云平台提供统一接口按需分配的,持久化块存储服务。

核心功能是对卷的管理,允许对卷、卷的类型、卷的快照、卷备份进行操作。

为后端不同的存储设备提供了统一的接口,不同的块设备服务厂商在Cinder 中实现其驱动支持以与OpenStack进行整合。

14、cinder的逻辑架构

#右侧nova的架构漏写了Nova-Conductor

Cinder-API:接收外部请求、参数解析、配额检查

Cinder-Scheduler:调度器

Cinder-Volume:执行器,和Nova-Compute同级别

Cinder-Driver:驱动器

StorageBackend:后端存储

Nova在创建虚拟机到Nova-Compute这一步的时候Nova-Compute向Cinder-API发出创建卷请求,StorageBackend(后端存储)最终创建出这个卷,然后由Nova中的Volume Driver访问这个卷,访问过程中使用的是数据面的协议,不需要经过管理面(openstack)

15、cinder的典型组网(SAN存储)

16、cinder物理部署示例

Cinder-API通过负载均衡对外提供服务

Cinder内部通过消息队列通信

Cinder-Volume部署在管理面,管理后端存储,如SAN、华为FusionStorage等

17、cinder的典型操作

18、neutron是什么

网络连接即服务(network connectivity as a service)

#在服务提供者视图中,neutron可以用vs使处于不同物理机的VM虚拟机属于同一网络

19、neutron逻辑架构

#Neutron-Server -> Core Plugin -> 各种Advanced Service Plugin:L3 Service Plugin、lB Service Plugin、Firewall、VPN

#各种Agent:L2 ( ovs-agent )、L3 Agent、DHCP Agent、MetaData Agent

L2 Agent:二层网络服务,提供基础服务,部署在所有计算节点

L3 Agent:三层网络服务,提供IP、交换、路由服务,根据业务情况部署在网络节点或者计算节点,华为云部署在计算节点

DHCP Agent:DHCP服务

Adv Services:高级网络服务,如负载均衡

neutron组件之间通过消息队列通信

20、neutron网络虚拟化实现原理

在二层网络中Vlan100和Vlan200是两个不同的网络,因此在三层网络这里,使用Vlan100和使用Vlan200的虚拟机即使IP在同一网段也是不能通信的,做到了虚拟机间网络隔离。

21、neutron物理部署示例

#实际使用中Neutron server一般放到Controller node

#Neutron openvswitch-agent就是L2 Agent

#蓝色线:管理面网络

#红色线:数据面网络

22、neutron的典型操作

 

posted @   vorn  阅读(821)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示