Project

General

Profile

Add Metadata Mechanism To LibRBD » History » Version 1

Jessica Mack, 07/06/2015 08:57 PM

1 1 Jessica Mack
h1. Add Metadata Mechanism To LibRBD
2 1 Jessica Mack
3 1 Jessica Mack
h3. Summary
4 1 Jessica Mack
5 1 Jessica Mack
Now rbd client only can accept config value from ceph.conf, it's too inflexible to let diferent image uses different config value. Add metadata mechanism to librbd interface, let librbd internal can aware specified metadata key and associated it with config value.
6 1 Jessica Mack
7 1 Jessica Mack
h3. Owners
8 1 Jessica Mack
9 1 Jessica Mack
* Haomai Wang (UnitedStack)
10 1 Jessica Mack
* Name (Affiliation)
11 1 Jessica Mack
* Name
12 1 Jessica Mack
13 1 Jessica Mack
h3. Interested Parties
14 1 Jessica Mack
15 1 Jessica Mack
* Name (Affiliation)
16 1 Jessica Mack
* Name (Affiliation)
17 1 Jessica Mack
* Name
18 1 Jessica Mack
19 1 Jessica Mack
h3. Current Status
20 1 Jessica Mack
 
21 1 Jessica Mack
h3. Detailed Description
22 1 Jessica Mack
23 1 Jessica Mack
Recently encounter some problems about rbd options. We want to make
24 1 Jessica Mack
each librbd client uses different option such as whether enable
25 1 Jessica Mack
rbd_cache, cache_size, read_ahead bytes etc. It 's very important for
26 1 Jessica Mack
cloud solution which need to make different image.
27 1 Jessica Mack
28 1 Jessica Mack
But now it's inconvenient to do this(or nearly impossible). We have
29 1 Jessica Mack
another class options such stripe_count/size, order and image_format.
30 1 Jessica Mack
They have their standalone method in librbd impl to write/read. But
31 1 Jessica Mack
the way isn't good for other lightweight options.
32 1 Jessica Mack
33 1 Jessica Mack
So I think we could let rbd options become the image's attributes not
34 1 Jessica Mack
just reading from config. I think we could add "metadata_get" and
35 1 Jessica Mack
"metadata_set" method for librbd, all other options are associated
36 1 Jessica Mack
with a special metadata name, when opening a image we will scan all
37 1 Jessica Mack
metadata and regard them as configs.
38 1 Jessica Mack
39 1 Jessica Mack
It's much more like what OpenStack Nova/Cinder/Glance did. Let newer
40 1 Jessica Mack
option adding and don't need to change too much.
41 1 Jessica Mack
42 1 Jessica Mack
h3. Work items
43 1 Jessica Mack
44 1 Jessica Mack
h4. Coding tasks
45 1 Jessica Mack
46 1 Jessica Mack
# Metadata interface and implementation
47 1 Jessica Mack
# Let librbd internal aware of metadata keys
48 1 Jessica Mack
49 1 Jessica Mack
h4. Build / release tasks
50 1 Jessica Mack
51 1 Jessica Mack
# Task 1
52 1 Jessica Mack
# Task 2
53 1 Jessica Mack
# Task 3
54 1 Jessica Mack
55 1 Jessica Mack
h4. Documentation tasks
56 1 Jessica Mack
57 1 Jessica Mack
# Describe the metadata method and let users know we can set metadata instead of ceph.conf to configurate librbd 
58 1 Jessica Mack
59 1 Jessica Mack
h4. Deprecation tasks
60 1 Jessica Mack
61 1 Jessica Mack
# Task 1
62 1 Jessica Mack
# Task 2
63 1 Jessica Mack
# Task 3