3588 provide zfs properties for logical (uncompressed) space
     used and referenced
Reviewed by: Adam Leventhal <ahl@delphix.com>
Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Dan McDonald <danmcd@nexenta.com>
Reviewed by: Richard Elling <richard.elling@dey-sys.com>
Approved by: Richard Lowe <richlowe@richlowe.net>

References:
  https://www.illumos.org/issues/3588
  illumos/illumos-gate@77372cb0f3

Ported-by: Richard Yao <ryao@gentoo.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Matthew Ahrens 2013-02-22 01:23:09 -08:00 committed by Brian Behlendorf
parent c2e42f9d53
commit 24a64651b4
5 changed files with 45 additions and 1 deletions

View File

@ -138,6 +138,8 @@ typedef enum {
ZFS_PROP_REFRATIO, ZFS_PROP_REFRATIO,
ZFS_PROP_WRITTEN, ZFS_PROP_WRITTEN,
ZFS_PROP_CLONES, ZFS_PROP_CLONES,
ZFS_PROP_LOGICALUSED,
ZFS_PROP_LOGICALREFERENCED,
ZFS_PROP_SNAPDEV, ZFS_PROP_SNAPDEV,
ZFS_PROP_ACLTYPE, ZFS_PROP_ACLTYPE,
ZFS_NUM_PROPS ZFS_NUM_PROPS

View File

@ -431,6 +431,40 @@ This property is \fBon\fR if the snapshot has been marked for deferred destructi
.ne 2 .ne 2
.mk .mk
.na .na
\fB\fBlogicalreferenced\fR\fR
.ad
.sp .6
.RS 4n
The amount of space that is "logically" accessible by this dataset. See
the \fBreferenced\fR property. The logical space ignores the effect of
the \fBcompression\fR and \fBcopies\fR properties, giving a quantity
closer to the amount of data that applications see. However, it does
include space consumed by metadata.
.sp
This property can also be referred to by its shortened column name,
\fBlrefer\fR.
.RE
.sp
.ne 2
.na
\fB\fBlogicalused\fR\fR
.ad
.sp .6
.RS 4n
The amount of space that is "logically" consumed by this dataset and all
its descendents. See the \fBused\fR property. The logical space
ignores the effect of the \fBcompression\fR and \fBcopies\fR properties,
giving a quantity closer to the amount of data that applications see.
However, it does include space consumed by metadata.
.sp
This property can also be referred to by its shortened column name,
\fBlused\fR.
.RE
.sp
.ne 2
.na
\fB\fBmounted\fR\fR \fB\fBmounted\fR\fR
.ad .ad
.sp .6 .sp .6

View File

@ -20,7 +20,7 @@
*/ */
/* /*
* Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011 by Delphix. All rights reserved. * Copyright (c) 2012 by Delphix. All rights reserved.
* Copyright (c) 2013 by Saso Kiselkov. All rights reserved. * Copyright (c) 2013 by Saso Kiselkov. All rights reserved.
*/ */
@ -365,6 +365,10 @@ zfs_prop_init(void)
ZFS_TYPE_SNAPSHOT, "<count>", "USERREFS"); ZFS_TYPE_SNAPSHOT, "<count>", "USERREFS");
zprop_register_number(ZFS_PROP_WRITTEN, "written", 0, PROP_READONLY, zprop_register_number(ZFS_PROP_WRITTEN, "written", 0, PROP_READONLY,
ZFS_TYPE_DATASET, "<size>", "WRITTEN"); ZFS_TYPE_DATASET, "<size>", "WRITTEN");
zprop_register_number(ZFS_PROP_LOGICALUSED, "logicalused", 0,
PROP_READONLY, ZFS_TYPE_DATASET, "<size>", "LUSED");
zprop_register_number(ZFS_PROP_LOGICALREFERENCED, "logicalreferenced",
0, PROP_READONLY, ZFS_TYPE_DATASET, "<size>", "LREFER");
/* default number properties */ /* default number properties */
zprop_register_number(ZFS_PROP_QUOTA, "quota", 0, PROP_DEFAULT, zprop_register_number(ZFS_PROP_QUOTA, "quota", 0, PROP_DEFAULT,

View File

@ -1387,6 +1387,8 @@ dsl_dataset_stats(dsl_dataset_t *ds, nvlist_t *nv)
ds->ds_phys->ds_compressed_bytes); ds->ds_phys->ds_compressed_bytes);
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_REFRATIO, ratio); dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_REFRATIO, ratio);
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_LOGICALREFERENCED,
ds->ds_phys->ds_uncompressed_bytes);
if (dsl_dataset_is_snapshot(ds)) { if (dsl_dataset_is_snapshot(ds)) {
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_COMPRESSRATIO, ratio); dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_COMPRESSRATIO, ratio);

View File

@ -440,6 +440,8 @@ dsl_dir_stats(dsl_dir_t *dd, nvlist_t *nv)
dd->dd_phys->dd_compressed_bytes == 0 ? 100 : dd->dd_phys->dd_compressed_bytes == 0 ? 100 :
(dd->dd_phys->dd_uncompressed_bytes * 100 / (dd->dd_phys->dd_uncompressed_bytes * 100 /
dd->dd_phys->dd_compressed_bytes)); dd->dd_phys->dd_compressed_bytes));
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_LOGICALUSED,
dd->dd_phys->dd_uncompressed_bytes);
if (dd->dd_phys->dd_flags & DD_FLAG_USED_BREAKDOWN) { if (dd->dd_phys->dd_flags & DD_FLAG_USED_BREAKDOWN) {
dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_USEDSNAP, dsl_prop_nvlist_add_uint64(nv, ZFS_PROP_USEDSNAP,
dd->dd_phys->dd_used_breakdown[DD_USED_SNAP]); dd->dd_phys->dd_used_breakdown[DD_USED_SNAP]);