[sheepdog] [PATCH v2 0/6] replace structure of inode->data_vdi_id[] from array to B-tree
Robin Dong
robin.k.dong at gmail.com
Tue Oct 15 08:45:34 CEST 2013
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
(4MB / sizeof(sd_extent_header) * (4MB / sizeof(sd_extent)) * 4MB which is
about 680PB in theory.
Currently the vdi size can only reach to 16PB because the size of oid is just
32-bits, but it is certainly enough for many storage requirement.
v1 --> v2 changes:
1. fix the problem of creating 16PB vdi and mkfs.xfs
2. add comment and illustration to explain how B-tree works
3. add member of sd_inode 'btree_counter' by take place of child_vdi_id[]
instead of occuping 'vm_clock_nsec'
Thanks,
Robin Dong
More information about the sheepdog
mailing list