在kata中,vhost user blk设备是hotplug进去的。本文记录一下如果在qemu中hotplug一个vhost user blk设备。

首先准备一个设备,以spdk设备为例。

build spdk

git clone https://github.com/spdk/spdk.git
cd spdk; ./configure; make -j `nproc`

制作vhost user blk

mkdir -p block/sockets
build/bin/spdk_tgt --logflag all -S block &
scripts/rpc.py bdev_malloc_create 64 4096 -b Malloc0
scripts/rpc.py vhost_create_blk_controller vhostblk0 Malloc0

在arm64上启动qemu

/usr/bin/qemu-system-aarch64 \-machine virt,usb=off,accel=kvm,gic-version=host\-cpu host,pmu=off \-m 2048M,slots=10,maxmem=128489M \-device pcie-root-port,port=0x8,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x1 \-device virtio-serial-pci,disable-modern=false,id=serial0 \-device virtconsole,chardev=charconsole0,id=console0 \-chardev socket,id=charconsole0,path=console.sock,server=on,wait=off \-device virtio-scsi-pci,id=scsi0,disable-modern=false \-object rng-random,id=rng0,filename=/dev/urandom \-device virtio-rng-pci,rng=rng0 \-rtc base=utc,driftfix=slew,clock=host \-global kvm-pit.lost_tick_policy=discard \-pflash /usr/share/kata-containers/kata-flash0.img \-pflash /usr/share/kata-containers/kata-flash1.img \-vga none -no-user-config -nodefaults -nographic --no-reboot  \-serial mon:stdio \-object memory-backend-file,id=dimm1,size=2048M,mem-path=/dev/hugepages,share=on,prealloc=on \-numa node,memdev=dimm1 \-monitor unix:qemu-monitor-socket,server,nowait \-drive if=none,file=focal-server-cloudimg-arm64-custom-20210929-0.qcow2,id=hd1 \-device virtio-blk-pci,drive=hd1 \-append "console=ttyAMA0 root=/dev/vda1 loglevel=8 acpi=on earlycon init=/bin/bash" \-smp 1,cores=1,threads=1,sockets=96,maxcpus=96 \-kernel Image \

启动vm后,在另一个shell中进入monitor

socat - unix:qemu-monitor-socket

hotplug blk 设备

chardev-add socket,id=char0,path=block/sockets/vhostblk0
#return OK
device_add vhost-user-blk-pci,id=blk0,chardev=char0,bus=pci.1
#return OK
#check qtree
info qtree

回到vm,看看是不是多了一块盘,lspci。

这里有个比较奇怪的issue,在x86上hotplug vhost user blk设备可以挂到pci-bridge上,但是在arm64的qemu/virt板上只能挂在pcie-root-port上。有待后续研究。。。

在arm64上基于qemu的vhost user blk设备hotplug相关推荐

  1. Ubuntu 上使用 qemu 模拟 Arm64 linux

    Ubuntu 上用 qemu 模拟 Arm64 linux 环境配置 1. 安装Arm64交叉编译工具链 2. 安装qemu 下载源码包 编译 编译Linux kernel 编译qemu 编译busy ...

  2. 在windows 10上使用qemu安装Windows 10虚拟机

    纯记录安装步骤,供研究使用,日常工作建议使用VmWare VirtualBox HyperV等 qemu版本 λ qemu-system-x86_64 -version QEMU emulator v ...

  3. ARM64上的Docker编译与安装

    2019独角兽企业重金招聘Python工程师标准>>> ARM64已经成为手机上的主流,而且开始进入服务器领域(中国的全志.辉腾等芯片也都是ARM架构),很多开发板也相继推出.为了充 ...

  4. 学内核之二:基于QEMU搭建Linux内核运行调试环境

    目录 一 接续上文 二 编译根文件系统 三 构建完善根文件系统 四 内核中指定根文件系统 五 带根文件系统启动内核 一 接续上文 在上一篇文章中,我们展示了通过QEMU仿真软件来运行Linux内核的过 ...

  5. VIRTIO后端框架QEMU与VHOST分析

    VIRTIO设备的前端是GUEST的内核驱动,后端由QEMU或者DPU实现.不论是原来的QEMU-VIRTIO框架还是现在的DPU,VIRTIO的控制面和数据面都是相对独立的设计.本文主要针对QEMU ...

  6. qemu 线程 vhost

    [root@localhost cloud_images]# lsmod | grep vhost_net vhost_net 262144 0 vhost 262144 1 vhost_net ta ...

  7. 在macos上基于python2.7安装PyQt5

    在macos上基于python2.7安装PyQt5 在python3上面安装PyQt5是十分简单的,可是,在python2.7上安装这个东西,着实让人折腾了一把.要总结一下,年纪大了,记性不好. 首先 ...

  8. 树莓派运行python import os未找到命令_通过pip指令在树莓派上基于Python3安装OpenCV...

    前言 Python是现如今在人工智能领域较为热门的编程语言,因其简洁的语言风格.丰富的类库支持以及具有活跃的交流社区,受到广大开发者的喜爱.起初,python是一门辅助科学研究的一门语言,但因其在当今 ...

  9. 在阿里云容器服务上基于Istio实现出口Egress流量管理

    概述 在前面的文章中,介绍了在阿里云容器服务上基于Istio如何实现东西向流量管理. 回顾下引用的示例: 该样例应用由四个单独的微服务构成,用来演示多种 Istio 特性.该应用模仿某银行金融产品的一 ...

  10. android 身份认证技术,Android平台上基于人脸识别的身份认证系统的设计与实现

    摘要: 随着移动互联网与人工智能技术的发展,基于个人特征的生物识别技术代替传统的身份验证方式已经是大势所趋.而人脸识别是生物识别技术的一个重要组成部分,拥有其他生物识别技术没有的独特优势.本文主要针对 ...

最新文章

  1. 移动端触屏网页的触摸事件
  2. python pygame模块按键延迟_pygame模块中键控命令不能实现方块移动,求解
  3. java签署ssl_签署Java代码
  4. 解决:pycharm运行程序时在Python console窗口中运行 һ����ң�������1�����
  5. php增加mysql用户_mysql 增加用户
  6. Python学习笔记——for循环和range函数
  7. 光热发电成千亿元市场 加速产业布局
  8. JAVA基础编程——数据库编程
  9. 学习中科院杨力祥c++
  10. Unity-汽车仿真-1.车库UI菜单滑动功能(利用iTween)
  11. Android开发中导入字体库
  12. 服务器密码过期进不去系统,登陆服务器密码过期
  13. 解决jinjia2 for循环变量作用域问题
  14. 微信小程序html的font-size,字体大小(font-size)
  15. MATLAB:图像半调转换(halftone)和抖动转换(dither)
  16. 2019南昌市计算机教师招聘,南昌经济技术开发区2019年招聘教师拟聘用人员名单...
  17. eNSP:实现不同网段不同vlan主机之间的互访(配置单臂路由)
  18. led灯条维修_LED灯坏了怎么维修?学会自己动手,简单的LED故障自己也能维修
  19. 学编程会拉低数学成绩,巴黎大学跟踪1500个小学生得出结论
  20. SQL Server 几种去重总结

热门文章

  1. 管理系统页面布局 html,25 个精美的后台管理界面模板和布局
  2. 云服务器bat文件在哪里,云服务器bat文件在哪里
  3. 侨鑫集团:不一样的CIO,不一样的数字化转型之路
  4. 设置局域网内共享磁盘
  5. dxf解析python_Python 读取DXF文件
  6. ThinkPad T450 笔记本电脑 Fn + F8 组合键失效后开启无线网络的办法
  7. ios 网速监控_IOS_网速流量实时监控
  8. javascript趣味钢琴小游戏(附源码)js+css+html
  9. TOGAF认证考试总结
  10. (CentOS7)IP地址的配置与主机名和hosts映射