qcow2 和 rbd qemu侧流程

本文深入探讨了qcow2和rbd两种磁盘类型的IO处理机制。qcow2通过qemu的协程机制实现并发读写,利用worker线程执行IO操作,确保主线程不被阻塞。rbd则依赖于librbd的异步回调,避免writeread阻塞,完成IO后执行相应操作。两者均采用非阻塞方式提升效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

qcow2的读写更多的是借助qemu本身的协程机制实现并发,在读写文件的时候,会启动一个worker线程去执行读写,如果使用io thread 会在io thread里aio_poll,如果没有使用iothread,也在主线程里poll。worker进程使用的是pwrite/pread读写文件,qemu-img的同步io的worker进程使用的是pwritev/preadv,读写完成后,worker进程会退出,poll会执行后面的底半部和aio_handler,读写并不会阻塞主线程或者iothread线程

rbd的读写借助于librbd的异步回调来实现,同样写不会因为write read阻塞当前线程。当读写io完成后,回调函数根据参数往下面来执行相应的操作。

 

qcow2类型磁盘 qemu侧程序流程:

 

rbd qemu侧流程:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值