点击链接加入QQ群 522720170(免费公开课、视频应有尽有):https://jq.qq.com/?_wv=1027&k=5C08ATe
⼀个段⼦理解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放置在⼀起称为存储节点
说明:此段⼦来源于⽹络
网友评论