baby sword‘s blog baby sword‘s blog
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)

zhengjian

不敢承担失去的风险,是不可能抓住梦想的
首页
  • java基础
  • java进阶
大数据
  • mysql

    • mysql索引
    • mysql日志
  • redis

    • 单机下的redis
    • 集群下的redis
  • Spring
  • springboot
  • RPC
  • netty
  • mybatis
  • maven
  • 消息队列
  • kafka
  • zookeeper
  • rocketmq
  • 七大设计原则
  • 创建型模式
  • 结构型模式
  • 行为型模式
  • SpringCloud

    • eureka
  • SpringCloud Alibaba

    • nacos
  • 计算机网络
  • 操作系统
  • 算法
  • 个人项目
  • 个人面试面经
  • 八股记忆
  • 工作积累
  • 逻辑题
  • 面试

    • 百度后端实习二面
GitHub (opens new window)
  • 华仔聊技术

  • 业务设计

  • 场景设计

  • 运维

  • 安全

  • 面试

  • mac相关工具推荐

  • 开发工具

  • 人工智能

  • 推荐

  • 阅读

  • 工具

  • 计划

  • 产品

  • 云原生

  • go

  • QVM

    • OpenStack

      • openStack在华为云的应用
        • 一.OpenStack简介
          • 1. 云计算和虚拟化的区别
          • 2. openStack是一个云操作系统
          • 3. OpenStack的定位
          • 4. 项目分层
          • 5. 各个组件之间的关系
        • 二.核心组件详解
          • 1. Nova
          • ①逻辑架构
          • ②物理部署
          • ③核心概念1
          • ④核心概念2
          • ⑤典型操作
          • 2.Cinder
          • ①逻辑架构
          • ②Cinder典型组网(SAN存储)
          • ③物理部署
          • ④典型的操作
          • 3.neutron
          • ①逻辑架构
          • ②网络虚拟化原理
          • ③物理部署示例
          • ④典型操作
    • K8S

    • kubevirt

  • 软件设计师

  • 极客时间

  • 单元测试

  • 其他
  • QVM
  • OpenStack
xugaoyi
2023-08-24
目录

openStack在华为云的应用

# 一.OpenStack简介

# 1. 云计算和虚拟化的区别

  • 虚拟化

将物理机通过一定的技术进行虚拟化,分割成逻辑上互相隔离的服务器。主要是提升物理机的资源利用率。环境隔离,降低隔离损耗,提升运行效率。对特定的硬件做一些虚拟化。

更加聚焦于硬件

  • 云计算

聚焦的是服务。按需使用。多租户隔离。

两者关系:云计算的基础是虚拟化

# 2. openStack是一个云操作系统

类比windows、linux操作系统。

操作系统的功能

  • 抽象资源

资源隔离。例如将网络、cpu等进行抽象,然后对供给上层的软件进行使用。

同样的OpenStack可以将物理机中网络资源、cpu资源、存储资源等进行封装,以统一接口api的方式提供给上层

  • 资源分配与负载调度

一般一些软件也是由操作系统来进行资源的分配。

云上会跑很多应用软件,而OpenStack会负责这些软件之间如何进行调度。

  • 应用生命周期管理

安装软件、卸载软件。OpenStack也具有相似的功能,如创建虚拟机,关闭虚拟机等。

  • 系统运维

监控系统的资源使用了多少

  • 人机交互

通过界面进行操作。

image-20230825102131889

将各个物理机的计算资源、网络资源、存储资源进行抽象,形成一个操作系统,提供上层服务。

# 3. OpenStack的定位

OpenStack是一个云计算系统的控制面

是什么事控制面?一个复杂的系统,可以抽象为两个层次---控制面:执行面

例如计算机系统中:

cpu就是控制面,而网卡磁盘就是执行面

人的大脑是控制面,人的四肢就是执行面。

image-20230824154832021

最底层为硬件设施。需要向上进行抽象虚拟,变为Resource Pool即资源池,也就是一个个虚拟出来的虚拟机。OpenStack就相当于一个控制面来操控这些资源,并进一步进行抽象向上层提供统一的api。

OpenStack特性

开源:

灵活:可插拔,提供插件。

image-20230824155449143

可扩展

image-20230824155502631

从一台机器可逐渐扩展到1000台机器

因为由很多相互独立的组件构成,是一个无中心化、无状态的架构

# 4. 项目分层

image-20230824160009199

# 5. 各个组件之间的关系

image-20230824160303911

network提供网络服务,提供存储服务,虚拟机需要操作系统,image提供镜像服务,镜像本身存储在对象存储里面,另外,各个组角之间需要通过identity进行鉴权,dashboard通过rest api与各个组件进行交互

![image-20230824161703579](/Users/zhengjian/Library/Application Support/typora-user-images/image-20230824161703579.png)

# 二.核心组件详解

# 1. Nova

Nova是什么

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

负责:

  • 虚拟机生命周期管理

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

不负责

  • 承载虚拟机的物理主机自身的管理·

  • 全面的系统状态监控

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

# ①逻辑架构

image-20230824162603133

  1. 如果调用API执行一个打开虚拟机的指令。api接收到指令后,会直接调用通过message【默认rabbitmq】下发指令到compute,然后通过Hypervisor去执行打开虚拟机的任务。

什么是Hypervisor? Hypervisor(虚拟机监控器),也被称为虚拟化管理程序,是一种软件、固件或硬件,它允许在单个物理计算机上运行多个虚拟操作系统实例。它的主要功能是管理和分配计算机资源,以便虚拟机可以在同一台物理机上同时运行,而彼此之间相互隔离。

Hypervisor 有两种主要类型:

  1. Type 1 Hypervisor(裸金属Hypervisor):这种1类型的Hypervisor直接在物理硬件上运行,无需操作系统。它们被认为是更接近硬件的虚拟化解决方案。Type 1 Hypervisor通常用于服务器虚拟化场景,允许在单个物理服务器上运行多个虚拟机。一些著名的Type 1 Hypervisor包括VMware vSphere/ESXi、Microsoft Hyper-V、Xen等。
  2. Type 2 Hypervisor(主机Hypervisor):这种类型的Hypervisor运行在一个操作系统之上,也被称为主机操作系统。它通过在宿主操作系统内部创建虚拟机,允许用户在宿主操作系统中运行多个虚拟机。这种虚拟化方法通常用于开发和测试环境,以及个人计算机上的虚拟化。一些著名的Type 2 Hypervisor包括Oracle VirtualBox、VMware Workstation、Parallels Desktop等。

Hypervisor 的主要目标之一是在物理资源之间实现隔离,使虚拟机之间不会相互干扰。它们能够分配和管理处理器、内存、存储和网络等资源,使多个虚拟机能够共享同一台物理机的资源,同时保持相对的隔离性和性能。虚拟化技术和Hypervisor对于数据中心的资源优化、快速部署以及灾难恢复等方面具有重要意义。

  1. 如果调用API属于一个创建虚拟机的指令,这个时候肯可能就比较麻烦了。

这时候指令会先下发到conductor,调用Schedule服务选择对应的机器(例如比较空闲,资源较多)。然后将选择的机器给到compute,conpute调用外界的服务,如Glance和Cinder提供相应的镜像,调用neutron获得网络服务,这些调用外部组件都是通过http来进行调用的。

引入整个服务也是需要将数据存入到一个统一的DB的,openStack默认的Db是mysql数据库。所以各个组件调用数据库是通过sql进行调用的。

# ②物理部署

image-20230825103753691

  • 无中心结构,水平可以扩展
  • 一般nova-api、nova-Schedule、nova-conduct合并部署在控制节点上
  • 通过部署多个控制节点实现HA和负载均衡
  • 通过增加控制价节点和计算节点实现简单方面的系统扩容【用户的请求先来到负载均衡器当中,然后在根据算法发送对具体的控制器。后面若要加更多的控制器,很方便】

# ③核心概念1

image-20230825104528362

region区域:就相当于我们一些云计算资源就放在不同的区域,如华北区、西南区等等。

Availability zone(AZ): 可用分区。一个可用分区中的机器用相同的电力输入或者网络是相通的,那么他们的可用性是相同的。那么我们把一个region中可用性相同的一群机器叫做一个可用分区。一个区域有多个可用分区。

可用区是指在同一地域内,电力和网络互相独立的物理区域。例如,华北1(青岛)地域支持2个可用区,包括青岛 可用区B和青岛 可用区C。同一可用区内实例之间的网络延时更小,其用户访问速度更快。

Host Aggregate(HA): 主机组。规格相似的主机放在一个组里面。如cpu比较强的一群主机归到一个主机组中。

Host:主机

以上还可以具体参考阿里的描述: 地域和可用区 (opens new window)

有了这几个指标过后,我们如果要通过nova创建一个虚拟机,那么我们就要决定在哪个区域创建,在该区域的哪个可用分区中创建。用户只需要关注以上两个指标。对于云厂商来说,还要关注主机组和主机

image-20230825105525199

# ④核心概念2

image-20230825110047332

# ⑤典型操作

image-20230825110211633

# 2.Cinder

image-20230825110421341

统一接口:将各种存储硬件设备进行抽象,并向上提供统一的接口

按需分配:租户用多少,就分多少

块存储

持久化

# ①逻辑架构

image-20230825112132945

当nova发送一条指令来了过后,cinder-api会将指令处理后传递。

Api->scheduler->volume->driver.

最后由存储后台去执行相应的命令。所以看来OPenstack聚焦于控制,而不是执行。这也决定了OPenstack不会成为执行性能的瓶颈。

# ②Cinder典型组网(SAN存储)

image-20230825112704475

nova发送存储的指令后,会一步一的到达driver,最后driver将命令发送给真正的存储设备,由存储设备进行执行,并最终映射给nova虚拟机。

# ③物理部署

image-20230825112853057

组件内部是通过rabbitmq进行交互,外部是通过rest api进行交互

# ④典型的操作

image-20230825113022273

# 3.neutron

image-20230825140001309

租户视图:只需要关心创建的某一个虚拟机处于哪一个网络中

服务提供者视图:

不同物理机上的虚拟机怎么连接到同一个网络中

相同物理机上的虚拟机怎么做到网络隔离

# ①逻辑架构

image-20230825140543952

# ②网络虚拟化原理

image-20230825141142040

# ③物理部署示例

image-20230825141205077

# ④典型操作

image-20230825141249146

# 参考:

OpenStack原理及在华为云中的应用 (opens new window)

编辑 (opens new window)
上次更新: 2024/02/22, 14:03:19
linux环境快速搭建go
扣丁狼k8s(一)

← linux环境快速搭建go 扣丁狼k8s(一)→

最近更新
01
spark基础
02-22
02
mysql读写分离和分库分表
02-22
03
数据库迁移
02-22
更多文章>
Theme by Vdoing | Copyright © 2019-2024 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式