【云深知處】NFV理論與實踐(5)-大話OpenStack

      網友投稿 826 2025-04-03

      云操作系統(Cloud OS)同普通的操作系統一樣,實現對硬件資源的抽象,對上層提供統一的接口。除此之外,“云”的特征要求云操作系統借助計算、存儲和網絡虛擬化技術實現資源的組織和分配,進而實現資源的共享、彈性、快速部署和回收、可監控和測量,實現“像使用自來水一樣使用IT資源”的構想。

      在Cloud OS領域,最著名的當屬OpenStack。依照上一節我們分解的Cloud OS架構,OpenStack屬于CLoud OS中的管理部分,與Hypervisor一起構成了CloudOS的功能。

      在一般的表述中,直接將OpenStack稱為云操作系統,把Hypervisor作為OpenStack的一部分。OpenStack網站(https://www.openstack.org/software/)上也是這么認為的:

      OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

      OpenStack是一個由NASA(美國國家航空航天局)和Rackspace合作研發并發起的,以Apache許可證授權的自由軟件和開放源代碼項目。

      OpenStack即指這個云操作系統,也指開發這個操作系統的開源項目。

      OpenStack的Open有兩層意思:

      l? Open Source:同其他開源軟件一樣,其源代碼是公開的;

      l? Open Mind:思想是開放的。OpenStack以開源社區的方式向所有人開放。任何人都可以向社區貢獻自己的想法和代碼。OpenStack會每半年組織一場峰會(Open Summit),邀請開發者、用戶、系統管理員等相關人員分享開發、使用經驗。OpenStack會吸收優秀的功能和模塊加入到官方發布的版本中。同安卓(Android)一樣,這是一個開放的生態系統。

      隨著版本的演進,加入到OpenStack中的組件(又稱服務)越來越多。理解OpenStack的關鍵是理解其核心組件。對于一個操作系統來說,管理計算、存儲、網絡的組件是其核心組件。另外,負責權限管理、操作界面等的組件也是核心組件。

      如上圖所示,操作系統必須有計算(Compute)組件、網絡(Network)組件、磁盤管理的塊存儲(Block Storage)組件、將內容以類似文件方式進行存儲管理的對象存儲(Object Storage)組件、鑒權(Identity)組件、負責操作界面(Dashboard)的組件,甚至還有負責虛擬機快速安裝恢復的備份鏡像(Image)組件。

      OpenStack的每個組件的開發都是一個項目組,都有一個特定的名字。該名字即是項目的名稱,也是組件的名稱。

      組件之間的關系如下圖所示:

      要始終牢記:OpenStack的目的是為了創建和維護虛擬機(VM)。OpenStack從眾多的物理主機、存儲和網絡設備中抓取虛擬機所需要的計算、存儲和網絡資源分配給虛擬機。

      OpenStack各組件功能

      為了識別各組件之間的關系,先將用于業務編排的Heat組件排除,將其他組件分成支撐組件和業務組件(原創概念,純個人理解)兩個部分:

      第一部分:支撐組件

      我們將不與虛擬機發生關聯的組件定義為支撐組件,包括Horizon、Keystone、Ceilometer三個部分。

      Horizon:為幾乎所有組件提供基于Web的操作界面,方便操作。OpenStack各組件只提供命令行的交互方式,Horizon提供了圖形化封裝的功能。

      Ceilometer:提供資源的計量和監控服務。云架構的設計初衷是對租戶提供IT服務,所以CloudOS必須有能力計量各租戶使用的計算、存儲和網絡資源的量,從而進行計費。所以在上圖中,Ceilometer指向了計算、存儲和網絡組件。目前的Ceilometer組件還具備監控(告警)能力。

      Keystone:提供鑒權功能。OpenStack中所有需要鑒權才能繼續的操作,各組件首先要與Keystone組件進行交互,進行鑒權和認證。因此,Keystone提供API(Application Programming Interface 應用編程接口)接口,與所有需要調度資源的組件進行對接。

      l? 第二部分:業務組件

      我們將與虛擬機生命周期管理(創建、刪除、修改)直接相關的組件稱為業務組件,包括Nova、Neutron、Cinder、Glance、Swift五個部分。

      這部分組件為虛擬機提供計算、存儲和網絡資源。

      l? Nova:是OpenStack的最核心組件。負責網絡的Neutron和負責塊存儲的Cinder都是從Nova組件中分出來的,足見Nova在OpenStack中的江湖地位。Nova負責為虛擬機管理計算資源。包括CPU和內存。當接到虛擬機創建請求時,Nova根據請求中攜帶的計算資源需求對計算資源進行過濾,選出可用來創建虛擬機的資源,再根據一定的策略進行排序,選定某些計算資源創建虛擬機。

      計算資源一旦分配給虛擬機,Nova不再參與到虛擬機處理上層應用的計算過程。Nova類似于抓藥的老中醫,只負責開方子和抓藥。與開中藥不同的是,計算資源不會被虛擬機“吃掉”,Nova還可以根據需要隨時調整和銷毀(刪除)虛擬機。

      Nova除了負責計算資源的管理,它還是存儲和網絡資源的總協調。Nova接收來自管理接口的請求,再通過API接口與Cinder、Glance以及Neutron交互,協調存儲、鏡像以及網絡資源。

      l? Neutron:負責虛擬機的網絡資源。虛擬機與外部網絡互通以及隔離,需要配置IP地址、路由、VLAN等信息,即在網絡上搭建一個可隔離、可交換/路由的分組數據包轉發通路。Neutron根據虛擬機的需求,在相應的主機、交換機和路由器上完成支撐虛擬機轉發通路的接口、VLAN、路由等配置,支撐虛擬機的數據轉發。從這個角度上看,Neutron是數據轉發的集中控制節點,因此也被認為是SDN(Software Defined Networking)Controller。理想的SDN Controller是Neutron努力的方向,目前OpenStack的網絡部分在復雜的NFV場景下,還需要一些手工設計和配置。

      l? Cinder:Cinder負責為虛擬機提供塊存儲(Block Storage)資源。所謂的“塊”,就是我們通常操作系統對待硬盤的狀態。操作系統將磁盤劃分一個一個塊(簇),來對硬盤進行讀寫。

      在云架構下,存儲資源可能是本地資源,也可能是SAN、NFS等不同廠家不同技術的存儲資源。Cinder向下對物理存儲介質使用相對應的驅動(Driver)來完成硬盤的管理和讀寫,對VM提供統一的iSCSI存儲,即統一的磁盤卷,虛擬機將Cinder統一之后的磁盤卷進行掛載使用。

      Glance:提供對虛擬機鏡像的管理,包括虛擬機的查詢、注冊、上傳、獲取以及刪除功能。比如在命令行中執行如下命令,就創建了一個suse的鏡像。

      #glance image-create --name suse-iso --disk-format iso --container-format bare --file suse.iso

      所謂鏡像,就是虛擬機磁盤的復制。這個復制可能是原始二進制內容的拷貝,也可能是某種轉換壓縮格式之后的文件。被鏡像的虛擬機磁盤中包含虛擬機的操作系統Guest OS,也可能包含已經安裝完成的應用。Nova讀取讀取鏡像內容,將鏡像內容復制到虛擬機磁盤,虛擬機從磁盤引導啟動鏡像中的Guest OS。啟動后的虛擬機就直接具備了Guest OS以及上層應用(如果鏡像中有的話)功能。

      Glace只負責創建、刪除、傳遞鏡像信息,而鏡像的保存需要借助存儲組件。為Glance保存鏡像的存儲稱為Glance的后端存儲。目前NFV的設計中使用對象存儲Swift來保存鏡像文件。

      l? Swift:是OpenStack的對象存儲組件。在NFV的OpenStack使用中,只為Glance提供虛機鏡像存儲服務。Swift被稱為對象存儲,類似于我們看到的操作系統存儲文件。被存儲的對象是一個個有實際意義的數據對象,而不是二進制的原始信息。這些數據可以檢索、調整,必要時進行更新。相對于單磁盤的文件存儲,Swift按照云的架構進行了適配,提供了更強的擴展性、冗余和持久性。

      復雜的實現,并不復雜的配置

      雖然CloudOS的架構原理很復雜,但是作為集成交付工程師,并不需要掌握復雜的組件內部交互過程。交付工程師需要略微理解組件間的交互過程,將主要精力投入到功能系統和網絡的設計上。

      技術的發展應朝著“實現越來越復雜,使用越來越簡單”方向發展。自動擋汽車取代了手動擋汽車、復雜的自動變速箱簡化了人的手腳配合工作之后,駕駛人應該將更多的精力投入到道路和環境上,追求更高效和舒適的駕駛。

      OpenStack完成虛擬機的管理。我們以虛擬機的創建為例,簡單描述OpenStack各組件的作用。

      1.? 用戶從操作管理界面(Horizon或者各廠家自己實現的界面)提交虛擬機創建請求,同時攜帶虛擬機的資源量需求(暫時理解為資源配置文件,具體概念以后再展開)。

      2.?該需求會下發給Nova組件。Nova組件首先根據虛擬機的資源需求分配計算資源。Nova檢索全部計算資源,過濾掉不可用的計算資源,將剩余的計算資源進行排序,選擇最優的資源。

      3.? Nova必須保證所創建的虛擬機有鏡像資源可以使用,以便分配完全部資源之后可以使用鏡像來啟動虛擬機。Nova向Glance申請鏡像資源。該鏡像資源也是由資源配置文件指定。隨后Glance啟動鏡像相關管理工作,查找鏡像資源。如果自身目錄沒有對應鏡像資源,Glance會去后端Swift存儲請求對應的鏡像資源。此時Swift類似一個文件服務器。找到對應的鏡像資源后,Glance將鏡像資源(就是文件)傳遞給Nova組件。

      4.?Nova隨即請求網絡資源。所謂網絡資源,就是為虛擬機分配端口資源、配置IP地址、配置二層互通資源(VLAN、VxLAN等等)、打通三層路由。

      5.?通過Cinder請求存儲。同Nova申請計算資源一樣,Cinder也經過查找、篩選和排序過程選定存儲資源,將相應磁盤參數傳遞給Nova組件。

      最后由Nova組件將計算、存儲和網絡資源組合,創建虛擬機。利用鏡像文件引導啟動虛擬機的系統。此時虛擬機就運行起來了。

      6.??如果上述鏡像中的上層應用不完整,用戶也可以在虛擬機啟動之后安裝自己所需的應用。

      7.?安裝完成后,使用Glance將包含新裝應用的虛擬機打包創建鏡像;

      8.?通過Swift將新創建的鏡像保存。后續如果Nova使用新的鏡像啟動虛擬機,新啟動的虛擬機就會包含本次新裝的應用,用戶不必重新安裝該應用。

      當然,實際的虛擬機創建過程要更加復雜。每個組件內部還會有子進程,實現資源復雜的調度。(如下圖所示)絕大部分工程師不必深入細節。

      實際的配置中,除網絡部分的Neutron組件和磁盤管理的Cinder組件外,其他組件所需要的配置均不多。每個組件會有一些參數開關,這些開關通常保持默認值,工程師不需要修改。理解上述原理是理解這些開關的基礎。

      (但設計是相當復雜的!)

      下圖是華為CloudEdge2.0在部署NFV架構的EPC網絡時各組件需要做的配置。在后續的章節中我們還會詳細展開。

      如何記住OpenStack組件

      “看過聽過很多遍OpenStack原理,就是記不住這些組件的名字。”相信這是很多人的心聲。下面我們就提供一套臆測的、非正統的OpenStack命名解讀。旨在幫助讀者記住OpenStack組件名稱及功能。

      Nova

      負責計算資源的Nova組件是OpenStack的核心。這個組件的名字也被打上了深深的NASA烙印。Nova原義是天文學上的“新星”。

      Cinder

      負責塊存儲的Cinder可以對應Cylinder這個詞。Cylinder意思是“圓柱體”,正好是機械硬盤的物理形態。

      另外,1960年代,阿波羅登月計劃中曾在亞利桑那州一個叫Cinder Lake的區域測試月球車。Cinder這個詞的使用是不是也有向NASA前輩致敬的意思?

      Neutron

      Neutron用來管理網絡,這部分組件最初命名為Quantum。但因該名字與其他公司重名,于是改名為Neutron。Neutron的本義是“中子”。在記憶的時候,我更習慣將該詞與相近的neuron(神經元)聯系起來。看下圖神經元的結構,像不像一張復雜的網絡呢。

      Glance

      Glance負責鏡像(Image)的管理。每當讀到這個詞,腦中就浮現“回眸一笑百媚生”的句子。

      看下面這張圖,這回頭一瞥是不是與“鏡”聯系了起來。

      Swift

      Swift負責對象管理,因此對象很多,每次和對象分手都要寫歌。(請自行搜索Taylor Swift、男朋友)

      Ceilometer

      所有和meter相關的都與測量有關,比如曝光計exposure meter、體溫計thermometer。停車計費的“咪表”也是Meter這個詞的音譯。

      Ceilometer原是利用激光反射來測量云層高度的云高計。OpenStack使用這個詞來命名測量和監控組件也算貼切。

      Keystone

      Keystone原本是拱券頂端合龍的最關鍵一塊石頭。

      如果只把Keystone中的Key拿出來看,Keystone用于鑒權就很容易理解了。相信所有人原本在記憶Keystone的作用上也不存在問題。

      Horizon

      Horizon的意思是“地平線”。看看下圖的地平線是不是有“界面”的感覺。

      如果神經略微“大條”,還感覺不出來的話,再看下圖,應該就能理解Horizon是管理“界面”的含義了。

      Heat

      Heat是業務編排,就是把云資源組織成你需要的樣子。如同鍛鐵,首先要heat(加熱),然后將鐵塊打造成需要的樣子。

      從CT到IT的云架構,需要跨越CT到IT、IT到云兩道溝。OpenStack的結構一直是CT工程師困惑所在。希望本文成為CT工程師理解OpenStack的第一站。

      感謝丁彥俊、陶文、王嗣燁對文本的貢獻;感謝申紀偉對文中部分知識點的答疑解惑。

      關注“全球PS交付聯盟”,共同迎接NFV時代。

      【云深知處】NFV理論與實踐(5)-大話OpenStack

      OpenStack 存儲

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:筆記本怎么打印工資表(筆記本做工資表)
      下一篇:Rank函數多條件權重排名
      相關文章
      国产亚洲精品欧洲在线观看| 亚洲好看的理论片电影| 国产亚洲精品xxx| 亚洲精品国产第一综合99久久| 伊人久久综在合线亚洲2019| 亚洲成在人线av| 亚洲日韩av无码| 久久乐国产精品亚洲综合| 亚洲国产综合久久天堂| 综合偷自拍亚洲乱中文字幕| 亚洲精品无码国产片| 亚洲国产成人AV网站| 国产亚洲美女精品久久| 内射无码专区久久亚洲| 亚洲精品成人久久久| 亚洲中文字幕久久精品无码喷水| 国产成人A亚洲精V品无码| 久久精品国产精品亚洲精品 | 亚洲香蕉久久一区二区三区四区| 亚洲激情校园春色| 久久精品国产亚洲AV久| 亚洲中文无码永久免费| 亚洲av永久中文无码精品| 亚洲精品美女久久7777777| 激情小说亚洲图片| 亚洲午夜激情视频| 国产偷窥女洗浴在线观看亚洲| 国产自偷亚洲精品页65页| 久久久久久久尹人综合网亚洲| 亚洲国产综合精品中文第一区| 亚洲美女大bbbbbbbbb| ASS亚洲熟妇毛茸茸PICS| 国产精品亚洲lv粉色| 国产福利电影一区二区三区,亚洲国模精品一区| www国产亚洲精品久久久| 亚洲精品午夜无码电影网| 精品无码一区二区三区亚洲桃色| 亚洲国产中文在线视频| 亚洲精华国产精华精华液| 亚洲精品成人区在线观看| 亚洲av永久无码精品国产精品|