arm环境cloudstack在vpc下创建虚拟机失败
一、环境说明
- 操作系统:openEuler 22.03
- CPU:Kunpeng-920,arm v8
- cloudstack:4.18
- libvirtd:6.2.0
二、问题描述
在UI上创建VPC后,平台会同时创建一个virtual router,此时virtual router有两个网卡,分别为private IP(169.;
然后在vpc下创建network,此时virtual router不会绑定network;
创建虚拟机时,指定此network,cloudstack报创建失败。
三、问题排查
当在vpc下的network创建第一个虚拟机时,cloudstack会先将virtual router绑定至该network,其中一个动作是为virtual router附加一个新的网卡,作为该network的网关。
但是虚拟机报创建失败后,查看virtual router仍只有两个网卡,其对应的network name列也是空的。
查看cloudstack management日志发现报错:org.libvirt.LibvirtException: internal error: No more available PCI slots。
而对比普通isolated network对应的virtual router的domain内容(virsh dumpxml),发现vpc下报错的virtual router缺少两个对应pci设备的定义。
通过搜索,在github上查看到类似的issue。
其解决方法是,在./plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java中添加代码如下:
if (_emulator != null && _emulator.endsWith("aarch64")) {devicesBuilder.append("<controller type='pci' model='pcie-root'/>\n");for (int i = 0; i < 32; i++) {devicesBuilder.append("<controller type='pci' model='pcie-root-port'/>\n");}devicesBuilder.append("<controller type='pci' model='pcie-to-pci-bridge'/>\n");}
通过_emulator判断为aarch64架构的话,就添加32个pci设备。
但是debug查看,该值在执行至本段代码是为空字符串,且查看上面代码
if (_emulator != null) {devicesBuilder.append("<emulator>" + _emulator + "</emulator>\n");}
本地查看虚拟机的domain内容,_emulator的值对应为/usr/libexec/qemu-kvm,也没有架构后缀。
因此怀疑本段代码没有普适性。
因此,将本段代码注释掉,修改代码如下:
#./plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java 添加一个类
public static class PCIDef {public PCIDeg() {}@Overridepublic String toString() {StringBuilder pciBuilder = new StringBuilder();devicesBuilder.append("<controller type='pci' model='pcie-root'/>\n");for (int i = 0; i < 32; i++) {pciBuilder.append("<controller type='pci' model='pcie-root-port'/>\n");}pciBuilder.append("<controller type='pci' model='pcie-to-pci-bridge'/>\n");return pciBuilder.toString();}
}#plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 2553行if (isGuestAarch64()) {createArm64UsbDef(devices);#新增createArm64PCIDef(devices);}#plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java 2580行protected void createArm64PCIDef(DevicesDef devices) {devices.addDevice(new LibvirtVMDef.PCIDef());}
相关文章:
arm环境cloudstack在vpc下创建虚拟机失败
一、环境说明 操作系统:openEuler 22.03CPU:Kunpeng-920,arm v8cloudstack:4.18libvirtd:6.2.0 二、问题描述 在UI上创建VPC后,平台会同时创建一个virtual router,此时virtual router有两个网…...
Linux上安装Keepalived,多台Nginx配置Keepalived(保姆级教程)
目录 一、yum安装 第一步:下载 第二步:编辑Keepalived配置文件(第一台) 第三步:编辑Keepalived配置文件(第二台) 第四步:我们在本机利用cmd ping一下 一、yum安装 第一步&…...
centos7 ‘xxx‘ is not in the sudoers file...
如题 执行命令输入密码后时报错: [sudo] password for admin (我的账户)原因,当前用户还没有加入到root的配置文件中。 解决 vim打开配置文件,如下: #切换到root用户 su #编辑配置文件 vim /etc/sudoe…...
Zebec Payroll :计划推出 WageLink On-Demand Pay,进军薪酬发放领域
“Zebec Protocol 生态旨以 Web3 的方式建立全新的公平秩序,基于其流支付体系构建的薪酬支付板块,就是解决问题的一把利刃”...
【2023】字节跳动 10 日心动计划——第三关
目录 1. 最长有效括号2. 有序数组的平方 1. 最长有效括号 🔗 原题链接:32. 最长有效括号 类似于有效的括号,考虑用栈来解决。 具体来讲,我们始终保持栈底元素为当前已经遍历过的元素中「最后一个没有被匹配的右括号的下标」&…...
【无网络】win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退
win10更新后无法联网,有线无线都无法连接,且打开网络与Internet闪退 法1 重新配置网络法2 更新驱动法3 修改注册表编辑器法4 重装系统 自从昨晚点了更新与重启后,今天电脑就再也不听话了,变着花样地连不上网。 检查路由器…...
HTML <script> 标签
实例 在 HTML 页面中插入一段 JavaScript: <script type="text/javascript"> document.write("Hello World!") </script>(在本页底部可以找到更多实例) 定义和用法 <script> 标签用于定义客户端脚本,比如 JavaScript。 script …...
FPGA----UltraScale+系列的PS侧与PL侧通过AXI-HP交互(全网唯一最详)附带AXI4协议校验IP使用方法
1、之前写过一篇关于ZYNQ系列通用的PS侧与PL侧通过AXI-HP通道的文档,下面是链接。 FPGA----ZCU106基于axi-hp通道的pl与ps数据交互(全网唯一最详)_zcu106调试_发光的沙子的博客-CSDN博客大家好,今天给大家带来的内容是࿰…...
Unity小游戏——迷你拼图
游戏展示 拼图演示 资源: 链接:https://pan.baidu.com/s/1BGeSmRCO_WZRUyl3MxefGw 提取码:0n4a 一、玩法介绍 排列拼图碎片,拼出最后的图案。可以点住碎片的任意位置拖动;点击"重来"按钮,可以…...
三 动手学深度学习v2 —— Softmax回归+损失函数+图片分类数据集
三 动手学深度学习v2 —— Softmax回归损失函数图片分类数据集 目录: softmax回归损失函数 1. softmax回归 回归vs分类: 回归估计一个连续值分类预测一个离散类别 从回归到多类分类 回归 单连续数值输出自然区间R跟真实值的误差作为损失 分类 通常多个输出输出i是预测为第…...
Stable Diffusion 使用教程
环境说明: stable diffusion version: v1.5.1python: 3.10.6torch: 2.0.1cu118xformers: N/Agradio: 3.32.0 1. 下载 webui 下载地址: GitHub stable-diffusion-webui 下载 根据自己的情况去下载: 最好是 N 卡:(我的…...
在线考试系统springboot学生试卷问答管理java jsp源代码mysql
本项目为前几天收费帮学妹做的一个项目,Java EE JSP项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。 一、项目描述 在线考试系统springboot 系统有2权限:管理…...
创建vue-cli(脚手架搭建)
目录 功能 需要的环境 使用HbuilderX快速搭建一个vue-cli项目 组件路由 element-ui vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义 好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个 骨…...
【单调栈part02】| 503.下一个更大元素||、42.接雨水
🎈LeetCode503.下一个更大元素|| 链接:503.下一个更大元素|| 给定一个循环数组 nums ( nums[nums.length - 1] 的下一个元素是 nums[0] ),返回 nums 中每个元素的 下一个更大元素 。 数字 x 的 下一个更大的元素 是按…...
Java——如何使用Stream替换掉List<Student>中符合要求的元素
使用Stream替换掉List中符合要求的元素 要使用Stream流替换掉List中符合特定条件的元素,您可以使用Stream的map()方法对每个元素进行映射,并使用collect()方法将映射后的元素收集到一个新的List中。 示例代码: import java.util.ArrayList; …...
gin 框架中的 gin.Context
〇、前言 Context 是 gin 中最重要的部分。 例如,它允许我们在中间件之间传递变量、管理流程、验证请求的 JSON 并呈现 JSON 响应。 Context 中封装了原生的 Go HTTP 请求和响应对象,同时还提供了一些方法,用于获取请求和响应的信息、设置响…...
新版chrome浏览器恢复下载的时候恢复底栏提示
近日,谷歌对其Chrome浏览器进行了更新,为所有桌面系统的Chrome浏览器增加了位于地址栏右侧的“下载”气泡,并同时取消了原有的底部下载栏。 谷歌表示,这次更新的目的是为了让用户更方便地与最近下载的文件进行交互。 然而&#x…...
ModuleNotFoundError: No module named ‘lsb_release‘
Ubuntu 重装python版本导致的问题 $ lsb_release -a # 使用命令查看报错详情 Traceback (most recent call last):File "/usr/bin/lsb_release", line 25, in <module> # 这个路径很重要import lsb_release ModuleNotFoundError: No module named lsb_re…...
2021-03-03 Multisim 14.0 电池充电防止反接保护
R2R3当作充电线电阻看,也可设置这2个电阻导线电阻,电阻取值依据充电电流范围确定,由于电池存在电压因此可以用光耦检测,发光二极管当作继电器看,可采用继电器自锁,当下次再次反接的话另一个继电器同样,2个继电器相互控制.本电路可验证极性变化时2路检测的变化,图中S1为模拟电池…...
【AI】《动手学-深度学习-PyTorch版》笔记(八):线性回归
AI学习目录汇总 1、线性模型 线性函数如下: y ^ = w 1 x 1 + . . . + w d x d...
个人情况随笔
自我介绍技术世界的探索者,一名对代码充满热情的初学者。虽然起步较晚,但始终相信编程是解决问题的艺术,而不仅仅是敲键盘。过往的经历或许与技术无关,但逻辑分析、团队协作和持续学习的能力,是无论哪个领域都通用的财…...
new AbortController()
new AbortController() 是 JavaScript 中用于创建一个 AbortController 实例的构造函数,该实例可用于控制或取消异步操作(如网络请求、事件监听、定时任务等)。...
gf观察窗口高级用法:自定义类型显示和动态数组支持终极指南
gf观察窗口高级用法:自定义类型显示和动态数组支持终极指南 【免费下载链接】gf A GDB frontend for Lnux. 项目地址: https://gitcode.com/gh_mirrors/gf3/gf gf作为一款强大的GDB前端调试工具,其观察窗口功能为开发者提供了直观的变量查看体验。…...
Illustrator脚本自动化深度解析:高级设计工作流的技术实现与性能优化
Illustrator脚本自动化深度解析:高级设计工作流的技术实现与性能优化 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 在当今设计行业,Adobe Illustrator作为…...
告别繁琐安装:用快马平台在线环境,三步创建你的第一个网页应用
作为一个刚入门的前端开发者,我最近发现了一个特别适合新手快速上手的开发方式——不用下载任何软件,直接在浏览器里就能完成网页开发的全流程。今天想和大家分享这个超实用的发现,以及我是如何用它快速做出第一个网页应用的。 传统开发环境的…...
医护版手术室大屏实战开发
医护版手术室大屏设计与实现 引言 在医院手术室管理中,实时了解手术排程和状态对于提高医疗效率至关重要。本文将介绍一个基于ASP.NET Core和原生JavaScript实现的手术室大屏系统,该系统能够实时展示当日手术安排、手术状态,并提供直观的视觉…...
无人机 Remote ID(RID)广播与技术标准概览
无人机 Remote ID(RID)广播与技术标准概览 目录 概述与知识地图一、RID 广播是什么二、广播内容与工作方式三、广播式 RID 与网络式 RID四、技术要点:频段、功率、硬件与协议五、Open Drone ID / ASTM 报文体系(扩展)…...
Kandinsky-5.0-I2V-Lite-5s部署案例:中小企业用其替代高价视频外包,降本70%
Kandinsky-5.0-I2V-Lite-5s部署案例:中小企业用其替代高价视频外包,降本70% 1. 为什么中小企业需要关注这个方案 对于中小企业来说,视频制作一直是个头疼的问题。传统外包制作5秒短视频的平均成本在2000-5000元不等,而使用Kandi…...
2026AIGC 短剧出海全链路落地服务测评
2026 年 AIGC 短剧出海行业已迈入精细化商业落地阶段,专业全链路服务商与AI 视频生成平台的赛道分化成为行业发展的核心特征,二者依托差异化的服务模式、能力体系与价值输出,精准覆盖不同出海主体的需求场景。集之互动作为深耕短剧出海领域的…...
Air8101 搭载 RGB 直驱与 AirUI 适配工业电容屏开发
Air8101专为工业电容屏优化设计,RGB接口可直驱各类尺寸LCD电容屏,最高可支持1024*720分辨率屏,无需额外转接,大幅降低硬件开发成本。 一、硬件直驱: 目前正在支持完善:480*272分辨率:4.3寸屏800…...
