On Tue, Jun 5, 2018 at 4:07 AM, 李昊华 <lh2debug@xxxxxxx> wrote: > Thanks for reading my questions! > > I want to run MySQL on Ceph using KRBD because KRBD is faster than librbd. > And I know KRBD is a kernel module and we can use KRBD to mount the RBD > device on the operating systems. > > It is easy to use command line tool to mount the RBD device on the operating > system. It there any other ways to use RBD module , such as changing MySQL > IO interface by using krbd interface? > > I saw krbd.h and I found there was a little function interfaces blew to use. > Whereas librdb offers us many interfaces such as create, clone a RBD device. > > And I want to Verify my hypothesis blew: > > 1. Librbd provides a richer interfaces than krbd, and some functions cannot > be implemented through krdb librbd is what should be used to create and delete images, perform maintenance operations on exisitng images, etc. krbd just drives the I/O to a mapped image. > > 2. Applications can only use krbd via the command line tool instead of code > interfaces. Yes, libkrbd / krbd.h is an internal convenience library. It can be changed into a standalone .so fairly easily, but we never got to it. Once the image is mapped with "rbd map" (krbd_map() from krbd.h), it shows up as a regular block device. Applications can use normal system calls like open(), read(), write(), fallocate(), etc on it. MySQL doesn't need changing to work on krbd. Any guide on setting up MySQL to use a raw block device should work. Just substitute e.g. /dev/rbd0 for a block device. Thanks, Ilya _______________________________________________ ceph-users mailing list ceph-users@xxxxxxxxxxxxxx http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com