⼀个段⼦理解openstack

1.故事设定

主⻆是⼀个想赚钱的管理员。 他的⼿⾥有着⼤量的物理计算资源,⽆限多的服务器啊,⽆限多的电⼒什么的,⽆限多的硬盘空间,⽆限⼤的带宽啊什么的(勿吐槽,反正⼀切是脑洞⼤开,不如让他⽆限⼤,⽂章的不严谨之处,还请谅解),⽽且这位管理员在计算机领域⽆所不能,写程序分分钟出货balabala,反正就是属性很⽜逼就对了。 另外,这个管理员⽐较懒,什么东⻄都想以最少的操作去完成,但这个管理员写起来程序,⽆视⼀切….

2.我们的故事开始了

故事从这位管理员说起,管理员先森想着,我放着这么多的刁B玩意,不赚点钱对不起⾃⼰啊,然管理员正好看到当前⽕热的虚拟机技术,想着,我这么多的玩意,如果直接把整机租出去,赚的钱太少,不如把这些服务器拿来跑虚拟机,然后给客户出租虚拟机,这样管理员先僧就能赚⼤把⼤把的钱了,然后出任CEO,赢取⽩富美,⾛向事业巅峰,咩哈哈~~~~

话说管理员君开始忙活了,这么多的服务器,要重新编写操作系统太过麻烦了,不如拿着现成的操作系统⽤的实在,于是管理员在认证查看了当今世界上的操作系统之后,觉得Linux操作系统定当能担此⼤任,于是这位管理员君开始化身为程序猿,去构造⼼中的梦想….

管理员童鞋⾸先想了⼀下,我这么刁逼的东⻄,那先得有个刁逼的名字啊,反正这东⻄我也不指望他能给我赚钱,那肯定是要开源的啊,那就这样吧,叫个OpenStack挺不错的好了,项⽬的名字有了,接下来我要跑虚拟机对外出租赚钱是吧,那创建虚拟机不是谁都TM能创建的啊,这活只有我TM能创建啊,但是如果有⼀天有⼈接⼿了我的这些,那他也要能创建啊,那么以后如果越来越多的⼈去使⽤和管理,我TM总不能每次都把root账号密码给他们吧,所以这时候对于管理员来说,有⼀个新的需求,就是要让电脑知道谁有权利去使⽤这个机器的⼀切

于是管理员君开始废寝忘⻝的编写程序,⽴志做出来⼀套⽜逼的身份认证管理系统,在数天之后(勿吐槽时间),管理员君终于把这个刁逼的身份认证系统做完了,做完了吧,总得有个名字吧,脑洞⼤开,就TM叫Keystone吧,于是,我们的OpenStack的第⼀个组件,Keystone就有了

接下来,管理员让服务器⾃⼰去鉴别使⽤者的身份,这下⽅便坏了,只要⼩⼩的配置⼀下,服务器君就能⽴⻢知道使⽤者上三代下三代的信息,连隔壁⽼王家的那条狗在外⾯勾搭了⼏个⼩⺟狗都TM知道了,真是刁逼坏了啊..然后管理员开始先试⽤市⾯上的虚拟机程序,⽤了⼏家之后都感觉不错,唯⼀缺点就是每次创建了虚拟机之后都得安装操作系统,真特么麻烦啊,为⽑不能创建之后就直接带上操作系统呢,这时候问题来了,市⾯上操作系统辣么多,⽽⼜不知道客户到底喜欢⽤哪⼀个。

这时候,管理员君就在想了,我特么弄个程序,让他专⻔去管理镜像,我特遣吧各种操作系统的镜像弄好,这样我未来创建我⾃⼰的虚拟机的时候创建完就可以直接有操作系统了,再也不⽤TMD创建⼀次安装⼀次了,真特么爽,现在这个镜像管理程序有了,那总得有个屌炸天的名字,那不如这样,就叫个Glance吧,听起来就刁刁的。

管理员君做完了Keystone和Glance之后,⼼想,现在世界上⼈家的虚拟机软件特么⼜是要钱的, 还没有源代码,对我这种崇尚开源精神的⼈来说怎么能忍!!!绝壁不能忍啊,⼼⼀热,我TM不⽇⾃⼰开发⼀个,刚好和我做的叼逼玩意对应起来,于是管理员君此时程序猿附身,吃了⼀箱⽅便⾯的时间⾥就写出来了⼀个刁逼的虚拟机软件,可以创建虚拟机啊,复制虚拟机啊,创建快照啊什么刁逼功能都有,在考察了当今世界上现有的功能之后,⾃⼰⼜独创了XXOO个功能,真是掉的不要不要的。

此时天空⼀道炸雷,仿佛在庆⽣⼀般,管理员⼼想,传说当⼤地上出现⾮等闲之物事,天空都有异象,想来我这刁逼玩意也⾮等闲之物啊,此物只因天上有,⼈间难得⼏回闻啊,这么屌炸天的东⻄没有个够格的名字怎么能忍,管理员脑洞打开,思来想去,⽇不能⻝,夜不能寐,⼜是⼀箱⽅便⾯的⽇⼦过去了,管理员终于想出了⼀个⾃⼰觉得不能更屌的名字了,就叫他Nova吧

好了, 到现在,管理员满意度看着⾃⼰的服务器上跑着⾃⼰⼀⼿打造的虚拟机软件,虚拟机运⾏着⾃⼰打造的+12的定制版XX系统,⼼满意⾜的睡了,卧槽TM睡了!!!!

话说管理员这⼀觉不睡则以,⼀睡睡了两箱⽅便⾯的功夫,某天管理员君⼼⾎来草,想⽤⾃⼰的虚拟机去打⼀会WOW刷个本什么的,这才发现我TM虚拟机不能上⽹我⼬⾋芔茻,这尼玛虚拟机我TM看不⻅摸不着,想给菊花捅个⽹线都没办法,这尼玛能忍么,不能忍!!

管理员⼼想,我TM物理机要上⽹,⼀根⽹线捅到路由器/交换机就⾏了, 这TM虚拟机没有路由器交换机,捅个P啊,既然电脑都能虚拟了,我TM吧你路由器交换机,顺带防⽕墙⼀起虚拟了,这样我TM就能打WOW了。

于是管理员君不吃不喝,⼜是⼀箱⽅便⾯的时间,管理员君成功的做出来了针对⾃⼰虚拟机专⽤的虚拟⽹络管理程序,为了配合Nova这么⾼⼤上的名字,这⽜逼的虚拟⽹络管理程序就叫Neutron吧(这TM哪⾥配合了)

故事到了现在,管理员终于能吧⾃⼰的叼逼玩意给客户租出去赚钱了,这么刁逼的玩意,⼀推出,就轰动了世界,好多⼈都找管理员租⽤他的虚拟机跑业务,管理员在处理⼤量客户的租⽤请求的时候⼗分操蛋。为啥嘞,因为管理员当时设计程序的时候就是在linux下设计的,设计出来的程序当然只提供了命令⾏的操作⽅式,每次创建虚拟机,管理员都得敲好多命令,⼀开始管理员是写了⼀个bash脚本来处理这个事情,但是毕竟扛不住⽤户的各种各样的变态的修去,终于有⼀天,管理员爆发了!!!!

我TM为了创个虚拟机都TM累坏了,脸都⻩了,⼈也瘦了,⽅便⾯也吃不下去了,这样下去还能有⼥票么,这不⾏,我得设计⼀个功能强⼤,管理⽅便,XXOO的管理⾯板,⽽且我还要能在不同的设备上去管理,给每个设备设计单⼀的程序太麻烦,不如就直接做成⽹站的形式,基于WEB做这玩意吧。

管理员同志⼜开始设计程序了,⼀说设计,这⽛也不疼了,胃⼝也好了,⽅便⾯也能⼀次吃两桶了,⼀⼝⽓上五楼也不费劲了。

⼜是⼀箱⽅便⾯的时间,管理员总算是把这个功能强⼤的管理⾯板做出来的,把⾃⼰之前弄的什么Glance啊,Nova啊,Neutron啊的所有功能都扔上去,现在⽅便坏了,我TM点点⿏标就能创建虚拟机,⼀个虚拟机分分钟就创建完了,再也不⽤⾯对⿊乎乎的命令⾏了,整个⼈神清⽓爽,好了, 东⻄出来了, 同样得有个刁逼的名字,那就这样吧,叫个Horizon也是蛮吊的啊,跟前⾯的也挺配的啊(配个P啊!!!)

现在管理员终于能躺着赚钱了,这样的⽇⼦过去了⼀天⼜⼀天,管理员君天天数着钞票玩,玩的不亦乐乎啊。

突然有⼀天,有⼀位客户反映,我们租⽤你的服务器存放了⼀些公司的重要数据,但是现在租的服务硬盘快满了,管理员君能不能给我们加个硬盘啊

加个P啊,管理员君当时做的时候没想着硬盘不够了怎么办的问题,这尼玛现在⼿握⼀⼤堆硬盘我特么怎么往虚拟机上加,加NMB加,但是俗话说,顾客就是上帝,上帝既然有需求,这服务上帝的管理员君不得拼了命的去完成?

于是,新的⼀轮编写程序开始了,主要⽬标就是能在虚拟机上加新的硬盘,⽽这个加的硬盘也是虚拟出来的,反正TM把能虚拟的都虚拟完了就对了。

⼜是⼀箱⽅便⾯的时间过去了,管理员为了补当年的漏洞,⼜重新写了⼀个功能略叼的玩意,他可以把整个硬盘/阵列作为虚拟盘的存放地,能创建任意⼤⼩的虚拟硬盘,还可以把这个硬盘直接挂载到某个虚拟机上,同时也做了Horizon的web菜单,点点⿏标就能加硬盘,真是⽅便坏了啊,这么⽜逼的东⻄不得有个名字?思来想去,还是叫个Cinder⽐较好听(好听个P啊!!!)

好了,现在总算是把客户的问题都解决了, 伸个懒腰,睡个懒觉, 岂不快哉,咩哈哈哈

~~~

话说到管理员正在闭关,呃…..睡觉,忽然被客户的电话吵醒,CNM的客户,P事就多得很啊,⼼⾥虽然这么想,但是还是吧电话接了:喂狗⽇的,噢不,亲爱的客户,怎么了?

客户说,他们公司⽬前有⼤量的⽂件需要找个地⽅存放,公司内部没有这么⼤的空间,听说你们这⾥的IT环境各种不错,想在你这⾥租⽤⼀些空间来放⽂件,但是不要虚拟机,只要能上传/下载/管理⽂件就⾏了, 管理员回到:⽊问题啦,包在我森上啦,⼩⼩斯啦..

新的需求⼜来了,管理员⼀边骂着娘⼀般开始想这事情,我TM现在要想存⽂件,就TM得要虚拟机啊,狗⽇的客户⼜TM不要虚拟机,简直坑我(die)啊。。要是给Cinder添加这个功能⽆异于重新编写⼀次Cinder,杀了我算求…

话虽这么说,管理员君还是觉得,与其重写Cinder不如新加⼀个组件,让它实现这个功能不就结了

⼜是N个不眠夜,⼜是⼀箱的泡⾯,管理员君终于按照客户需求设计出了这么⼀个程序,可以存取⽂件,也只能存取⽂件的⼀个东东,同时管理员君设计了这逼玩意在Horizon中的菜单,,同时⼜做了⼀个⽹站,专⻔提供这B玩意的⽂件管理功能,这回管理员想的也多了,光有web不⾼端⼤⽓上档次,于是⼀股脑把各种平台的各种端都做好了(实际上的OpenStack并没有各种客户端,客户端都是使⽤着⾃⼰单独开发的),往出⼀拿,瞬间好评爆棚,各种强顶赞,劝都劝不住啊,这么⾼⼤上的东⻄,这么受欢迎的玩意,得起⼀个配得上这玩意的名字,那啥,最近苹果不是新出了⼀个Swift语⾔么,我看着名字挺不错,那就叫Swift吧(实际上这俩重名是个意外,毫⽆关联的意外)

到了现在,客户的各种有理⽆理的需求都TM满⾜了,管理员也想不出哪⾥还能再做点什么(明明是不想做了啊喂),管理员也能安⼼的赚钱把妹纸了(最后才是主要⽬的啊喂),管理员君到了现在吃泡⾯也感觉萌萌哒了。故事到这⾥就算是完了,但是OpenStack的架构远不⽌此。。。

3. 梳理下架构

Keystone提供了身份认证管理,所以叫身份认证组件,放置Keystone的服务器我们可以称之为认证节点

Glance提供了镜像管理,所以叫镜像管理组件,放置Glance的服务器我们可以称之为镜像节点

Nova让虚拟机跑起来了,官⽅话是提供了计算服务,所以叫计算组件,放置Nova的服务器我们可以称之为计算节点

Neutron能让虚拟机上⽹,所以叫⽹络管理组件,放置Neutron的服务器我们可以称之为⽹络节点

Horizon提供了⼀个基于Web的管理控制台,所以就直接叫控制节点

Cinder创建了虚拟硬盘,⽽硬盘存储数据是以块作为单位存储的(在linux中),所以叫块存储组件,放置Cinder的服务器我们可以称之为块存储节点

Swift能让⽂件直接存在云端,在计算机⾏业⾥,⽂件是对象的⼀种,所以叫对象存储组件,放置Swift的服务器我们可以称之为对象存储节点

这些组件可以单独的放置在⼀台服务器上,也可以把其中的⼏个放置在⼀个服务器上 通常做法是把Keystone Glance Horizon放置在⼀台服务器上称为控制节点 把Nova单独放置称为计算节点 把Neutron单独放置称为⽹络节点 把Cinder和Swift放置在⼀起称为存储节点

说明:此段⼦来源于⽹络

转载于:https://blog.51cto.com/xqtesting/2129149

python云计算2相关推荐

  1. python云计算服务_阿里云python 云计算

    阿里云python 云计算 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Serv ...

  2. 云计算需要python吗_国内python云计算是啥

    国内python云计算是啥 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Serv ...

  3. python云计算面试题_云计算工程师面试问题及答案解析

    云计算是如何提供按需模式的功能的? 云计算网络.互联网的一种比喻说法,它提供了以互联网按需模式访问共享的虚拟化IT资源的方式,所有的资源以资源池的方式存在,提供配置化的访问方式,资源类型包括网络.服务 ...

  4. python云计算架构开发_云计算开发一般负责什么工作呢?更偏向于运维么?

    云计算工作内容基本就是对云服务器,存储数据,数据库,中间件,网络通信设备,机房设备进行运行维护管理 云计算的"云"就是网络.互联网的一种比喻说法,至于计算,就不解释了.有人给出一个 ...

  5. python云计算好学吗_没有基础,可以学云计算专业吗,学起来是不是很难,?

    想学习云计算,首先得清楚究竟什么是云计算,千万不能听风就是雨,看到别人在说这个行业就业好,发展好,自己就摩拳擦掌跃跃欲试.为什么要了解清楚了考虑入不入行?因为这真的是个发展势头不错,同时又比较适合零基 ...

  6. python云计算是什么意思_云计算是什么意思 什么是云计算

    云计算是2011年互联网中十分热门的词汇,云计算是由美国googole公司首先提出了,最让人印象深刻的认识是:我们的电脑只要一显示器加根网线即可实现云上网,也就说主机等部分全部由云服务器提供,想象下是 ...

  7. python 云计算 培训

    众所周知云计算不是一种全新的网络技术,而是一种全新的网络应用概念,云计算的核心概念就是以互联网为中心,在网站上提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源 ...

  8. python 云计算_云计算开发学习笔记:Python的环境搭建

    大家都知道学好Python是进入云计算领域的基础,那么在学习之前我们先来了解下Python环境是如何搭建的.Python可应用于多种平台,包括大家熟悉的Window,Linux 和 Mac OS X. ...

  9. python云计算好学吗_云计算发展前景好不好 学了后能胜任哪些岗位

    云计算发展前景好不好?学了后能胜任哪些岗位?近年来,云计算市场前景火爆,越来越多的企业将业务迁移到云上,云计算人才也成为企业高薪招聘的对象.有人看到这一点,就想转行加入云计算行业,下面跟着小编一同来看 ...

  10. python云计算开发技术_云计算开发学习笔记:Python3 面向对象技术简介

    来源:TechWeb.com.cn Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. 如果你以 ...

最新文章

  1. C# 海康DVR客户端开发系列(2)—— 封装API
  2. 量子计算基础知识-2019/11/12
  3. 从零开始学习docker(五)网络的另外两种类型host,none
  4. 简单了解各种序列化技术-Avro序列化
  5. timeit统计运行时间
  6. html中怎么显示错误信息,在html中显示为内嵌错误的文本
  7. arcgis的python接口_arcgis-Python的ArcGIS API-Esri Screenshots
  8. 为什么要学习 Spring Boot?
  9. HCIE Security 二层攻击防范 备考笔记(幕布)
  10. 如何实现LBS轨迹回放功能?含多平台实现代码
  11. 仿网易云音乐移动端html模板,使用jQuery仿制网易云音乐移动端
  12. 一套完整的直播系统开发、直播平台搭建的原理
  13. PS批量处理图片之批量转换dds格式
  14. JS导出Excel文件的方式
  15. macOS Catalina 10.15.7 ISO/CDR 虚拟机镜像下载
  16. 短文本分类---小白从0到0.3的辛酸历程(上)
  17. 纯css实现二级下拉菜单
  18. dialog沉浸式状态栏android,Dialog全屏,去掉状态栏的方式
  19. 787. K 站中转内最便宜的航班
  20. 7-2 计算正五边形的面积和周长 (25分)

热门文章

  1. acwing算法题--整数分解
  2. leetcode算法题--反转链表★
  3. python中对象和变量的关系_浅析python中的类变量和对象变量
  4. Spire.Doc系列教程:C# 根据 Word 的标题样式获取文字
  5. cx_Oracle读写clob
  6. C#连接MySql数据库的方法
  7. PHP使用CURL案例
  8. 基于MongoDb的S3实现
  9. innodb参数汇总
  10. 袁晖:C2B汽车电商模式创新