Linux kernel最早从2.6.23支持paravirt-ops接口,也就是所谓的半虚拟化。本文简单介绍一下利用libvirt的功能通过virtio的方式将host的一块local block device 'passthru'到guest os中。
方式1,通过KVM虚拟机的xml配置文件指定,下面是一个虚机xml文件的片段,用来将host的/dev/sda4这一块设备passthru到guest os中:
...
在virsh命令行中,通过"create '/etc/libvirt/qemu/odm.xml‘"来启动虚机odm,起来之后在odm的guest os中会发现多出了一个块设备/dev/vdb,可以正常mount该块设备,里面的数据应该同host中看到的完全一样。
方式2,可以动态挂载一个host上的块设备到一个正在running的VM中,比如:
virsh# attach-disk odm /dev/sda4 vdb
方式3,通过libvirt API的方式,有两个API分别用来实现挂载和卸载操作:
virDomainAttachDevice(domain, xml)以及virDomainDetachDevice()
阅读(4453) | 评论(0) | 转发(0) |