Features/Sheepdog: Difference between revisions
(Created page with '== Summary == A distributed storage system for QEMU == Owner == * '''Name:''' Kazutaka Morita * '''Email:''' morita.kazutaka@lab.ntt.co.jp == Detailed Summary…') |
m (Minor grammar fixes) |
||
Line 7: | Line 7: | ||
== Detailed Summary == | == Detailed Summary == | ||
Sheepdog is a distributed storage system for QEMU. | Sheepdog is a distributed storage system for QEMU. It provides highly available block level storage volumes that can be attached to QEMU-based virtual machines. Sheepdog scales to several hundreds nodes, and supports advanced volume management features such as snapshot, cloning, and thin provisioning. | ||
It provides highly available block level storage volumes | |||
that can be attached to QEMU based virtual machines. | |||
Sheepdog scales to several | |||
hundreds nodes, and supports advanced volume management features such as snapshot, cloning, and | |||
thin provisioning. | |||
The architecture of Sheepdog is fully symmetric; there is no central | The architecture of Sheepdog is fully symmetric; there is no central node such as a meta-data server. This design enables following features. | ||
node such as a meta-data server. This design enables following | |||
features. | |||
'''Linear scalability in performance and capacity''' | '''Linear scalability in performance and capacity''' | ||
When more performance or capacity is needed, | When more performance or capacity is needed, Sheepdog can be grown linearly by simply adding new machines to the cluster. | ||
Sheepdog can be grown linearly by simply adding new machines to the cluster. | |||
'''No single point of failure''' | '''No single point of failure''' | ||
Even if a machine fails, the data is still accessible through other | Even if a machine fails, the data is still accessible through other machines. | ||
machines. | |||
'''Easy administration''' | '''Easy administration''' | ||
There is no configuration file | There is no configuration file that defines the cluster's members or roles. When administrators launch Sheepdog programs at the newly added machine, Sheepdog automatically detects the new machine and will add it as a member of the cluster. | ||
launch Sheepdog programs at the newly added machine, Sheepdog | |||
automatically detects the | |||
a member of the cluster. | |||
== Getting Started == | == Getting Started == | ||
Line 44: | Line 32: | ||
=== generic items === | === generic items === | ||
* add more | * add more documentation for users | ||
* add more | * add more documentation for developers | ||
* add testing tools to avoid | * add testing tools to avoid regressions | ||
* output better debug and error messages | * output better debug and error messages | ||
* support architectures other than X86_64, i386 | * support architectures other than X86_64, i386 | ||
Line 58: | Line 46: | ||
* remove data objects which are no longer used | * remove data objects which are no longer used | ||
* provide different redundancy levels for each VDI | * provide different redundancy levels for each VDI | ||
* handle total node failure | * handle total node failure (all nodes in the cluster) | ||
* handle network partition failure | * handle network partition failure | ||
* remove limitation of the number of VMs on the same host | * remove limitation of the number of VMs on the same host |
Revision as of 22:14, 10 October 2010
Summary
A distributed storage system for QEMU
Owner
- Name: Kazutaka Morita
- Email: morita.kazutaka@lab.ntt.co.jp
Detailed Summary
Sheepdog is a distributed storage system for QEMU. It provides highly available block level storage volumes that can be attached to QEMU-based virtual machines. Sheepdog scales to several hundreds nodes, and supports advanced volume management features such as snapshot, cloning, and thin provisioning.
The architecture of Sheepdog is fully symmetric; there is no central node such as a meta-data server. This design enables following features.
Linear scalability in performance and capacity When more performance or capacity is needed, Sheepdog can be grown linearly by simply adding new machines to the cluster.
No single point of failure Even if a machine fails, the data is still accessible through other machines.
Easy administration There is no configuration file that defines the cluster's members or roles. When administrators launch Sheepdog programs at the newly added machine, Sheepdog automatically detects the new machine and will add it as a member of the cluster.
Getting Started
Status
- QEMU 0.13 provides built-in support for sheepdog block devices.
- The latest sever code is available on the following git tree
TODOs
generic items
- add more documentation for users
- add more documentation for developers
- add testing tools to avoid regressions
- output better debug and error messages
- support architectures other than X86_64, i386
- support libvirt
sheep
- update VDI objects atomically
- handle connection timeout
- scalability upto several hundreds nodes
- better data re-balancing
- remove data objects which are no longer used
- provide different redundancy levels for each VDI
- handle total node failure (all nodes in the cluster)
- handle network partition failure
- remove limitation of the number of VMs on the same host
- support VMs running outside the cluster
- better load balancing, performance
collie
- provide a machine parsable format option
- provide a manual recovery command from the total node failure
- show differences between VDIs to backup efficiently
qemu block driver
- support live migration
- support snapshot deletion
- support a variable object size
- support shrinking image size