Openstack nova(二)——架构(一)
2024-08-31 07:13:01
架构源自需求
需求分析
软件架构大部分都来自于需求。能够说。有什么样的需求,就会有什么样的架构, 尽管不同一时候期,不同的人来实现,可能不全然一样。可是整体来说, 架构不会相差太远。
如今假设假设须要自己来实现一个相似Openstack这样功能的软件,会是什么样的呢?
首先,还是再看看前一章中总结的最简单的需求
- 物理server的管理
- server的选择
- 虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作
物理server的管理
要对物理server进行管理, 至少要满足下面几个条件
- 要有一台做管理用的server
- 每台server至少能够和管理服务进行网络通信
- 管理server有能力对服务进行一些操作管理
通过上述的分析。通信时至少须要一种通信协议。但为了满足很多其它的需求,能够考虑支持多种协议, 远程的管理须要远程调用功能。
server的选择
相同, 要依据客户的不同配置来选择服务。 至少须要满足下面几个条件
- 能够获取server的的状态信息, 比方说可用的CPU个数。内在大小, 硬盘大小等
- 须要保存server的状态信息,作为选择时的输入信息
- 须要一些选择过虑的规则
以上的需求。至少须要保存数据的数据库, 和协议有相同的问题,如今的数据库非常多,能够考虑支持多种数据库。
虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作
在前一章中, 已经强调一点。 Openstack仅仅是管理平台。它是不会实现虚拟功能, 还有, 要创建一台虚拟机,至少须要CPU, 内存, 硬件三种硬件。并且虚拟本身就是为提供服务而存在,而如今的大部分服务。都是基于网络服务,所以网络也是不可缺少的一种硬件。
所以整体的需求大概例如以下
- 各种虚拟化技术的支持管理,眼下主流的虚拟化技术例如以下:
- Baremetal
- Docker
- Hyper-V
- Kernel-based Virtual Machine (KVM)
- Linux Containers (LXC)
- Quick Emulator (QEMU)
- User Mode Linux (UML)
- VMware vSphere
- Xen
- 硬盘支持
- 网络支持
- 镜像支持
隐形需求
- 对外的接口,仅仅有对外可操作,才干管理
- 用户管理, 不同的用户须要有不同的权限
到此为此, 一些最主要的需求已经出来了。把全部的节点用图表示出来例如以下:
Nova的实现
前面我们从需求的角度出发, 自己分析了假设要满足基本需求, 须要什么样的实现。
那么Nova的真实实现会和我们一样吗?
最新文章
- Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xm
- C语言多线程编程 死锁解析
- python访问mysql将返回的表转化为json
- 六 GPU 并行优化的几种典型策略
- Java-马士兵设计模式学习笔记-建造者模式
- jacob 给word加印的功能
- 【HDOJ】3505 Writing Robot
- Galgame引擎编写,图像层
- 第9课_3_db库安装
- zoj1013 Great Equipment
- linux内存操作--ioremap和mmap学习笔记
- Win10系统下装Ubuntu虚拟机的遇到的问题总结
- LinkedHashMap源码分析
- [SCOI2008]奖励关(期望dp)
- TeXstudio+TexLive交叉引用
- ubuntu14.06 Lts开启ssh服务
- [破解] nasca drm file -ver1.00
- opencv车流量统计算法
- hadoop管理
- DBLookupComboBox 的初始值
热门文章
- C++ 递归位置排列算法及其应用
- js中常用的对象—String的属性和方法
- 跨域使用onmessage实现方式
- 多行文本溢出显示...的方法(-webkit-line-clamp)
- 002 python介绍/解释器安装/变量/常量/内存管理
- HDU 5188 zhx and contest(带限制条件的 01背包)
- js32---CommonUtil.js
- javascript创建对象的方法--原型模式
- CISP/CISA 每日一题 20
- Spring学习总结(10)——Spring JMS---三种消息监听器