在 libvirt qemu 中使用 rados 块设备作为块设备

在 libvirt qemu 中使用 rados 块设备作为块设备

在 libvirt qemu 中使用磁盘类型='网络'和磁盘类型='块'的 rados 块设备有什么区别? ceph 指南告诉我执行以下操作:

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

http://ceph.com/docs/master/rbd/libvirt/

但现在我只是直接使用 rbd,如下所示:

<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'/>
</disk>

直接使用有什么缺点吗?

答案1

当您使用 Linux RBD 设备时,您间接使用 Ceph RBD 层。 Linux 设备确实与 Ceph RBD 层通信。因此,当使用type=network protocol=rbd磁盘时,您将删除一个间接层。此外,RBD(RAM)缓存对于内核驱动程序不可用(但使用页面缓存)。因此,通常使用第一个选项是个好主意。

相关内容