Project

General

Profile

Rbd - copy-on-read for clones » History » Version 1

Jessica Mack, 05/28/2015 06:08 PM

1 1 Jessica Mack
h1. Rbd - copy-on-read for clones
2 1 Jessica Mack
3 1 Jessica Mack
h3. Task Name: 
4 1 Jessica Mack
5 1 Jessica Mack
copy-on-read for clones
6 1 Jessica Mack
7 1 Jessica Mack
h3. Size: 
8 1 Jessica Mack
9 1 Jessica Mack
M
10 1 Jessica Mack
11 1 Jessica Mack
h3. Skill:
12 1 Jessica Mack
13 1 Jessica Mack
intermediate
14 1 Jessica Mack
15 1 Jessica Mack
h3. Mentor(s):
16 1 Jessica Mack
17 1 Jessica Mack
"Josh Durgin":mailto:josh.durgin@inktank.com
18 1 Jessica Mack
19 1 Jessica Mack
h3. Components: 
20 1 Jessica Mack
21 1 Jessica Mack
librbd
22 1 Jessica Mack
23 1 Jessica Mack
h3. Description:
24 1 Jessica Mack
25 1 Jessica Mack
Currently clones in rbd only copy data from their parent when they write to an object. Reading a clone will read data from the parent if the relevant object in the clone does not exist yet. If the clone is being used from a location far away from the parent in latency, reads will be very expensive. Caching the parent image could help, but if the clone is expected to stay far away from the parent (for example if the parent is in a different pool in a separate geographical location), it is useful to have a local copy of the parent. Rather than copying the parent all at once, we can opportunistically copy data from the parent to the clone as it is read (or partially overwritten). That is, a read would fetch the entire range needed for a clone's object, and write it to the clone in the background.
26 1 Jessica Mack
 
27 1 Jessica Mack
h3. Coding tasks
28 1 Jessica Mack
29 1 Jessica Mack
# librbd: add copy-on-read option (standard ceph option that can be read from config file, env, or cli)
30 1 Jessica Mack
# librbd: for clone reads from a parent, read the entire object if copy-on-read (or another? flag is set)
31 1 Jessica Mack
# librbd: asynchronously write parent data to the child if copy-on-read flag is set
32 1 Jessica Mack
 
33 1 Jessica Mack
From existing blueprint:  http://wiki.ceph.com/01Planning/Sideboard/rbd%3A_copy-on-read_for_clones
34 1 Jessica Mack
35 1 Jessica Mack
h3. External Documentation:Edit section
36 1 Jessica Mack
37 1 Jessica Mack
# Document new flag(s) - where and why to use them