What is the difference between using a rados block device in libvirt qemu with disk type='network' and disk type='block'? The ceph guide tells me to do the following:

<disk type='network' device='disk'>
        <source protocol='rbd' name='libvirt-pool/new-libvirt-image'>
                <host name='{monitor-host}' port='6789'/>
        <target dev='vda' bus='virtio'/>


But right now I'm just using the rbd directly like:

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/rbd/rbd/testvm'/>
  <target dev='vda' bus='virtio'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

Are there any downsides in using it directly?

1 Answer 1


When you use a Linux RBD device you use the Ceph RBD layer indirectly. The Linux device does talk with the Ceph RBD layer. So when using the type=network protocol=rbd disk you are removing one indirection layer. Also the RBD (ram) cache is not available with the kernel driver (but the page cache is used). So generally it is a good idea to use the first option.

  • That's what I did in the end. There are several advantages in using librbd/qemu directly. Thanks!
    – devnull
    Aug 26, 2015 at 7:12

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .