Openstack

Openstack 只為集群中的每台機器建構一個虛擬機,然後耗盡資源

  • January 30, 2022

我正在建構一個 openstack 集群,並且遇到了一些我認為可能是配額問題的問題。我可以在每台主機上成功建構虛擬機,但每台主機只有一個虛擬機。

我使用 puppet 部署了系統。目前部署的 openstack 版本是 Ussuri。使用的 openstack puppet 模組是 17.4,除了使用 13.4 的 puppet-vswitch

每個計算主機(管理程序)有 64 個核心和 512GB 的 RAM。即使我啟動了一個 2 核 vm,我也無法在該虛擬機管理程序上再啟動,並且我在日誌中收到以下錯誤:

調度程序日誌:

"status": 409, "title": "Conflict", "detail": "There was a conflict when trying to complete your request.\n\n Unable to allocate inventory: Unable to create allocation for 'VCPU' on resource provider

nova-conductor.log

2021-05-24 15:31:21.770 31421 ERROR nova.conductor.manager [req-18e93e25-5cc2-43b6-a036-312ed064070b 9f72d8a0694146288eb09ac7fee38298 7016985dddfe4048b535ca7ff12a0c68 - default default] Failed to schedule instances: nova.exception_Remote.NoValidHost_Remote: No valid host was found. There are not enough hosts available.

我已經檢查並重新檢查了該項目的配額,並且實例數設置為 10000,所以我不確定我缺少什麼:

| 固定IP | 10000

| 浮動_ips | 無

| 健康監視器 | 無

| 注入文件大小 | 10240

| 注入文件 | 5

| 注入路徑大小 | 255

| 實例 | 10000

| 密鑰對 | 100 | 項目名稱 | 管理員

| 屬性 | 128

| 公羊 | 99999999

我不太確定我還能檢查什麼,並且從我完成的搜尋中,似乎沒有其他人遇到過這樣的事情,所以我希望它是一個簡單的設置,我錯過了。

編輯 5-26-21:我進行了更多測試,發現了一個有趣的模式。

如果我在計算主機上放置一台 1 核機器(風格 m1.nano),我可以建構任意數量的虛擬機,任何我想要的風格,直到機器物理執行資源。

如果我創建了大於 1 核 vm 的任何東西,並且該 vm 是在還沒有 1 核 vm 的計算主機上啟動的,那麼在放置一台機器後,在該主機上建構的任何其他 vm 都會失敗。

除了告訴我它在失敗時無法分配 vcpus 之外,日誌沒有任何幫助。

編輯添加部署方法和 openstack 版本。

提前致謝!-傑夫

我最近將此類錯誤歸結為 MariaDB 問題(https://jira.mariadb.org/browse/MDEV-25714)。就我而言,MariaDB 的版本是 10.6.5。

在調試模式下執行放置 API 時,它的日誌顯示如下消息

“資源提供程序上的 VCPU 容量過剩。需要:1,已使用:4118,容量:768.0”

但檢查放置數據庫/分配表中的條目顯示“4118”是所提供資源的所有資源的總和,而不僅僅是 CPU 類。

該問題是由於 DBMS 在檢索目前分配的資源時使用子查詢處理“外部連接”時出現錯誤所致。

您可能希望執行該票證中“Daniel Howard”描述的測試,以驗證您的 MariaDB 版本是否也受到影響 - 當然,除非您遇到這些問題但根本沒有使用 MariaDB。

引用自:https://serverfault.com/questions/1064579