OpenStack Host Aggregation用例分析 (H版)
前兩天遇到這樣一個問題,使用者在建立VM instance的時候,想讓一些VM instance建立到SSD的機器上,一部分VM instance建立到SAS的機器上,並且live migration的時候,也要遵守這樣的規則。
這是一個非常典型的host aggregation的用例,我們可以通過AggregateInstanceExtraSpecsFilter來實現此功能。
第一步,enable AggregateInstanceExtraSpecsFilter,編輯/etc/nova/nova.conf,將如下配置加到[DEFAULT]段,配置完成後,重啟nova-scheduler讓配置生效。
scheduler_default_filters=AggregateInstanceExtraSpecsFilter
[[email protected] ~]# /etc/init.d/openstack-nova-scheduler restart
Stopping openstack-nova-scheduler: [ OK ]
Starting openstack-nova-scheduler: [ OK ]
第二步,建立第一個host aggregation,併為這個host aggregation設定metadata SSD=1
[[email protected] ~]# nova aggregate-create aggregate1 nova
+----+------------+-------------------+-------+----------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+-------+----------+
| 1 | aggregate1 | nova | | |
+----+------------+-------------------+-------+----------+
[ [email protected] ~]# nova aggregate-add-host 1 rhel8234
Aggregate 1 has been successfully updated.
+----+------------+-------------------+---------------+---------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+---------------+---------------------------------+
| 1 | aggregate1 | nova | [u'rhel8234'] | {u'availability_zone': u'nova'} |
+----+------------+-------------------+---------------+---------------------------------+
[[email protected] ~]# nova aggregate-set-metadata 1 SSD=1
Aggregate 1 has been successfully updated.
+----+------------+-------------------+---------------+-----------------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+---------------+-----------------------------------------------+
| 1 | aggregate1 | nova | [u'rhel8234'] | {u'SSD': u'1', u'availability_zone': u'nova'} |
+----+------------+-------------------+---------------+-----------------------------------------------+
第三步,建立第二個host aggregation,併為這個host aggregation設定metadata SAS=1
[[email protected] ~]# nova aggregate-create aggregate2 nova
+----+------------+-------------------+-------+----------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+-------+----------+
| 2 | aggregate2 | nova | | |
+----+------------+-------------------+-------+----------+
[[email protected] ~]# nova aggregate-add-host 2 rhel8235
Aggregate 2 has been successfully updated.
+----+------------+-------------------+---------------+---------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+---------------+---------------------------------+
| 2 | aggregate2 | nova | [u'rhel8235'] | {u'availability_zone': u'nova'} |
+----+------------+-------------------+---------------+---------------------------------+
[[email protected] ~]# nova aggregate-set-metadata 2 SAS=1
Aggregate 2 has been successfully updated.
+----+------------+-------------------+---------------+-----------------------------------------------+
| Id | Name | Availability Zone | Hosts | Metadata |
+----+------------+-------------------+---------------+-----------------------------------------------+
| 2 | aggregate2 | nova | [u'rhel8235'] | {u'SAS': u'1', u'availability_zone': u'nova'} |
+----+------------+-------------------+---------------+-----------------------------------------------+
第四步,建立兩個flavor,一個設定[[email protected] ~]# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | {} |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | {} |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | {} |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | {} |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {} |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
[[email protected] ~]# nova flavor-create ssd 6 512 0 1
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 6 | ssd | 512 | 0 | 0 | | 1 | 1.0 | True | {} |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
[[email protected] ~]# nova flavor-key 6 set SSD=1
[[email protected] ~]# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | {} |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | {} |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | {} |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | {} |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {} |
| 6 | ssd | 512 | 0 | 0 | | 1 | 1.0 | True | {u'SSD': u'1'} |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
[[email protected] ~]# nova flavor-create sas 7 512 0 1
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
| 7 | sas | 512 | 0 | 0 | | 1 | 1.0 | True | {} |
+----+------+-----------+------+-----------+------+-------+-------------+-----------+-------------+
[[email protected] ~]# nova flavor-key 7 set SAS=1
[[email protected] ~]# nova flavor-list
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
| ID | Name | Memory_MB | Disk | Ephemeral | Swap | VCPUs | RXTX_Factor | Is_Public | extra_specs |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
| 1 | m1.tiny | 512 | 1 | 0 | | 1 | 1.0 | True | {} |
| 2 | m1.small | 2048 | 20 | 0 | | 1 | 1.0 | True | {} |
| 3 | m1.medium | 4096 | 40 | 0 | | 2 | 1.0 | True | {} |
| 4 | m1.large | 8192 | 80 | 0 | | 4 | 1.0 | True | {} |
| 5 | m1.xlarge | 16384 | 160 | 0 | | 8 | 1.0 | True | {} |
| 6 | ssd | 512 | 0 | 0 | | 1 | 1.0 | True | {u'SSD': u'1'} |
| 7 | sas | 512 | 0 | 0 | | 1 | 1.0 | True | {u'SAS': u'1'} |
+----+-----------+-----------+------+-----------+------+-------+-------------+-----------+----------------+
第五步,建立VM instance
[[email protected] ~]# nova boot --image cirros-0.3.0-x86_64 --flavor 6 vm1
+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state | scheduling |
| image | cirros-0.3.0-x86_64 |
| OS-EXT-STS:vm_state | building |
| OS-EXT-SRV-ATTR:instance_name | instance-00000012 |
| flavor | ssd |
| id | ffaaff35-f696-4887-b3b9-84a73edbb143 |
| security_groups | [{u'name': u'default'}] |
| user_id | 5091a627caa3497ba42a5c3e44826310 |
| OS-DCF:diskConfig | MANUAL |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
| status | BUILD |
| updated | 2013-03-06T07:01:22Z |
| hostId | |
| OS-EXT-SRV-ATTR:host | None |
| key_name | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| name | vm1 |
| adminPass | o5ArG99zSxkD |
| tenant_id | 2e4d1beeb95344d5802d4a7ba488f076 |
| created | 2013-03-06T07:01:21Z |
| metadata | {} |
+-------------------------------------+--------------------------------------+
[[email protected] ~]# nova boot --image cirros-0.3.0-x86_64 --flavor 7 vm2
+-------------------------------------+--------------------------------------+
| Property | Value |
+-------------------------------------+--------------------------------------+
| OS-EXT-STS:task_state | scheduling |
| image | cirros-0.3.0-x86_64 |
| OS-EXT-STS:vm_state | building |
| OS-EXT-SRV-ATTR:instance_name | instance-00000013 |
| flavor | sas |
| id | dc5f5ce9-3327-448d-af52-fb5fac197b38 |
| security_groups | [{u'name': u'default'}] |
| user_id | 5091a627caa3497ba42a5c3e44826310 |
| OS-DCF:diskConfig | MANUAL |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
| status | BUILD |
| updated | 2013-03-06T07:01:29Z |
| hostId | |
| OS-EXT-SRV-ATTR:host | None |
| key_name | None |
| OS-EXT-SRV-ATTR:hypervisor_hostname | None |
| name | vm2 |
| adminPass | X9cuS3chj2Cg |
| tenant_id | 2e4d1beeb95344d5802d4a7ba488f076 |
| created | 2013-03-06T07:01:28Z |
| metadata | {} |
+-------------------------------------+--------------------------------------+
第六步,檢查VM instance的home server,是不是建立在對應的機器上
[[email protected] ~]# nova list
+--------------------------------------+------+--------+----------+
| ID | Name | Status | Networks |
+--------------------------------------+------+--------+----------+
| ffaaff35-f696-4887-b3b9-84a73edbb143 | vm1 | ACTIVE | |
| dc5f5ce9-3327-448d-af52-fb5fac197b38 | vm2 | ACTIVE | |
+--------------------------------------+------+--------+----------+
[[email protected] ~]# nova show vm1
+-------------------------------------+------------------------------------------------------------+
| Property | Value |
+-------------------------------------+------------------------------------------------------------+
| status | ACTIVE |
| updated | 2013-03-06T07:01:27Z |
| OS-EXT-STS:task_state | None |
| OS-EXT-SRV-ATTR:host | rhel8234 |
| key_name | None |
| image | cirros-0.3.0-x86_64 (11042c91-2476-4386-a3ad-038df763ec5b) |
| hostId | 75f0f4964d23eb4048bf23a3617a46e1fddeabde72f0165deb2440e9 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-00000012 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | rhel8234 |
| flavor | ssd (6) |
| id | ffaaff35-f696-4887-b3b9-84a73edbb143 |
| security_groups | [{u'name': u'default'}] |
| user_id | 5091a627caa3497ba42a5c3e44826310 |
| name | vm1 |
| created | 2013-03-06T07:01:21Z |
| tenant_id | 2e4d1beeb95344d5802d4a7ba488f076 |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
+-------------------------------------+------------------------------------------------------------+
[[email protected] ~]# nova show vm2
+-------------------------------------+------------------------------------------------------------+
| Property | Value |
+-------------------------------------+------------------------------------------------------------+
| status | ACTIVE |
| updated | 2013-03-06T07:01:34Z |
| OS-EXT-STS:task_state | None |
| OS-EXT-SRV-ATTR:host | rhel8235 |
| key_name | None |
| image | cirros-0.3.0-x86_64 (11042c91-2476-4386-a3ad-038df763ec5b) |
| hostId | cf84f90cb460f9c2516abb5b9ec0e49503d22369c71f6d1940b30dd0 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-00000013 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | rhel8235 |
| flavor | sas (7) |
| id | dc5f5ce9-3327-448d-af52-fb5fac197b38 |
| security_groups | [{u'name': u'default'}] |
| user_id | 5091a627caa3497ba42a5c3e44826310 |
| name | vm2 |
| created | 2013-03-06T07:01:28Z |
| tenant_id | 2e4d1beeb95344d5802d4a7ba488f076 |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
+-------------------------------------+------------------------------------------------------------+
通過以上,可以看出我們的配置已經生效,使用SSD的VM建立在了rhel8234上,而使用SAS的建立在了rhel8235上。相關推薦
OpenStack Host Aggregation用例分析 (H版)
前兩天遇到這樣一個問題,使用者在建立VM instance的時候,想讓一些VM instance建立到SSD的機器上,一部分VM instance建立到SAS的機器上,並且live migration的時候,也要遵守這樣的規則。 這是一個非常典型的host aggregat
需求用例分析之六:業務用例之科伯恩系
做的 有時 data- time 重寫 比例 zhang 時間 討論 作者:張克強 作者微博:張克強-敏捷307 來自於科伯恩《編寫有效用例》對業務用例的說明 在《使用 UML 進行業務建模:理解業務用例與系統用例的相似和不同之處》中分析科伯恩編寫有效用比例如
ICONIX方法(用例分析方法實例教程)
cnblogs 實例教程 png -1 alt 實例 分析方法 分析 image ICONIX方法(用例分析方法實例教程)
老美優惠券獲取攻略和相關產品用例分析
本文翻譯自BuzzFeed,作者是名女性編輯,所以裡面有些取巧的購物方法,可以理解:)1. 在購買之前,建立一個帳號,宣告你的生日是在那一天(呃...),很多網站會給到你5%到20%的折扣。2. 當你線上購物時,試著把物品在購物車裡放上兩天,根據Reddit社群的經驗分享,很
openstack效能測試用例和測試結果
雲平臺迴歸測試資料分析 1.1. Cpu不同繫結策略對比測試 測試過程:在單臺host上起一臺vm,8核cpu,cpu採用不同的繫結策略。在vm上部署tomcat作為web server,用apache ab命令跑併發,並將8核cpu全部跑滿,測試檔案為動態小檔
驗證碼的測試用例分析
<一>文字輸入框的合法性檢測 1.輸入正確的文字、數字、符號,例如中國ABC123等字元,可以提交成功; 2.輸入特殊字元檢測,特殊字元(例如%、&、?、英文狀態下的單引號等)不引起系統出錯,則通過檢測; 3.空格的檢測: a.空格在行首的檢測(例如 中國),自動過濾行首的空格; b.空格
需求用例分析之一:異常流
備選流,又稱備選事件流,英文是Alternative Flow。在RUP和UML中,備選流的解釋如下:備選事件流包括與正常行為相關的可選或異常特徵的行為,同時也包括正常行為的各種變形。您可以將備選事件流看作是基本事件流的“繞行道”,有些備選事件流將返回到基本事件流,而有些將結束此用例的執行。 分析RUP對
需求用例分析之七:業務用例之小結
RUP雖然對於業務物件建模進行了詳細的說明,但其本身並沒有把業務物件建模(領域模型)、業務用例作為必須的工件。Rational系方法把業務用例作為需求規格說明(SRS)前的推薦工件。
閱讀《大型網站技術架構:核心原理與案例分析》第五、六、七章,結合《河北省重大技術需求征集系統》,列舉實例分析采用的可用性和可修改性戰術
定時 並不會 表現 做出 span class 硬件 進行 情況 網站的可用性描述網站可有效訪問的特性,網站的頁面能完整呈現在用戶面前,需要經過很多個環節,任何一個環節出了問題,都可能導致網站頁面不可訪問。可用性指標是網站架構設計的重要指標,對外是服務承諾,對內是考核指
需求分析用例圖和活動圖
pos com post OS 分享 http 需求 分析 活動 需求分析用例圖和活動圖
testlink用例轉換工具2018.12版
首先說明一點,網上有很多資料,但真正可用的很少;在本人經過百度後,發現其實很多案例會因為各種原因而無法最終實現。 Testlink用例轉換工具,可以大致分為3種工具: 1)EX-Converter由第三公司開發testlink輔助工具,但那個不太好用; 地址:https://source
軟體測試中測試用例常用的設計方法分析
一、場景法 官方:通過運用場景法對系統的功能點或業務流程描述,從而提高測試效果。場景法一般包含基本流和備選流,從一個流程開始,通過描述經過的路徑來確定的過程,經過遍歷所有的基本流和備用流來完成整個場景。 個人總結:設計
AKKA文件(java版)——用例與部署場景
我如何使用與部署akka? 有兩種不同的使用akka的方式: 作為一個庫:作為一個web應用的類路徑下的普通JAR使用,將它放在WEB-INF/lib。 在一上主類中通過例項化ActorSystem作為一個獨立的應用執行,或使用微核心(Scala) / 將akka作為一個庫使用 如果你在
PAT 1020 月餅 (25)(精簡版程式碼+思路+推薦測試用例)
1020 月餅 (25)(25 分)提問 月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需求量,請你計算可以獲得的最大收益是多少。 注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們
用 Access 分析網站一例
Option Compare DatabasePublic lngSearchIP(4) As LongPublic strNowIP As StringPublic strOKAddress As StringPublic strOKIP As StringPublic blnStop As Boolean
測試用例 一招搞定sql分析
首先檢視mysql的sql記錄是否打開了 show variables like 'g%'; 如果沒有開啟就開啟sql記錄 set global general_log = on; 在日誌檔案中 日誌檔案在第一張圖general_lo
劍指Offer演算法題JAVA版21-30題(全是個人寫的非官方,只供參考和自己複習,測試用例都通過了。)
21.棧的壓入、彈出序列、 輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否為該棧的彈出順序。假設壓入棧的所有數字均不相等。例如序列1,2,3,4,5是某棧的壓入順序,序列4,5,3,2,1是該壓棧序列對應的一個彈出序列,但4,3,5,1,2就不可能是該壓
測試之黑盒測試用例設計方法(邊界值分析)
此方法是對等價類劃分法的補充,他不是選擇等價類的任意元素,而是選擇等價類邊界的測試用例,邊界值的處理也是比較容易出錯的地方。使用邊界值分析方法設計測試用例,首先應確定邊界情況。通常輸入
黑盒測試用例設計模式-輸入域分析
一、概念 什麼是輸入域分析:輸入域分析是一種綜合的方法,綜合了等價類劃分法、邊界值分析法等方法。這裡說的輸入域就是指輸入,針對輸入會有各種 各樣的輸入值。輸入域測試主要考慮三個方面:
九、我們應當怎樣做需求分析:功能角色分析與用例圖
在我們進行一系列需求調研工作的同時,我們的需求分析工作也開始啟動了。需求調研與需求分析工作應當是相輔相伴共同進行的。每次參加完需求調研回到公司,我們就應當對需求調研的成果進行一次需求分析。當下一次開始進行需求調研時,我們應當首先將上次需求分析的結果與客戶進行確認,同時對需求