Open Stack Compute Infrastructure (Nova)
Nova是OpenStack雲中的計算群組織控制器。支援OpenStack雲中執行個體(instances)生命週期的所有活動都由Nova處理。這樣使得Nova成為一個負責管理計算資源、網路、認證、所需可擴充性的平台。但是,Nova自身並沒有提供任何虛擬化能力,相反它使用libvirt API來與被支援的Hypervisors互動。Nova 通過一個與Amazon Web Services(AWS)EC2 API相容的web services API來對外提供服務。
功能和特點:
執行個體生命週期管理
管理計算資源
網路和認證管理
REST風格的API
非同步一致性通訊
Hypervisor透明:支援Xen,XenServer/XCP, KVM, UML, VMware vSphere and Hyper-V
OpenStack計算的組成:
Nova 雲架構包括以下主要組件:
API Server (nova-api)
Message Queue (rabbit-mq server)
Compute Workers (nova-compute)
Network Controller (nova-network)
Volume Worker (nova-volume)
Scheduler (nova-scheduler)
API Server(nova-api)
API Server對外提供一個與雲基礎設施互動的介面,也是外部可用於管理基礎設施的唯一組件。管理使用EC2 API通過web services調用實現。然後API Server通過訊息佇列(Message Queue)輪流與雲基礎設施的相關組件通訊。作為EC2 API的另外一種選擇,OpenStack也提供一個內部使用的“OpenStack API”。
Message Queue(Rabbit MQ Server)
OpenStack 節點之間通過訊息佇列使用AMQP(Advanced Message Queue Protocol)完成通訊。Nova 通過非同步呼叫請求響應,使用回呼函數在收到響應時觸發。因為使用了非同步通訊,不會有使用者長時間卡在等待狀態。這是有效,因為許多API調用預期的行為都非常耗時,例如載入一個執行個體,或者上傳一個鏡像。
Compute Worker(nova-compute)
Compute Worker處理管理執行個體生命週期。他們通過Message Queue接收執行個體生命週期管理的請求,並承擔操作工作。在一個典型生產環境的雲部署中有一些compute workers。一個執行個體部署在哪個可用的compute worker上取決於調度演算法。
Network Controller(nova-network)
Network Controller 處理主機地網路設定。它包括IP地址分配、為項目配置VLAN、實現安全性群組、配置計算節點網路。
Volume Workers(nova-volume)
Volume Workers用來管理基於LVM(Logical Volume Manager)的執行個體卷。Volume Workers有卷的相關功能,例如建立卷、刪除卷、為執行個體附加卷,為執行個體分離卷。卷為執行個體提供一個持久化儲存,因為根分區是非持久化的,當執行個體終止時對它所作的任何改變都會丟失。當一個卷從執行個體分離或者執行個體終止(這個卷附加在該終止的執行個體上)時,這個卷保留著儲存在其上的資料。當把這個卷重附載入相同執行個體或者附加到不同執行個體上時,這些資料依舊能被訪問。
一個執行個體的重要資料幾乎總是要寫在卷上,這樣可以確保能在以後訪問。這個對儲存的典型應用需要資料庫等服務的支援。
Scheduler(nova-scheduler)
調度器Scheduler把nova-API調用映射為OpenStack組件。調度器作為一個稱為nova-schedule守護進程運行,通過恰當的調度演算法從可用資源集區獲得一個計算服務。Scheduler會根據諸如負載、記憶體、可用域的物理距離、CPU構架等作出調度決定。nova scheduler實現了一個可插入式的結構。
當前nova-scheduler實現了一些基本的調度演算法:
隨機演算法:計算主機在所有可用域內隨機播放
可用域演算法:跟隨機演算法相仿,但是計算主機在指定的可用域內隨機播放。
簡單演算法:這種方法選擇負載最小的主機運行執行個體。負載資訊可通過負載平衡器獲得。
以上所述是小編給大家介紹的OpenStack 中的Nova組件詳解,希望對大家有所協助,如果大家有任何疑問請給我留言,小編會及時回複大家的。在此也非常感謝大家對雲棲社區網站的支援!