At Mon, 19 Sep 2011 16:45:06 -0700, Wenhao Xu wrote: Hi Wenhao, Thanks for your interest! > > Hi folks, > > I just started looking at the sheepdog project. I really like what you are > doing here and would like to contribute code in the near future. After > reading the slides from kvm forum, I have the following questions: > 1. How to determine the id for an object? E.g. for a data object inside a > VDI, how to give it an ID? The object ID is a 64 bit integer. The upper 32 bit is a vdi ID, which is calculated from a vdi name with a hash function. The lower 32 bit is an index of the data object. Sheepdog splits a virtual disk into 4 MB chunks (data objects), and the index is used for the lower 32 bit. > 2. What is the relationship between vdi object and inode? How to locate > them? Are they also located by using consistency hashing? Both are same. We should unify the names. Vdi objects are also located with consistent hashing. > 3. Can each vdi volume have its own replication factor? Currently no, but it should have. > 4. How is the user_xattr is used? Why it is required by sheepdog? It is used to store some cluster informations (e.g. the creation time of cluster). If possible, I'd like to remove the dependency. > 5. Corosync uses multicast to do communications. However, in data center, > multicast may be disabled on the switch/router. Is it easy to replace > corosync with another engine to manage the node membership, e.g. zookeeper? > I would be very happy to contribute on this part. I think it is not so difficult. We have a plan to introduce a cluster driver which abstracts cluster management, and move all corosync related codes to the driver. I think we can support zookeeper in the driver. Currently, my coworker is working on a new cordination system project to become an alternative of corosync in Sheepdog. I guess he can announce the project soon. Thanks, Kazutaka |