python雲計算2

⼀個段⼦理解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放置在⼀起稱為存儲節點


分享到:


相關文章: