[sheepdog] [PATCH v4 3/6] sheep: change method of generating vnodes

Liu Yuan namei.unix at gmail.com
Tue May 20 11:23:55 CEST 2014


On Tue, May 20, 2014 at 04:40:31PM +0800, Robin Dong wrote:
> From: Robin Dong <sanbai at taobao.com>
> 
> The sheepdog use node (include network ip and port) to generate
> vnoes in hashing-ring at present. Every node generate about 128 vnods.
> When comes a oid, sheep will find the corresponding nodes by searching
> the vnodes and send oid to these nodes.
> 
> Imaging a disk has corrupted in a cluster using erasure-code, the node
> will try to recovery all data in corrupted disk by fetching from other
> nodes. This progress will take a very long time because it need to fetch
> m copies from remote to re-generate (erasure code algorithm) 1 copy in
> m:n erasure-code cluster, which will costs large mount of network traffic.
> 
> To solve this problem, we use disk to generate vnodes; therefore when a
> disk is corrupted, all the nodes in cluster will join the recovery progress
> and the progress will be much shorter.
> 
> In our test environment, the recovery time is 10 minutes when using old
> vnodes algorithm, but it reduces to only 2 minutes by using disk to
> generate vnodes. The test cluster has 10TB data.

You should note in the commit log the disadvantage of this method is, unlimited
local disks is narrowed down to DISK_MAX.

Thanks
Yuan



More information about the sheepdog mailing list