[Sheepdog] Sheepdog inodes & volumes

Narendra Prasad Madanapalli narendramind at gmail.com
Fri Nov 26 10:17:09 CET 2010


Hi,

I am trying to understand how sheepdog volumes are strored and what
data structures are used for storage.

Sheepdog inode is declared in include/sheepdog_proto.h

struct sheepdog_inode {
	char name[SD_MAX_VDI_LEN];
	char tag[SD_MAX_VDI_TAG_LEN];
	uint64_t ctime;
	uint64_t snap_ctime;
	uint64_t vm_clock_nsec;
	uint64_t vdi_size;
	uint64_t vm_state_size;
	uint16_t copy_policy;
	uint8_t  nr_copies;
	uint8_t  block_size_shift;
	uint32_t snap_id;
	uint32_t vdi_id;
	uint32_t parent_vdi_id;
	uint32_t child_vdi_id[MAX_CHILDREN];
	uint32_t data_vdi_id[MAX_DATA_OBJS];
};

And the function create_vdi_obj() (in sheep/vdi.c) creates vdi object.
This function defines three static variables new, base, cur of type
'struct sheepdog_inode'

Can anyone point to me the documentation on the above structure and variables?
Where super object is stored and the other inodes are linked with super object?

I appreciate if you provide the information on the same.

Thanks,
Narendra.



More information about the sheepdog mailing list