[sheepdog] [PATCH v7 00/10] replace structure of inode->data_vdi_id[] from array to b-tree

Liu Yuan namei.unix at gmail.com
Mon Nov 18 08:05:48 CET 2013


On Sat, Nov 16, 2013 at 10:57:29PM +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.
> 
>    v6 --> v7 changes:
>    	1. add support for erasure-code
> 	2. change help information for hyper volume
> 	3. modify idx_to_oid() to support object-cache correctly
> 	4. add comment for test-case of hyper volume

One minor comment, we shouldn't allow creating vdi larger than 16PB, but

$ dog vdi create test 17P -b

can succeed and write

Patch set needs to rebase to current master.

Thanks
Yuan



More information about the sheepdog mailing list