OpenStack視圖
OpenStack視圖是個全局資源的概念,統計了OpenStack所納管資源的總量和使用量,所以OpenStack視圖的資源一般又稱爲物理資源。OpenStack基於該資源使用以及分佈狀況進行調度。當資源不足時,將致使虛擬機調度失敗,用戶請求不會報錯,但虛擬機狀態爲ERROR。 可是須要注意的是,OpenStack視圖的資源是按分配量計算的,而不是按照實際使用量統計。好比用戶申請了一臺2C 4GB的雲主機,但該雲主機關機了,此時雲主機實際上並不佔用任何CPU和內存,但OpenStack在統計中仍是須要減去2C 4GB資源。對於OpenStack來講,已經分配的資源,無論用戶究竟有沒有在使用,除非刪除,不然不會被回收,也不能被其餘虛擬機搶佔。 OpenStack統計的資源總量在不超售的狀況下等於全部物理資源總和,但若是設置了超售,OpenStack實際分配的資源可能大於資源總量。 OpenStack Nova經過hypervisor-stats查看整個集羣的資源使用狀況:內存
~/int32bit # nova hypervisor-stats
+----------------------+---------+
| Property | Value |
+----------------------+---------+
| count | 18 |
| current_workload | 0 |
| disk_available_least | 3617 |
| free_disk_gb | 1562 |
| free_ram_mb | 1018842 |
| local_gb | 4452 |
| local_gb_used | 2890 |
| memory_mb | 4322820 |
| memory_mb_used | 3303978 |
| running_vms | 291 |
| vcpus | 561 |
| vcpus_used | 1148 |
+----------------------+---------+
須要注意的是,以上統計的是整個集羣的物理資源,而不是單個計算節點的資源,這意味着並非總量知足請求資源就能夠調度,可能存在資源碎片致使調度虛擬機失敗。好比,假設有20臺計算節點,每一個計算節點剩餘2GB內存,統計總量內存剩餘量爲2GB * 20 == 40GB,但用戶若申請一臺4GB內存的虛擬機調度仍然會失敗,緣由是沒有任何一個計算節點知足內存資源。資源
要查看單個計算節點的資源可使用hypervisor-show子命令:虛擬機
~/int32bit # nova hypervisor-show 1
+---------------------------+-----------------+
| Property | Value |
+---------------------------+-----------------+
| free_disk_gb | 561 |
| free_ram_mb | 58978 |
| local_gb | 1181 |
| local_gb_used | 620 |
| memory_mb | 262002 |
| memory_mb_used | 203024 |
| vcpus | 32 |
| vcpus_used | 86 |
|... | ... |
+---------------------------+-----------------+it