openstack命令,openstack中region、az、host aggregate、cell 概念

 2023-11-18 阅读 22 评论 0

摘要:1. region   更像是一個地理上的概念,每個region有自己獨立的endpoint,regions之間完全隔離,但是多個regions之間共享同一個keystone和dashboard。(注:目前openstack的dashboard還不支持多region)   所以除了提供隔離的功能&#

1. region

  更像是一個地理上的概念,每個region有自己獨立的endpoint,regions之間完全隔離,但是多個regions之間共享同一個keystone和dashboard。(注:目前openstack的dashboard還不支持多region)

  所以除了提供隔離的功能,region的設計更多側重地理位置的概念,用戶可以選擇離自己更近的region來部署自己的服務。

openstack命令,2. cell

  cell是openstack一個非常重要的概念,主要用來解決openstack的擴展性和規模瓶頸。眾所周知,openstack是由很多的組件通過松耦合構成,那么當達到一定的規模后,某些模塊必然成為整個系統的瓶頸。比較典型的組件就是database和AMQP了,所以,每個cell有自己獨立的DB和AMQP。

  另外,由于cell被實現為樹形結構,自然而然引入了分級調度的概念。通過在每級cell引入nova-cell服務,實現了以下功能:

  • Messages的路由,即父cell通過nova-cell將Messages路由到子cell的AMQP模塊
  • 分級調度功能,即調度某個instances的時候先要進行cell的選擇,目前只支持隨機調度,后續會增加基于filter和weighing策略的調度
  • 資源統計,子cell定時的將自己的資源信息上報給父cell,用來給分級調度策略提供決策數據和基于cell的資源監控
  • cell之間的通信(通過rpc完成)

  最后,所有的子cell公用底層cell的nova-api,子cell包含除了nova-api之外的其他nova服務,當然所有的cell都共用keystone服務。

  (注:nova-*是指除了nova-api之外的其他nova服務,子cell + 父cell才構成了完整的nova服務)

openstack keystone、  

  每一個 Cell 包含獨立的 Message Broker 以及 Database,其中 API Cell 主要包含 nova-api 服務,用于接收用戶請求,并將用戶請求通過 message 的形式發送至指定的 Cell;Child Cell 包含除 nova-api 之外的所有 nova-*服務,實現具體的 Nova Compute 節點服務;API Cell 與 Child Cell 共享 Glance 服務,且各 Cells 之間的通信均通過 nova cells 服務進行。Cell 調度獨立于與 host 調度,在創建新的實例時,首先由 nova-cells 選擇一個 Cell。當 Cell 確定后,實例創建請求會被送達目標 Cell 的 nova-cells 服務,隨后該請求會被交給本 Cell 的主機調度機制處理,此時主機調度機制會像未配置 Cell 的環境一樣處理該請求。

  ?http://www.ibm.com/developerworks/cn/cloud/library/1409_zhaojian_openstacknovacell/index.html

3.?Availability Zone

  AZ可以簡單理解為一組節點的集合,這組節點具有獨立的電力供應設備,比如一個個獨立供電的機房,一個個獨立供電的機架都可以被劃分成AZ。所以,AZ主要是通過冗余來解決可用性問題。  

openstack概述?  AZ是用戶可見的一個概念,用戶在創建instance的時候可以選擇創建到哪些AZ中,以保證instance的可用性。

4.?Host Aggregate (http://docs.openstack.org/havana/config-reference/content/host-aggregates.html)

  AZ是一個面向用戶的概念和能力,而host aggregate是管理員用來根據硬件資源的某一屬性來對硬件進行劃分的功能,只對管理員可見,主要用來給nova-scheduler通過某一屬性來進行instance的調度。其主要功能就是實現根據某一屬性來劃分物理機,比如按照地理位置,使用固態硬盤的機器,內存超過32G的機器,根據這些指標來構成一個host group。

  Example: Specify compute hosts with SSDs
/etc/nova/nova.conf:
scheduler_default_filters=AggregateInstanceExtraSpecsFilter,AvailabilityZoneFilter,RamFilter,ComputeFilter$ nova aggregate-create fast-io nova
+----+---------+-------------------+-------+----------+
| Id | Name    | Availability Zone | Hosts | Metadata |
+----+---------+-------------------+-------+----------+
| 1  | fast-io | nova              |       |          |
+----+---------+-------------------+-------+----------+$ nova aggregate-set-metadata 1 ssd=true
+----+---------+-------------------+-------+-------------------+
| Id | Name    | Availability Zone | Hosts | Metadata          |
+----+---------+-------------------+-------+-------------------+
| 1  | fast-io | nova              | []    | {u'ssd': u'true'} |
+----+---------+-------------------+-------+-------------------+$ nova aggregate-add-host 1 node1
+----+---------+-------------------+-----------+-------------------+
| Id | Name    | Availability Zone | Hosts      | Metadata          |
+----+---------+-------------------+------------+-------------------+
| 1  | fast-io | nova              | [u'node1'] | {u'ssd': u'true'} |
+----+---------+-------------------+------------+-------------------+$ nova aggregate-add-host 1 node2
+----+---------+-------------------+---------------------+-------------------+
| Id | Name    | Availability Zone | Hosts                | Metadata          |
+----+---------+-------------------+----------------------+-------------------+
| 1  | fast-io | nova              | [u'node1', u'node2'] | {u'ssd': u'true'} |
+----+---------+-------------------+----------------------+-------------------+
$ nova flavor-create ssd.large 6 8192 80 4
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name      | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 6  | ssd.large | 8192      | 80   | 0         |      | 4     | 1           | True      | {}          |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
# nova flavor-key set_key --name=ssd.large  --key=ssd --value=true
$ nova flavor-show ssd.large
+----------------------------+-------------------+
| Property                   | Value             |
+----------------------------+-------------------+
| OS-FLV-DISABLED:disabled   | False             |
| OS-FLV-EXT-DATA:ephemeral  | 0                 |
| disk                       | 80                |
| extra_specs                | {u'ssd': u'true'} |
| id                         | 6                 |
| name                       | ssd.large         |
| os-flavor-access:is_public | True              |
| ram                        | 8192              |
| rxtx_factor                | 1.0               |
| swap                       |                   |
| vcpus                      | 4                 |
+----------------------------+-------------------+
Now, when a user requests an instance with the ssd.large flavor, the scheduler only considers hosts with the ssd=true key-value pair. In this example, these are node1 and node2.

  另外,G版中,默認情況下,對Nova服務分為兩類,一類是controller節點的服務進程,如nova-api, nova-scheduler, nova-conductor等;另一類是計算節點進程,nova-compute。對于第一類服務,默認的zone是配置項internal_service_availability_zone,而nova-compute所屬的zone由配置項default_availability_zone決定。(這兩個配置項僅在nova-api的節點起作用,horizon界面才會刷新)。

  可能是社區的開發人員意識到,讓管理員通過配置的方式管理zone不太合適,不夠靈活,所以在G版中將這一方式修改。就改用nova??aggregate-create 命令,在創建一個aggregate的同時,指定一個AZ。

root@controller:~# nova help aggregate-create  
usage: nova aggregate-create <name> [<availability-zone>]  Create a new aggregate with the specified details.  Positional arguments:  <name>               Name of aggregate.  <availability-zone>  The availability zone of the aggregate (optional).  

基于openstack,  因此創建一個aggregate后,同時把它作為一個zone,此時aggregate=zone。因為大家知道,aggregate是管理員可見,普通用戶不可見的對象,那么這個改變,就可以使普通用戶能夠通過使用zone的方式來使用aggregate。

  創建完aggregate之后,向aggregate里加主機時,該主機就自動屬于aggregate表示的zone。

  在G版之后,可以認為aggregate在操作層面與AZ融合在一起了,但同時又不影響aggregate與flavor的配合使用,因為這是兩個調度層面。同時又要注意,一個主機可以加入多個aggregate中,所以G版中一個主機可以同時屬于多個Availability Zone,這一點也與之前的版本不同。

?

轉載于:https://www.cnblogs.com/xingyun/p/4703325.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/174990.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息