On Wed, May 10, 2006 at 09:10:10AM -0700, Edward Pilatowicz wrote: > out of curiousity, how are properties handled?
I think you're confusing[*] the "clone origin filesystem" and the "parent filesystem". The parent filesystem is the one that is above it in the filesystem namespace, from which it inherits properties. The clone origin is the snapshot from which the clone was created, and its primary influence is that the clone origin can't be destroyed. The "clone origin filesystem" is the filesystem that contains the clone origin, which also can not be destroyed. Let's take an example: # zfs create pool/project/production # zfs snapshot pool/project/[EMAIL PROTECTED] # zfs clone pool/project/[EMAIL PROTECTED] pool/project/beta # zfs clone pool/project/[EMAIL PROTECTED] pool/test/foo/clone FS PARENT CLONE ORIGIN FS (snap) pool/project/production pool/project -none- pool/project/beta pool/project pool/project/production (@today) pool/test/foo/clone pool/test/foo pool/project/production (@today) So, pool/project/production and pool/project/beta inherit their properties from pool/project, and pool/test/foo/clone inherits its properties from pool/test/foo. pool/project/[EMAIL PROTECTED] (and thus pool/project/production) can't be destroyed. # zfs promote pool/project/beta FS PARENT CLONE ORIGIN FS pool/project/production pool/project pool/project/beta (@today) pool/project/beta pool/project -none- pool/test/foo/clone pool/test/foo pool/project/beta (@today) Now, the inheritance is still the same: So, pool/project/production and pool/project/beta inherit their properties from pool/project, and pool/test/foo/clone inherits its properties from pool/test/foo. pool/project/[EMAIL PROTECTED] (and thus pool/project/beta) can't be destroyed, but pool/project/production can be destroyed. And to answer your questions directly: > for example if you have a fs with compression disabled, you snapshot > it, you clone it, and you enable compression on the clone, and then > you promote the clone. will compressions be enabled on the new parent? The properties on the clone do not change when it is promoted. (At least, not the editable ones; the space accounting will change since some of the clone origin's snapshots are moved to the promoted fs.) > and what about other clones that have properties that are inherited from > the parent? will they all now have compression enabled as well? Any other clones will inherit their properties from their *parent*, not their clone origin, so 'zfs promote' will not change that either. Note that any snapshots that are moved to the promoted filesystem *will* inherit their properties from their new filesystem. However, the only inheritable properties which affect snapshots are 'devices', 'exec', and 'setuid' (see 6420135, "zfs(1m) should display properties of snapshots that affect their behavior"). Also, note that you can change a filesystem's parent, and thus where it inherits properties from, by using the 'zfs rename' subcommand. --matt [*] I may be the cause of some of this confusion, since there are really two trees here and sometimes I'll call the clone origin the "parent" or "clone parent". But the documentation at least should be consistent, let me know if this is not the case. _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss