架构源自需求

需求分析

软件架构大部分都来自于需求。能够说。有什么样的需求,就会有什么样的架构, 尽管不同一时候期,不同的人来实现,可能不全然一样。可是整体来说, 架构不会相差太远。

如今假设假设须要自己来实现一个相似Openstack这样功能的软件,会是什么样的呢?

首先,还是再看看前一章中总结的最简单的需求

  1. 物理server的管理
  2. server的选择
  3. 虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作

物理server的管理

要对物理server进行管理, 至少要满足下面几个条件

  1. 要有一台做管理用的server
  2. 每台server至少能够和管理服务进行网络通信
  3. 管理server有能力对服务进行一些操作管理

通过上述的分析。通信时至少须要一种通信协议。但为了满足很多其它的需求,能够考虑支持多种协议, 远程的管理须要远程调用功能。

server的选择

相同, 要依据客户的不同配置来选择服务。 至少须要满足下面几个条件

  1. 能够获取server的的状态信息, 比方说可用的CPU个数。内在大小, 硬盘大小等
  2. 须要保存server的状态信息,作为选择时的输入信息
  3. 须要一些选择过虑的规则

以上的需求。至少须要保存数据的数据库, 和协议有相同的问题,如今的数据库非常多,能够考虑支持多种数据库。

虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作

在前一章中, 已经强调一点。 Openstack仅仅是管理平台。它是不会实现虚拟功能, 还有, 要创建一台虚拟机,至少须要CPU, 内存, 硬件三种硬件。并且虚拟本身就是为提供服务而存在,而如今的大部分服务。都是基于网络服务,所以网络也是不可缺少的一种硬件。

所以整体的需求大概例如以下

  1. 各种虚拟化技术的支持管理,眼下主流的虚拟化技术例如以下:

    • Baremetal
    • Docker
    • Hyper-V
    • Kernel-based Virtual Machine (KVM)
    • Linux Containers (LXC)
    • Quick Emulator (QEMU)
    • User Mode Linux (UML)
    • VMware vSphere
    • Xen
  2. 硬盘支持
  3. 网络支持
  4. 镜像支持

隐形需求

  1. 对外的接口,仅仅有对外可操作,才干管理
  2. 用户管理, 不同的用户须要有不同的权限

到此为此, 一些最主要的需求已经出来了。把全部的节点用图表示出来例如以下:

Nova的实现

前面我们从需求的角度出发, 自己分析了假设要满足基本需求, 须要什么样的实现。

那么Nova的真实实现会和我们一样吗?

Openstack nova(二)——架构(一)的更多相关文章

  1. OpenStack Nova 高性能虚拟机之 NUMA 架构亲和

    目录 文章目录 目录 写在前面 计算平台体系结构 SMP 对称多处理结构 NUMA 非统一内存访问结构 MPP 大规模并行处理结构 Linux 上的 NUMA 基本对象概念 NUMA 调度策略 获取宿 ...

  2. 五、OpenStack—nova组件介绍与安装

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

  3. 转-4年!我对OpenStack运维架构的总结

    4年!我对OpenStack运维架构的总结 原创: 徐超 云技术之家 今天 前言 应“云技术社区”北极熊之邀,写点东西.思来想去云计算范畴实在广泛,自然就聊点最近话题异常火热,让广大云计算从业者爱之深 ...

  4. openstack——nova计算服务

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

  5. OpenStack—nova组件计算服务

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

  6. 深挖Openstack Nova - Scheduler调度策略

    深挖Openstack Nova - Scheduler调度策略   一.  Scheduler的作用就是在创建实例(instance)时,为实例选择出合适的主机(host).这个过程分两步:过滤(F ...

  7. OpenStack Nova

    OpenStack Nova 简介 OpenStack 中的 Nova 负责维护和管理云环境的计算资源 Nova 在现有 Linux 服务器上作为一组守护线程来提供服务 Nova 由多个服务器进程组成 ...

  8. OpenStack Nova 高性能虚拟机之 CPU 绑定

    目录 文章目录 目录 前文列表 KVM KVM 的功能列表 KVM 工具集 KVM 虚拟机的本质是什么 vCPU 的调度与性能问题 Nova 支持的 vCPU 绑定 vcpu\_pin\_set 配置 ...

  9. OpenStack (nova 计算服务)

    nova介绍 Nova 负责维护和管理云环境的计算资源,Nova这个模块很重要,可以说是 OpenStack 的最核心的服务模块之一,以至于在 OpenStack 的初期版本里大部分的云系统管理功能都 ...

随机推荐

  1. 【原生JS组件】javascript 运动框架

    大家都知道JQuerry有animate方法来给DOM元素进行运动,CSS3中也有transition.transform来进行运动.而使用原生的Javascript来控制元素运动,须要写非常多运动的 ...

  2. POJ 2458 DFS+判重

    题意: 思路: 搜+判重 嗯搞定 (听说有好多人用7个for写得-.) //By SiriusRen #include <bitset> #include <cstdio>0 ...

  3. Android RecyclerView滑动监听,判断是否滑动到了最后一个item

    项目中的需求,RecyclerView横向滑动列表,要有加载更多的功能,给RecyclerView设置一个滑动监听,在onScrolled方法中判断一下滑动方向,然后在onScrollStateCha ...

  4. Kinect 开发 —— 常见手势识别(上)

    悬浮按钮 (Hover Button) 悬浮按钮通过将鼠标点击换成悬浮然后等待(hover-and-wait)动作,解决了不小心点击的问题.当光标位于按钮之上时,意味着用户通过将光标悬浮在按钮上一段时 ...

  5. Highcharts使用的一些总结

    Highcharts 是一个用纯 JavaScript 编写的一个图表库, 能够很简单便捷的在 Web 网站或是 Web 应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用. ...

  6. Swift视频教程,Swift千人学iOS开发编程语言

    此时大家站在同一起跑线.Swift语言将将是下一个风靡程序猿界的编程语言,是否能抢占先机,近在咫尺. 本期推荐Swift编程语言视频教程,内容包含:开发环境基本使用.数据类型和常量.数据自己主动检查和 ...

  7. 一个简单RPC框架是怎样炼成的(II)——制定RPC消息

    开局篇我们说了,RPC框架的四个核心内容 RPC数据的传输. RPC消息 协议 RPC服务注冊 RPC消息处理 以下,我们先看一个普通的过程调用 class Client(object): def _ ...

  8. Python-根据成绩分析是否继续深造

    案例:该数据集的是一个关于每个学生成绩的数据集,接下来我们对该数据集进行分析,判断学生是否适合继续深造 数据集特征展示 GRE 成绩 (290 to 340) TOEFL 成绩(92 to 120) ...

  9. Atcoder AtCoder Regular Contest 079 E - Decrease (Judge ver.)

    E - Decrease (Judge ver.) Time limit : 2sec / Memory limit : 256MB Score : 600 points Problem Statem ...

  10. springMVC注解用法:@modelattribute的用法

    在Spring MVC里,@ModelAttribute通常使用在Controller方法的参数注解中,用于解释model entity,但同时,也可以放在方法注解里. 如果把@ModelAttrib ...