Revision ffde7fb6 doc/design-glusterfs-ganeti-support.rst
b/doc/design-glusterfs-ganeti-support.rst | ||
---|---|---|
73 | 73 |
uses libgfapi and hence there is no FUSE overhead any longer when QEMU/KVM |
74 | 74 |
works with VM images on Gluster volumes. |
75 | 75 |
|
76 |
There are two possible ways to implement "GlusterFS Ganeti Support" inside |
|
77 |
Ganeti. One is based on libgfapi, which call APIs by libgfapi to realize |
|
78 |
GlusterFS interfaces in bdev.py. The other way is based on QEMU/KVM. Since |
|
79 |
QEMU/KVM has supported for GlusterFS and Ganeti could support for GlusterFS |
|
80 |
by QEMU/KVM. However, the latter way can just let VMs of QEMU/KVM use GlusterFS |
|
81 |
backend storage but other VMs like XEN and such. So the first way is more |
|
82 |
suitable for us. |
|
76 |
Proposed implementation |
|
77 |
----------------------- |
|
78 |
|
|
79 |
QEMU/KVM includes support for GlusterFS and Ganeti could support GlusterFS |
|
80 |
through QEMU/KVM. However, this way could just let VMs of QEMU/KVM use GlusterFS |
|
81 |
backend storage but not other VMs like XEN and such. There are two parts that need |
|
82 |
to be implemented for supporting GlusterFS inside Ganeti so that it can not only |
|
83 |
support QEMU/KVM VMs, but also XEN and other VMs. One part is GlusterFS for XEN VM, |
|
84 |
which is similar to sharedfile disk template. The other part is GlusterFS for |
|
85 |
QEMU/KVM VM, which is supported by the GlusterFS driver for QEMU/KVM. After |
|
86 |
``gnt-instance add -t gluster instance.example.com`` command is executed, the added |
|
87 |
instance should be checked. If the instance is a XEN VM, it would run the GlusterFS |
|
88 |
sharedfile way. However, if the instance is a QEMU/KVM VM, it would run the |
|
89 |
QEMU/KVM + GlusterFS way. For the first part (GlusterFS for XEN VMs), sharedfile |
|
90 |
disk template would be a good reference. For the second part (GlusterFS for QEMU/KVM |
|
91 |
VMs), RBD disk template would be a good reference. The first part would be finished |
|
92 |
at first and then the second part would be completed, which is based on the first |
|
93 |
part. |
|
83 | 94 |
|
84 | 95 |
.. vim: set textwidth=72 : |
85 | 96 |
.. Local Variables: |
Also available in: Unified diff