在 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)缓存对于内核驱动程序不可用(但使用页面缓存)。因此,通常使用第一个选项是个好主意。