I want to write and read from an rbd image with librbd (librbdpy or go-ceph). I got some questions:

1. How can I do a random write/read with it?
2. How can I delete the written data with it?
3. If I want to write with a for example 4K block size should I break my bytes array to 4K arrays by my self or librbd will do it on its own?
4. Does rbd_cache included in it? If yes how can I disable it?