Openstack nova(二)——架构(一)
来源:互联网 发布:网络侦探杰斯兽 编辑:程序博客网 时间:2024/05/17 03:21
架构源自需求
需求分析
软件架构大部分都来自于需求,可以说,有什么样的需求,就会有什么样的架构, 虽然不同时期,不同的人来实现,可能不完全一样。但是总体来说, 架构不会相差太远。
现在假设如果需要自己来实现一个类似Openstack这样功能的软件,会是什么样的呢?
首先,还是再看看前一章中总结的最简单的需求
- 物理服务器的管理
- 服务器的选择
- 虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作
物理服务器的管理
要对物理服务器进行管理, 至少要满足以下几个条件
- 要有一台做管理用的服务器
- 每台服务器至少可以和管理服务进行网络通信
- 管理服务器有能力对服务进行一些操作管理
通过上述的分析,通信时至少需要一种通信协议,但为了满足更多的需求,可以考虑支持多种协议, 远程的管理需要远程调用功能。
服务器的选择
同样, 要根据客户的不同配置来选择服务, 至少需要满足以下几个条件
- 能够获取服务器的的状态信息, 比如说可用的CPU个数,内在大小, 硬盘大小等
- 需要保存服务器的状态信息,作为选择时的输入信息
- 需要一些选择过虑的规则
以上的需求,至少需要保存数据的数据库, 和协议有同样的问题,现在的数据库很多,可以考虑支持多种数据库。
虚拟机的创建、开机、关机、挂起、暂停、调整、迁移等操作
在前一章中, 已经强调一点, 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的真实实现会和我们一样吗?
0 0
- Openstack nova(二)——架构(一)
- Openstack Nova(三)----架构(二)
- Openstack nova(一)——Overview
- OpenStack之Nova分析——创建虚拟机(二)
- OpenStack源码探秘(一)——Nova-Scheduler
- OpenStack之Nova分析——创建虚拟机(一)
- OpenStack之Nova分析——Nova Compute定时任务(二)
- OpenStack之Nova分析——Nova Compute定时任务(一)
- openstack--nova的运行机制分析(一)
- 【OpenStack】OpenStack原理(一)——OpenStack发展及架构
- openstack nova 基础知识——libvirt和qemu(1)
- openstack nova基础知识——libvirt和qemu(2)
- openstack nova 基础知识——Quota(配额管理)
- OpenStack多节点部署(五)——Nova
- openstack nova 基础知识——Quota(配额管理)
- openstack nova 基础知识——libvirt和qemu(1)
- openstack nova基础知识——libvirt和qemu(2)
- openstack nova基础知识——libvirt和qemu(2)
- 10款Github上最火爆的国产开源项目
- Lock, semaphore, condition variables and monitors.
- linux中定义的几个网络报文的结构体
- WCF分布式事务(EF)
- NYOJ 496 [巡回赛-拓扑排序]
- Openstack nova(二)——架构(一)
- 从内存分配看函数参数传递问题
- WebView 关于打开页面不能跳转到手机拨号界面问题
- 第一周 基于对象的程序设计——时间类(增加n)
- Mysql SQL语句计算字符在字符串中出现的次数
- openDS & LDAP & openLDAP
- Android 缓存机制
- 必背代码-Servlet实现网页定时刷新
- MySQL常用命令以及语法规范