ubuntu24.04上升级qemu和libvirt测试generic vdpa


https://www.frytea.com/archives/546/
https://computingforgeeks.com/install-kvm-virtualization-on-ubuntu-noble-numbat/

查看当前版本
root@vm-133:~# cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=24.04
DISTRIB_CODENAME=noble
DISTRIB_DESCRIPTION="Ubuntu Noble Numbat (development branch)"
root@vm-133:~# 
root@vm-133:~# 
root@vm-133:~# virsh version        
Compiled against library: libvirt 10.0.0
Using library: libvirt 10.0.0
Using API: QEMU 10.0.0
Running hypervisor: QEMU 8.2.2

设置代理以便update

export http_proxy=http://x.x.x.x:64000
export https_proxy=http://x.x.x.x:64000
apt update

先安装blkio,blkio安装过程如下
apt-get install -qy meson rustc cargo python3-docutils 
git clone https://gitlab.com/libblkio/libblkio
cd  libblkio
meson setup build
meson compile -C build
meson install -C build
root@10-5-245-135:/opt/software/libblkio# cat  /etc/ld.so.conf
include /etc/ld.so.conf.d/*.conf
include /usr/local/lib/x86_64-linux-gnu/
root@10-5-245-135:/opt/software/libblkio# ldconfig -v


安装qemu
mkdir -p /opt/qemu
mkdir -p /opt/software/
cd /opt/software/
git clone https://github.com/qemu/qemu
#如需指定版本,则git checkout v8.2.3
cd /opt/software/qemu
./configure  --target-list=x86_64-softmmu  --enable-vhost-vdpa  --enable-vhost-user  --enable-vhost-user-blk-server  --enable-blkio
#configure时注意观察对vhost_vdpa及blkio的支持
make -j 16
make install

系统自带版本8.2.2
root@vm-133:/opt/software/qemu# qemu-system-x86_64 --version
QEMU emulator version 8.2.2 (Debian 1:8.2.2+ds-0ubuntu1)
Copyright (c) 2003-2023 Fabrice Bellard and the QEMU Project developers

自己安装的版本在/usr/local/bin/
root@vm-133:/opt/software/qemu# /usr/local/bin/qemu-system-x86_64 --version
QEMU emulator version 9.0.50 (v9.0.0-145-g5da72194df)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

升级libvirt
apt-get install meson ninja-build  -y;
apt-get install -y pkg-config;
apt install make -y
apt install make-guile -y;        
apt-get install build-essential zlib1g-dev pkg-config libglib2.0-dev binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev -y
apt install git -y
apt install libspice-protocol-dev -y
apt install libspice-server-dev -y
apt-get install libusb-dev -y
apt-get install libusbredirparser-dev -y
apt install python3-full
apt install libyajl-dev
apt-get install -y libpciaccess-dev
apt install libtirpc-dev  -y
apt-get install xsltproc -y
apt install libgnutls28-dev  -y
apt-get install libxml2-dev -y
cp -r /usr/include/tirpc/{netconfig.h,rpc} /usr/local/include/

先查看当前版本
root@vm-133:/opt/software/libvirt# /usr/sbin/libvirtd --version
/usr/sbin/libvirtd (libvirt) 10.0.0

git clone https://github.com/libvirt/libvirt
cd libvirt
#如果需要安装在指定的目录  mkdir -p /opt/libvirt 
meson build   -Dsystem=true
#如果指定目录,则meson build  --prefix=/opt/libvirt -Dsystem=true
ninja -C build
ninja -C build install
#如build时带-prefix=/opt/libvirt,
安装完后需cp -d /opt/libvirt/lib/x86_64-linux-gnu/libvirt-*  /lib/x86_64-linux-gnu/
ldconfig -v  


启动发现报错
root@vm-133:/opt/software/libvirt#  /usr/sbin/libvirtd --version
/usr/sbin/libvirtd: /lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_10.2.0' not found (required by /usr/sbin/libvirtd)
/usr/sbin/libvirtd: /lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_10.1.0' not found (required by /usr/sbin/libvirtd)
/usr/sbin/libvirtd: /lib/x86_64-linux-gnu/libvirt.so.0: version `LIBVIRT_PRIVATE_10.3.0' not found (required by /usr/sbin/libvirtd)

拷贝新的库到/lib/x86_64-linux-gnu/下
root@vm-133:/opt/software/libvirt# cp -d /usr/local/lib/x86_64-linux-gnu/libvirt-*  /lib/x86_64-linux-gnu/
root@vm-133:/opt/software/libvirt# ldconfig -v  

再次执行
root@vm-133:/opt/software/libvirt# /usr/sbin/libvirtd --version
/usr/sbin/libvirtd (libvirt) 10.3.0

systemctl daemon-reload
systemctl  start  libvirtd 
如报错,则查看
journalctl -u libvirtd.service -b
如果提示: Cannot read CA certificate '/etc/pki/CA/cacert.pem': No such file or directory
编辑/etc/libvirt/libvirtd.conf,添加以下一行 
listen_tls = 0

如果新编译了qemu,则
去掉旧的qemu-system-x86_64,添加符号连接至新的位置
#mv  /usr/bin/qemu-system-x86_64 /usr/bin/qemu-system-x86_64-old
#ln -s /usr/local/bin/qemu-system-x86_64 /usr/bin/qemu-system-x86_64
#virsh version
Compiled against library: libvirt 10.3.0
Using library: libvirt 10.3.0
Using API: QEMU 10.3.0
Running hypervisor: QEMU 9.0.50

执行virsh net-list,如果发现有default的网络,则删除
virsh net-destroy default
virsh net-undefine default

升级后的libvirt还是不支持generic vdpa,改用手动启动(generic vdpa需qemu在8.2.3及以上)

/opt/qemu/bin/qemu-system-x86_64 -m 8192M -cpu host,migratable=on -smp 8,sockets=8,cores=1,threads=1 -M q35,accel=kvm,memory-backend=mem   \
-object memory-backend-memfd,share=on,id=mem,size="8192M"   -drive file=/var/lib/libvirt/images/ubuntu20.04-61.qcow2,index=0,media=disk,format=qcow2   \
-device vhost-vdpa-device-pci,vhostdev=/dev/vhost-vdpa-0   -vnc 10.5.245.135:10 

测试live migrate,发现generic vdpa目前还不支持热迁移

Error: State blocked by non-migratable device '0000:00:03.0:00.0/vhost-vdpa-device'

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值