[sheepdog] [PATCH v4 0/7] replace structure of inode->data_vdi_id[] from array to b-tree

Liu Yuan namei.unix at gmail.com
Fri Nov 1 11:48:39 CET 2013


On Fri, Nov 01, 2013 at 06:23:56PM +0800, Robin Dong wrote:
> Hi all,
> 
> The size of vdi can only reach 4TB beacause the inode->data_vdi_id[] can only
> support 1 million objects. But 4TB is too small for storage application
> such as NAS and cloud-disk therefore we need to change the array of 'data_vdi_id' to
> b-tree.
> 
> This patchset add B-tree structure into sd_inode. It support just two levels
> (one root-node and many leaf-nodes) and after this the size of vdi could reach about
> (4MB / sizeof(sd_extent_header) * (4MB / sizeof(sd_extent)) * 4MB which is about 680PB
> in theory.
> 
> Currently the vdi size can raise to 16PB because the size of oid is just 32-bits, but
> it is certainly enough for many storage requirement.
> 
> v3 --> v4 changes:
> 	1. let hyper volume work with object cache
> 	2. let hyper volume work with vdi_list vdi_check
> 	3. let all test case pass
> 	4. add new test case for hyper volume

I tried 'vdi check', and got

yliu at ubuntu-precise:~/sheepdog$ dog/dog vdi check test
100.0 % [===================================================================================================] 200 MB / 200 MB    
100.0 % [===================================================================================================] 200 MB / 200 MB    
198.0 % [===================================================================================================] 396 MB / 200 MB    finish check&repair test

I didn't expect this output because there is only 200MB data + inodes to check
and we should only see output

100.0 % [===================================================================================================] 200 MB / 200 MB

The last '396MB / 200 MB' looks weird to me.

Thanks
Yuan



More information about the sheepdog mailing list