Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
c764d04
DOCS-2683 Update Datasets and Zvols UI REef Content
micjohnson777 Sep 15, 2026
f6198ae
Merge branch 'master' into DOCS-2683-Update-Datasets-and-Zvol-Content
micjohnson777 Sep 16, 2026
7067e90
DOCS-2683 Create AddZvolSettings.md Snippet
micjohnson777 Sep 16, 2026
661eb14
Merge branch 'DOCS-2683-Update-Datasets-and-Zvol-Content' of https://…
micjohnson777 Sep 16, 2026
c6d9174
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
cd58e7e
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
098eec7
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
1577e43
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
621de69
Update static/includes/AddZvolSettings.md
micjohnson777 Sep 18, 2026
6b12908
Update static/includes/AddZvolSettings.md
micjohnson777 Sep 18, 2026
4f39004
Update static/includes/EncryptionSettings.md
micjohnson777 Sep 18, 2026
21481e0
Update static/includes/AddZvolSettings.md
micjohnson777 Sep 18, 2026
92c9d41
Update static/includes/EncryptionSettings.md
micjohnson777 Sep 18, 2026
019203d
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
5fba436
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
5d1255e
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
6c9437b
Update content/SCALE/Datasets/DatasetsScreens.md
micjohnson777 Sep 18, 2026
2e26766
Apply batched suggestions from code review
micjohnson777 Sep 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
132 changes: 66 additions & 66 deletions content/SCALE/Datasets/DatasetsScreens.md

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions content/SCALE/Datasets/ManagingDatasets.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,9 @@ We recommend choosing a compression algorithm that balances disk performance wit
{{< include file="/static/includes/StorageCompressionLevelsScale.md" >}}

### Setting Dataset Quotas

You can set dataset quotas while adding datasets using the quota management options in the **Add Dataset** screen under **Advanced Options**.

You can also add or edit quotas for an existing dataset, by clicking **Edit** on the **Dataset Space Management** widget to open the **[Capacity Settings]({{< ref "CapacitySettings" >}})** screen.

{{< trueimage src="/images/SCALE/Datasets/AddDatasetQuotasManagement.png" alt="Add Dataset Advanced Quota Options" id="Add Dataset Advanced Quota Options" >}}
Expand Down Expand Up @@ -74,16 +76,19 @@ Enter **0** for unlimited.
For more information on quotas, see [Managing User or Group Quotas]({{< ref "ManageQuotas" >}}).

### Changing Dataset Inherited Values

By default, many dataset options inherit their values from the parent dataset.
When settings on the **Advanced Options** screen are set to**Inherit** the dataset uses the setting from the parent dataset.
For example, the [Encryption]({{< ref "/SCALE/Datasets/Encryption" >}}) or **ACL Type** settings.

To change any setting that datasets inherit from the parent, select an available option other than **Inherit**.

### Setting Datasets Access Controls

For information on ACL settings see [Setting Up Permissions]({{< ref "/SCALE/Datasets/Permissions" >}}).

### Adding Deduplication

Deduplication is found on the **Add Datasets Advanced Settings** screen.

{{< hint type=info >}}
Expand Down Expand Up @@ -111,6 +116,7 @@ Change **Checksum** to **SHA512**.
Complete any other setting changes you want to make, then click **Save**.

## Creating a Dataset for a Fusion Pool

First, add the [pool with a Metadata VDEV]({{< ref "CreatingFusionPools" >}}).

{{< trueimage src="/images/SCALE/Storage/PoolCreationWizardMetadataScreen.png" alt="Pool Creation Wizard Metadata Step" id="Pool Creation Wizard Metadata Step" >}}
Expand All @@ -125,14 +131,17 @@ The **Threshold** field appears. Enter a maximum block size (1 byte to 16 MiB) f
The default threshold is 16 MiB. Blocks smaller than or equal to the threshold are assigned to the special allocation class; larger blocks are assigned to the regular class.

## Managing Datasets

After creating a dataset, users can manage additional options from the **Datasets** screen.
Select the dataset, then click **Edit** on the dataset widget for the function you want to manage.
The [Datasets Screen]({{< ref "/SCALE/Datasets" >}}) article describes each option in detail.

### Editing a Dataset

Select the dataset on the tree table, then click **Edit** on the **Dataset Details** widget to open the **Edit Dataset** screen and change the dataset configuration settings. You can change all settings except **Name**, **Case Sensitivity**, or **Device Preset**.

### Editing Dataset Permissions

To edit the dataset ACL permissions, click **Edit** on the **Permissions** widget.
If the ACL type is NFSv4, the **Permissions** widget shows ACE entries for the dataset.
Each entry opens a checklist of flag options you can select or clear without opening the **Edit ACL** screen.
Expand All @@ -144,6 +153,7 @@ To access the **Edit ACL** screen for POSIX ACLs, select **Create a custom ACL**
For more information, see the [Setting Up Permissions]({{< ref "/SCALE/Datasets/Permissions" >}}) article.

### Deleting a Dataset

Select the dataset on the tree table, then click **Delete** on the **Dataset Details** widget.
This opens a delete window where you enter the dataset path (root/parent/child) and select **Confirm** to delete the dataset, all stored data, and any snapshots from TrueNAS.

Expand Down
22 changes: 1 addition & 21 deletions content/SCALE/Datasets/Zvols/ZvolsScreens.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,27 +98,7 @@ The **Add Zvol** and **Edit Zvol** screens allow admin users with the right perm
Both screens include the same settings, but you cannot change the zvol name, **Block Size**, or select the **Sparse** option after you click **Save** on the **Add Zvol** screen.
After adding a zvol, click **Edit** on the **Zvol Details** widget to open the **Edit Zvol** screen.

When the zvol is encrypted, **Edit** on the **Encryption** widget opens a configuration screen where you can change the passphrase for a zvol encrypted with the passphrase type, but you cannot change to a key encryption type. If the zvol is not encrypted, you do not see encryption options on the **Edit Zvol** screen.

{{< trueimage src="/images/SCALE/Datasets/AddZvolScreen.png" alt="Add Zvol Screen" id="Add Zvol Screen" >}}

{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Zvol name** | (Required setting) Enter a short name for the zvol longer than 63 characters to prevent potential problems accessing zvols as devices. For example, you cannot use a zvol with a 70-character file name or path as an iSCSI extent. |
| **Comments** | Enter any notes about the zvol. Descriptions show on the iSCSI screens when the zvol is used in a block share. |
| **Size for this zvol** | Specify numeric size and value. You can include units like **t** as in TiB, and **G**. You can increase the size of the zvol later, but you cannot reduce the size. If the size is greater than 80% of the available capacity, the creation fails with an out-of-space error unless you select **Force size**. |
| **Force size** | Enables the system to create a zvol where the size is over 80% capacity. By default, the system does not create a zvol of this size. While not recommended, enabling this option forces the creation of the zvol. |
| **Sparse** | Enables using [thin provisioning]({{< ref "thinprovisioning" >}}) where disk space for this volume is allocated on-demand as new writes are received. Use caution when enabling, as writes can fail when the pool is low on space. |
| **Sync** | Select a data write synchronization option from the dropdown list. Options: <ul><li>**Inherit** gets the sync settings from the parent dataset. <br><li>**Standard** uses the sync settings requested by the client software. <br><li>**Always** waits for data writes to complete. <br><li>**Disabled** never waits for writes to complete.</li></ul> |
| **Compression level** | Select the option from the dropdown list for the type of data compression to use for encoding information in less space than the original data occupies. Select the algorithm that balances disk performance with the amount of space saved. See [below](#data-compression-algorithms) for the options. |
| **ZFS Deduplication** | Do not change this setting unless instructed to by your TrueNAS support engineer. Transparently reuses a single copy of duplicated data to save space. Deduplication can improve storage capacity, but it is RAM-intensive. Compressing data is generally recommended before using deduplication. Deduplicating data is a one-way process. Deduplicated data cannot be undeduplicated!. |
| **Read-only** | Select the option to prevent modifying the zvol. Options are **Inherit (off)**, **On** or **Off**. |
| **Block size** | Select the size option from the dropdown list. The default is **16KiBt**, other options are **4KiB**, **8KiB**, **16KiB**, **32KiB**, **64KiB**, **128KiB**. The zvol default block size is automatically chosen based on the number of disks in the pool for a general use case. |
| **Snapdev** | Select the option that controls whether the volume snapshot devices under /dev/zvol/*poolname* are hidden or visible from the dropdown list. Options are **Inherit (hidden)**, **Visible** and **Hidden** (default value). |
| **Use Metadata (Special) VDEVs** | Enables storing data blocks in a [special allocation class (fusion pool)]({{< ref "CreatingFusionPools" >}}) metadata VDEV. Options: <ul><li>**Inherit** - Uses the parent dataset setting. Displays the inherited value in human-readable form, for example, **Inherit (128 KiB)** or **Inherit (off)**.<br><li>**On** - Enables the special allocation class for this zvol. Shows the **Threshold** field where you enter the maximum block size to store in the special class. Valid values are 1 byte to 16 MiB. The default threshold is 16 MiB. Blocks smaller than or equal to the threshold are assigned to the special allocation class; larger blocks are assigned to the regular class.<br><li>**Off** - Disables storing blocks in the special allocation class.<br></li></ul> Before enabling this setting, you must add a [metadata special class VDEV]({{< ref "CreatingFusionPools" >}}) to the pool. |
| **Inherit (non-encrypted/encrypted)** | Encryption settings are inherited from the parent dataset. When the parent is encrypted, this option defaults to **Inherit (encrypted)**; otherwise, it shows **(non-encrypted)**. Clearing the checkmark shows the **Encryption** options. If the parent is encrypted with the passphrase type, the zvol can only use passphrase encryption. When the parent is encrypted with a key, the zvol can use either key or passphrase encryption. Refer to the [Encryption Settings]({{< relref "EncryptionScreen" >}}) article for more details. |
{{< /truetable >}}
{{< include file="/static/includes/AddZvolSettings.md" >}}

{{< expand "Block Size Table" "v" >}}
TrueNAS recommends a space-efficient block size for new zvols.
Expand Down
51 changes: 51 additions & 0 deletions static/includes/AddZvolSettings.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
&NewLine;

{{< trueimage src="/images/SCALE/Datasets/AddZvolScreen.png" alt="Add Zvol Screen" id="Add Zvol Screen" >}}

{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Name** | Specifies a short name for the zvol that is not longer than 63 characters to prevent potential problems accessing zvols as devices. For example, you cannot use a zvol with a 70-character file name or path as an iSCSI extent. |
| **Size** | Specifies a size and value such as 10 GiB. You can include units like **t** as in TiB, or **G**. You can increase the size of the zvol later, but you cannot reduce the size. If the size is greater than 80% of the available capacity, the creation fails with an out-of-space error unless you select **Force size**. |
{{< /truetable >}}

### Additional Options
{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Force size** | Sets the system to restrict creating a zvol that brings the pool to over 80% capacity. When set, forces creation of the zvol (not recommended). By default, the system does not let you create a zvol if that operation brings the pool to over 80% capacity. Setting this overrides this rule. |
| **Sparse** | Enables using [thin provisioning]({{< ref "thinprovisioning" >}}) where disk space for this volume is allocated on-demand as new writes are received. Use caution when enabling, as writes can fail when the pool is low on space. |
| **Comments** | Enter any notes about the zvol. Descriptions show on the iSCSI screens when the zvol is used in a block share. |
| **Sync** | Sets the data write synchronization. Options: <ul><li>**Inherit** - Gets the sync settings from the parent dataset.</li><li>**Standard** - Uses the sync settings requested by the client software.</li><li>**Always** - Waits for data writes to complete.</li><li>**Disabled** - Never waits for writes to complete.</li></ul> |
| **Compression** | Sets the compression algorithm. Compression encodes information in less space than the original data occupies. We recommend choosing a compression algorithm that balances disk performance against the amount of space saved. Options: <ul><li>**LZ4** - Generally recommended as it maximizes performance and dynamically identifies the best files to compress.</li><li>**ZSTD** - Uses the [Zstandard](https://tools.ietf.org/html/rfc8478) compression algorithm. Has several options for balancing speed and compression.</li><li>**Gzip** - Has options that range from **1** for least compression with best performance to **9** for maximum compression with greatest performance impact.</li><li>**ZLE** - Has a fast algorithm that only eliminates runs of zeroes.</li><li>**LZJB** - A legacy algorithm that is not recommended for use.</li></ul> |
| **ZFS Deduplication** | Sets TrueNAS to transparently reuse a single copy of duplicated data to save space based on the selected option. Options: <ul><li>**Inherit** - Uses the parent or root dataset settings.</li><li>**On** - Uses deduplication.</li><li>**Off** - Does not use deduplication.</li><li>**Verify** - Performs a byte-to-byte comparison when two blocks have the same signature to verify that the block contents are identical.</li></ul> Deduplication can improve storage capacity, but it is RAM-intensive. Compressing data is generally recommended before using deduplication. Deduplicating data is a one-way process. Deduplicated data cannot be undeduplicated! Do not change this setting unless instructed to by your TrueNAS support engineer. |
| **Read-only** | Allows or prevents storage volume (zvol, dataset) modification. **Inherit** ues the the parent setting. **On** prevents modifying the dataset. **Off** allows users to access the dataset to modify its contents.|
| **Block size** | Sets the zvol default block size. Automatically chosen based on the number of disks in the pool for general use cases. The default is **16KiBt**, other options are **4KiB**, **8KiB**, **16KiB**, **32KiB**, **64KiB**, **128KiB**. |
| **Snapdev** | Controls visibility of the volume snapshot devices in the <file>.zfs</file> directory under <file>/dev/zvol/<i>poolname</i></file> on the dataset. Options are **Visible** shows the directory, **Invisible** hides the directory, or **Disabled** disables access to the directory (default setting). |
| **Use Metadata (Special) VDEVs** | Stores data blocks in a [special allocation class (fusion pool)]({{< ref "CreatingFusionPools" >}}) metadata VDEV. Options: <ul><li>**Inherit** - Uses the parent dataset setting. Displays the inherited value in human-readable form, for example, **Inherit (128 KiB)** or **Inherit (off)**.</li><li>**On** - Enables the special allocation class for this dataset. Shows the **Threshold** field where you enter the maximum block size to store in the special class. Valid values are 1 byte to 16 MiB. The default threshold is 16 MiB. Blocks smaller than or equal to the threshold are assigned to the special allocation class; larger blocks are assigned to the regular class.</li><li>**Off** - Disables storing blocks in the special allocation class.</li></ul> Before enabling this setting, you must add a [metadata special class VDEV]({{< ref "CreatingFusionPools" >}}) to the pool. |
{{< /truetable >}}

### Encryption

Encryption settings secure data within this zvol. These settings establish the level and type of encryption applied.
The default setting is **Inherit (non-encrypted)** when the root or parent dataset for the new storage is unencrypted.
If encrypted, it shows **Inherit (encrypted)**.

{{< trueimage src="/images/SCALE/Shares/AddZvolScreenEncryption.png" alt="Add Zvol Encryption" id="Add Zvol Encryption" >}}

When a zvol is encrypted, **Edit** on the **Encryption** card found on the **Datesets** screen opens a configuration screen where you can change the passphrase for a zvol encrypted with the passphrase type, but you cannot change to a key encryption type. If the zvol is not encrypted, you do not see encryption options on the **Edit Zvol** screen.

{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Inherit (non-encrypted/encrypted)** | Inherits encryption from the parent dataset when selected. Default setting. Clearing shows the **Encryption** settings. When the parent is encrypted, this option defaults to **Inherit (encrypted)**; otherwise, it shows **(non-encrypted)**. If the parent is encrypted with the passphrase type, the zvol can only use passphrase encryption. When the parent is encrypted with a key, the zvol can use either key or passphrase encryption. Refer to the [Encryption Settings]({{< relref "EncryptionScreen" >}}) article for more details. |
| **Encryption** | Secures data within this zvol. Data is unusable until unlocked with an encryption key or passphrase. If parent dataset has encryption enabled, it is not possible to disable this option. The default encryption type is key. Clearing the **Encryption** checkmark hides the encryption settings. For detailed encryption configuration and management that covers pool-level encryption settings refer to the [ZFS encryption man page](https://zfsonlinux.org/manpages/0.8.3/man8/zfs.8.html), and [ZFS key management](https://openzfs.github.io/openzfs-docs/man/8/zfs-load-key.8.html). |
{{< /truetable >}}

Disabling the inheirt option shows the **Encryption Type** setting the **Key** and **Passphrase** options. Each shows different settings.

{{< trueimage src="/images/SCALE/Shares/AddZvolScreenKeyEncryption.png" alt="Add Zvol Key Encryption" id="Add Zvol Key Encryption" >}}

{{< trueimage src="/images/SCALE/Shares/AddZvolScreenPassphraseEncryption.png" alt="Add Zvol Passphrase Encryption" id="Add Zvol Passphrase Encryption" >}}

{{< include file="/static/includes/EncryptionSettings.md" >}}
8 changes: 4 additions & 4 deletions static/includes/DatasetQuotaSettings.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
{{< truetable >}}
| Setting | Description |
|---------|-------------|
| **Quota for this dataset**<br> **Quota for this dataset and all children** | Enter a value to define the maximum allowed space for the dataset. **0** disables quotas. |
| **Quota warning alert at, %** | Enter a percentage value to generate a warning level [alert]({{< ref "/SCALE/TopToolbar/Alerts/AlertSettingsScreen" >}}) when consumed space reaches the defined level. By default, the dataset inherits this value from the parent dataset. Clear the **Inherit** checkbox to change the value. |
| **Quota critical alert at, %** | Enter a percentage value to generate a critical level [alert]({{< ref "/SCALE/TopToolbar/Alerts/AlertSettingsScreen" >}}) when consumed space reaches the defined level. By default, the dataset inherits this value from the parent dataset. Clear the **Inherit** checkbox to change the value. |
| **Reserved space for this dataset**<br> **Reserved space for this dataset and all children** | Enter a value to reserve additional space for datasets that contain logs which could eventually take up all the available free space. **0** is unlimited. |
| **Quota for this dataset**<br> **Quota for this dataset and all children** | Sets the maximum allowed space for dataset. 0 disables quotas. # the same for **This Dataset** and the **This Dataset and Child Datasets** fields. |
| **Quota warning alert at, %** | Sets the percentage value to generate a warning level [alert]({{< ref "/SCALE/TopToolbar/Alerts/AlertSettingsScreen" >}}) when consumed space reaches the defined level. By default, the dataset inherits this value from the parent dataset. Clear the **Inherit** checkbox to change the value. |
| **Quota critical alert at, %** | Sets the percentage value to generate a critical level [alert]({{< ref "/SCALE/TopToolbar/Alerts/AlertSettingsScreen" >}}) when consumed space reaches the defined level. By default, the dataset inherits this value from the parent dataset. Clear the **Inherit** checkbox to change the value. |
| **Reserved space for this dataset**<br> **Reserved space for this dataset and all children** | Sets a reserve of additional space for datasets that contain logs that could eventually take up all the available free space. **0** is unlimited. |
{{< /truetable >}}
Loading
Loading