Hi All, I am looking at trying to understand the conceptual model of how data is grouped and partitioned within a storge pool. In looking at the on disk document that Tabriz sent out a few weeks ago I see that object sets are the grouping which ZFS uses to group objects that are related. Specifially to aid in format and layout of like objects in to a set. So, for example 1 potential object set type is a filesystem. In looking further at the DSL documentation and the man pages, the DSL represents each object set as a dataset. The dataset being responsible for managing space statistics, object set location information and relationships between object sets. So, if I pictorally represent this I imagine it looks something like: Storage Pool ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | DS1 | DS2 | DS3 | .... | | Obset 1 | Objset2 | Objset 3 | | | | | | | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I realize that the dataset/objsets are not contiguous necessarily in a storage pool. This is just a conceptual representation. Is this even close? Questions/observations: 1. I am assuming that a dataset has a 1-1 correspondence with a objset. So, that for example a ZFS filesystem, which has a container objset has 1 dataset that represents it in the storage pool? 2. Is there a case or potential case where a dataset could contain more than 1 objset? 3. Is it fair to say that the difference between an objset and dataset is not related to the grouping of the objects/data, but more a difference in the operations and attributes offered by each respectively? thanks for your help, sarah
Obviously, my formatting didn''t work. What I meant to convey with the picture below is a 1-1 correspondence between dataset <->objset with multiple of these in the storage pool. sarah ***** Sarah Jelinek wrote:> Hi All, > > I am looking at trying to understand the conceptual model of how data > is grouped and partitioned within a storge pool. In looking at the on > disk document that Tabriz sent out a few weeks ago I see that object > sets are the grouping which ZFS uses to group objects that are > related. Specifially to aid in format and layout of like objects in to > a set. So, for example 1 potential object set type is a filesystem. > > In looking further at the DSL documentation and the man pages, the DSL > represents each object set as a dataset. The dataset being responsible > for managing space statistics, object set location information and > relationships between object sets. So, if I pictorally represent this > I imagine it looks something like: > > Storage Pool > > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > | DS1 | DS2 | DS3 | .... > > | | Obset 1 | Objset2 | Objset 3 | > > | > | | | | > > | > ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- > > > I realize that the dataset/objsets are not contiguous necessarily in a > storage pool. This is just a conceptual representation. Is this even > close? > > Questions/observations: > 1. I am assuming that a dataset has a 1-1 correspondence with a > objset. So, that for example a ZFS filesystem, which has a container > objset has 1 dataset that represents it in the storage pool? > > 2. Is there a case or potential case where a dataset could contain > more than 1 objset? > > 3. Is it fair to say that the difference between an objset and dataset > is not related to the grouping of the objects/data, but more a > difference in the operations and attributes offered by each respectively? > > thanks for your help, > sarah > _______________________________________________ > zfs-discuss mailing list > zfs-discuss at opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss >
> Questions/observations: > 1. I am assuming that a dataset has a 1-1 > correspondence with a objset. > So, that for example a ZFS filesystem, which has a > container objset has > 1 dataset that represents it in the storage pool?Yep, that''s right.> 2. Is there a case or potential case where a dataset > could contain more > than 1 objset?Nope, it''s always 1:1. FYI, the on-disk linkage between these structures is the dsl_dataset_phys_t''s (single) blkptr_t (ds_bp), which points to a block which contains an objset_phys_t.> 3. Is it fair to say that the difference between an > objset and dataset > is not related to the grouping of the objects/data, > but more a > difference in the operations and attributes offered > by each respectively?That''s exactly correct. As you mentioned, the objset manages the objects -- how they are laid out on disk (eg. dnodes and indirect blocks), while the dataset manages the space itself, and the relationships between object sets (eg. snapshots, clones, and when to actually free a given block). Let me know if you have any more questions, --matt This message posted from opensolaris.org
Hi, On Tue, Jan 03, 2006 at 03:22:58PM -0800, Matthew A. Ahrens wrote:> FYI, the on-disk linkage between these structures is the dsl_dataset_phys_t''s (single) blkptr_t (ds_bp), which points to a block which contains an objset_phys_t.This dsl_dataset_phys_t is in the bonus buffer of a dnode... but what does the dnode itself point at? I found that I could read files from a zfs filesystem without ever following this dnode; I just used the ds_bp in the bonus buffer instead. Similarly I never followed the dnode of a DSL Directory; I just grabbed an object number from dd_head_dataset_obj in the bonus buffer, and looked up the object number in the meta object set. So do these two dnodes point at anything useful? Luke.
> So do these two dnodes point at > anything useful?The objects in the MOS whose bonus buffers contain the dsl_dataset_phys_t and the dsl_dir_phys_t don''t have any thing in them aside from those bonus buffers. I guess that namespace is "reserved for future expansion" :-) --matt This message posted from opensolaris.org