Get a Quote     (408) 943-4100               TrueNAS Discord      VendOp_Icon_15x15px   Commercial Support Toggle between Light and Dark mode

Datasets Screen

  20 minute read.

Last Modified 2022-12-09 08:45 -0500

The Datasets screen and widgets display information about datasets, provide access to data management functions, indicate the dataset roles and what services use the dataset, show the encryption status, and the permissions the dataset has in place. The screen focus is on managing data storage including user and group quotas, and snapshots and other data protection measures.

The Datasets screen displays No Datasets with a Create Pool button in the center of the screen until you add a pool and the first root dataset.

DatasetsScreenBeforeAddingAPool

After creating a dataset, the left side of the screen displays a tree table that lists parent or child datasets (or zvols). The Details for datasetnam area on the right side of the screen displays a set of dataset widgets.

DatasetsScreenAfterAddingAPool

Import Data opens the Import Data screen.

Add Zvol opens the Add Zvol screen.

Add Dataset opens the Add Dataset screen.

Dataset Tree Table

The datasets tree table lists datasets in an expandable hierarchical structure with the root dataset first, which is followed by direct child or non-root parent datasets with their child datasets nested under them.

Click on any root or non-root parent dataset to expand the tree table. Click on any dataset to select it and display the dataset widgets for that dataset.

DatasetsScreenTreeTableExpanded

The table includes storage space used and available for that dataset, encryption status (locked, unlocked, or unencrypted), and the role of that dataset or what service uses it (i.e., the system dataset, a share, virtual machine, or application).

Tree Table Encryption

The Datasets tree table includes lock icons and descriptions that indicate the encryption state of datasets.

Icon State Description
DatasetLockedEncryptionIcon Locked Displays for locked encrypted root, non-root parent and child datasets.
DatasetUnlockedEncryptionIcon Unlocked Displays for unlocked encrypted root, non-root parent and child datasets.
DatasetLockedByAncestorEncryptionIcon Locked by ancestor Displays for locked datasets that inherit encryption properties from the parent.
DatasetUnlockedbyAncestorEncryptIcon Unlocked by ancestor Displays for unlocked datasets that inherit encryption properties from the parent.

Tree Table Roles

Dataset tree table roles are represented by icons. Hover over the icons to view the description or icon label. Roles in the dataset tree correspond to the Roles widget. A dataset with an active task include an activity spinner when that task is in progress.

Role Icon Description
System dataset DatasetRolesSystemDatasetIcon Indicates the parent (root) dataset designated as the system dataset. To change the system dataset go to System Settings > Advanced Settings and edit the System Dataset Pool.
Share DatasetRolesShareGenericIcon Indicates the dataset is used by a share or that child datasets of the parent are used by shares.
SMB share DatasetRolesSMBShareIcon Indicates the dataset is used by an SMB share.
VM DatasetRolesVMIcon Indicates the dataset is used by a virtual machine (VM).
Apps DatasetRolesAppsIcon Indicates this dataset is used by applications and stores Kubernetes configuration and container related data.

Dataset Widgets

Each dataset has a set of information cards (widgets) that display in the Details for datasetname area of the screen and that provide information grouped by functional areas. The set of widgets for a root or parent dataset differs from child datasets or datasets used by another service or with encryption.

Dataset widgets are:

Datasets Details Widget

The Dataset Details widget lists information on dataset type, and the sync, compression level, case sensitivity, Atime and ZFS deduplication settings. Path displays the full path for the selected dataset.

A root dataset path displays the pool name alone.

DatasetDetailsWidgetRootDataset

A child dataset path displays the root dataset (pool) name and parent dataset.

DatasetDetailsWidgetChildDataset

Edit opens the Edit Dataset screen for the selected dataset.

Non-root parent and child dataset versions of the card include the Delete option. To delete a root dataset, use the Disconnect/Export option on the Storage Dashboard screen.

Delete Dataset

The Delete button on the Dataset Details widget opens a window that includes information about other options or services that use the dataset, for example a parent to other datasets and the services the child datasets of a parent dataset uses. Non-root parent and child datasets include the Delete button.

The Delete window for a parent dataset (non-root) includes information about snapshots, shares or other services such as Kubernetes or VMs that use the dataset. If it is a parent to other datasets, the window includes the services a child dataset of this parent dataset uses.

DeleteDatasetParentDataset

If a child dataset uses services the window displays them.

DeleteDatasetChildUsingAService

If a child dataset is not used by a service, it does not display a service.

DeleteDatasetChildDataset

The window includes field where you type the path for the dataset and a Confirm option you must select to activate the Delete Dataset button.

Dataset Space Management Widget

The Dataset Space Management widget displays space allocation (reserved, used, available) for all datasets.

The widget displays after unlocking encrypted datasets. The widget donut graph provides at-a-glance information and numeric values for the space allocated and used in the selected dataset. This includes data written and space allocated to child datasets of this dataset. It provides access to quota configuration options for the parent dataset and the child dataset of the parent, and for users and groups with access to the dataset.

DatasetSpaceManagementWidgetRootDataset

Edit opens the Capacity Settings screen where you can set quotas for the dataset.

Manage User Quotas screen and Manage Group Quotas opens the Manage Group Quotas screen.

Data Protection Widget

The Data Protection widget displays for all datasets. This widget provides information on the number snapshots and other data protection related scheduled tasks (replication, cloud sync, rsync and snapshots) configured on the system.

It provides access to the tasks found on the Data Protection screen through links.

DataProtectionWidget

Create Snapshot opens the Add Snapshot screen.

Manage Snapshots opens the Snapshots screen list view where you can manage snapshots.

Manage Snapshot Tasks opens the Data Protection > Periodic Snapshot Tasks screen list view where you can manage scheduled periodic snapshot tasks.

Manage Replication Tasks opens the Data Protection > Replications Tasks screen list view where you can manage scheduled replication tasks.

Manage Cloud Sync Tasks opens the Data Protection > Cloud Sync Tasks screen list view where you can manage scheduled cloud sync tasks.

Manage Rsync Tasks opens the Data Protection > Rsync Tasks screen list view where you can manage scheduled rsync tasks.

Permissions Widget

The Permissions widget displays for all datasets. It indicates the type of ACL as either NFSv4 or Unix Permissions (POSIX) and lists access control items and the owner and group for the dataset.

Root dataset permissions are not editable. Permission screen and widget options vary based on the ACL type.

PermissionsWidgetRootDataset

Parent and child dataset permissions are editable.

PermissionsWidgetParentDataset

If the ACL type is NFSv4 (the default ACL type) the widget turns the items listed on the Permissions widget into buttons that open a configuration are where you can edit the item from the Permissions widget. The expanded item configuration area has both Permissions Advanced and Flags Advanced check-buttons you can select or deselect common NFSv4 permission options for each item type.

PermissionsWidgetOwnerNSFv4Options

A dataset with a POSIX ACL type, such as the ix-applications dataset, is only editable using the Edit button. Edit opens the permission edit screen for ACL based on the type.

Roles Widget

The Roles widget displays the dataset role or the service that uses it (i.e., a share, application, virtual machine, or the system dataset). A parent dataset displays information on child datasets that a service uses.

The Roles widget displays information about the service using the dataset and provides a link to manage whatever that service is. The widget roles information corresponds to the roles information in the dataset tree table.

RolesWidgetRootDataset

Role Link Included Description
System dataset Manage Advanced Settings Select the option to configure the System Dataset
Apps Manage Apps Settings Displays Kubernetes is using the dataset. Select the option to Choose Pool from the Settings dropdown list on the Applications screen.
SMB share Manage SMB Shares Displays the name of the SMB share using the dataset. Select it on the SMB Shares screen to edit it.
Other share Link to the Share type screen Displays the name of the share using the dataset. Select it on the share screen (NFS, iSCSI or WebDAV) to edit it.
VM Manage VM Settings Displays the name of the VM using the dataset(zvol). Select it on the Virtual Machines screen to edit it.

ZFS Encryption Widget

The ZFS Encryption widget displays for root, non-root parent, and child datasets configured with encryption but the options in the widget vary based on the type of dataset. It includes the current state of the dataset encryption, the encryption root, type andalgorithm used.

The ZFS Encryption widget displays the Lock or Unlock options are not available on the root dataset or a child dataset of a non-root parent it inherits encryption settings from. The root dataset ZFS Encryption widget includes the Export All Keys and the Export Key options, and the Edit option to change encryption settings.

ZFSEncryptionWidgetRootDataset

Parent or child dataset ZFS Encryption widgets include the options to Lock and Unlock the dataset and to Edit the encryption settings.

ZFSEncryptionWidgetChildDatasetUnlocked

Child dataset ZFS Encryption widgets include the Go to Encryption Root when you select Inherit as its Encryption Options setting. The non-root parent dataset controls the state of the child dataset.

ZFSEncryptionWidgetWithGoToEncryptionRoot

Edit opens the Edit Encryption Options for dataset window for the selected dataset.

For more details on encryption windows and functions see Encryption Settings.

Add and Edit Dataset Screens

The Add Dataset and Edit Dataset screens include the same settings but you cannot change the dataset Name, Share Type or Case Sensitivity settings after you click Save on the Add Dataset screen. After adding a dataset, to edit encryption options use the Edit button on the ZFS Encryption widget.

There are two screen options, Basic Options and Advanced Options. The Advanced Options screen include all the settings found on the Basic Options screen.

The Basic Options include three sections: Name and Options, Encryption Options and Other Options.

The Advanced Options settings include quotas management tools for This Dataset and This Dataset and Child Datasets, and includes more Other Options settings not available on the Basic Options screen.

Name and Options Settings

These settings are common to both the Basic Options and Advanced Options screens. Setting include name, path and other general settings.

AddDatasetNameAndOptions

Setting Description
Parent path Read-only field that displays the dataset path for the dataset. The root dataset path includes the only the name of the root dataset. Child datasets created from a child of root include the root dataset/parent dataset in the path.
Name Enter a unique identifier for the dataset. You cannot change the dataset name after clicking Save. TrueNAS does not allow dataset names to have trailing spaces.
Comments Enter notes about the dataset.
Sync Select the sync setting option from the dropdown list. Standard uses the sync settings requested by the client software. Always waits for data writes to complete, and Disabled never waits for writes to complete.
Compression level Select the compression algorithm to use from the dropdown list. Options encode information in less space than the original data occupies. It is recommended to choose a compression algorithm that balances disk performance with the amount of saved space.
LZ4 is generally recommended as it maximizes performance and dynamically identifies the best files to compress.
ZSTD is the Zstandard compression algorithm with several options for balancing speed and compression.
Gzip options range from 1 for least compression with best performance, through 9 for maximum compression with greatest performance impact.
ZLE is a fast algorithm that only eliminates runs of zeroes.
LZJB is a legacy algorithm that is not recommended for use.
Enable Atime Select the access time for files option from the dropdown list. Access time can result in significant performance gains. Inherit uses the access time setting of the parent or the root dataset. On updates the access time for files when they are read. Off disables creating log traffic when reading files to maximize performance.

Data Compression Algorithms

Select the compression algorithm that best suits your needs from the Compression dropdown list of options.

LZ4 maximizes performance and dynamically identifies the best files to compress. LZ4 provides lightning-fast compression/decompression speeds and comes coupled with a high-speed decoder. This makes it one of the best Linux compression tools for enterprise customers.

ZSTD offers highly configurable compression speeds, with a very fast decoder.

Gzip is a standard UNIX compression tool widely used for Linux. It is compatible with every GNU software which makes it a good tool for remote engineers and seasoned Linux users. It offers the maximum compression with the greatest performance impact. The higher the compression level implemented the greater the impact on CPU usage levels. Use with caution especially at higher levels.

ZLE or Zero Length Encoding, leaves normal data alone but only compresses continuous runs of zeros.

LZJB compresses crash dumps and data in ZFS. LZJB is optimized for performance while providing decent compression. LZ4 compresses roughly 50% faster than LZJB when operating on compressible data, and is greater than three times faster for uncompressible data. LZJB was the original algorithm used by ZFS but it is now deprecated.

Encryption Options Settings

The encryption setting options are the same on the Basic Options and Advanced Options screens. Encryption Options only display on the Add Dataset screen. To change encryption settings use the Edit button on the ZFS Encryption widget.

The default setting is Inherit selected. Clearing the checkbox displays the key encryption options. Clear the Inherit(non-encrypted) checkbox to display additional settings.

AddDatasetBasicEncryptionAndOtherOptions

Selecting other options changes the settings displayed.

Setting Description
Inherit (non-encrypted) Select to clear the checkmark to display more encryption settings.
Encryption Select to clear the checkmark and remove the encryption settings from the Add Dataset screen. If the root dataset is not encrypted, leaving Inherit (non-encrypted) selected is the same as clearing the Encryption checkbox.

Edit Encryption Settings

Setting Description
Encryption Type Select the option for the type of encryption to secure the dataset from the dropdown list. Select Key to use key-based encryption and display the Generate Key option. Select Passphrase to enter a user-defined passphrase to secure the dataset. This displays two additional Passphrase fields to enter and confirm the passphrase and the pbkdf2iters field.
Generate key Selected by default to have the system randomly generate an encryption key for securing this dataset. Clearing the checkbox displays the Key field and requires you to enter an encryption key you define. Warning! The encryption key is the only means to decrypt the information stored in this dataset. Store encryption keys in a secure location! Creating a new key file invalidates any previously downloaded key file for this dataset. Delete any previous key file backups and back up the new key file.
Key Enter or paste a string to use as the encryption key for this dataset.
Algorithm Displays for both key and passphrase encryption types. Select the mathematical instruction set that determines how plaintext converts into ciphertext from the dropdown list of options. See Advanced Encryption Standard (AES) for more details.
Passphrase
Confirm Passphrase
Enter the alpha-numeric string or phrase you want to use to secure the dataset.
pbkdf2iters Enter the number of password-based key deviation function 2 (PBKDF2) iterations to use for reducing vulnerability to brute-force attacks. Entering a number larger than 100000 is required. See PBKDF2 for more details.

See the list of Related Encryption Articles at the bottom of this article for more on encryption.

Other Options Settings - Basic Options

The Other Options help tune the dataset for specific data sharing protocols, but the Basic Options settings only includes a small subset of the settings found on the Advanced Options screen.

AddDatasetOtherOptions

Setting Description
ZFS Deduplication Select the option from the dropdown list to transparently reuse a single copy of duplicated data to save space. Options are Inherit to use the parent or root dataset settings. On to use deduplication. Off to not use deduplication, or Verify to do a byte-to-byte comparison when two blocks have the same signature to verify the block contents are identical.
Deduplication can improve storage capacity, but is RAM intensive. Compressing data is recommended before using deduplication.
Deduplicating data is a one-way process. Deduplicated data cannot be undeduplicated!
Case Sensitivity Select the option from the dropdown list. Sensitive assumes file names are case sensitive. Insensitive assumes file names are not case sensitive. You cannot change case sensitivity after the saving the dataset.
Share Type Select the option from the dropdown list to define the type of data sharing the dataset uses to optimize the dataset for that sharing protocol. Select SMB if using with an SMB share. Select Generic for all other share types. You cannot change this setting after the saving dataset.

Quota Management Settings - Advanced Options

The This Dataset and This Dataset and Child Datasets sections include the same setting options. These settings also display on the Capacity Settings screen.

To apply the settings to only the parent dataset you are creating, enter settings in the This Dataset fields. To apply settings to both the parent dataset and any new child datasets you create from this dataset, enter settings in the This Dataset and Child Datasets section.

AddDatasetQuotasManagement

Setting a quota defines the maximum allowed space for the dataset or the dataset and child datasets. You can also reserve a defined amount of pool space to prevent automatically generated data like system logs from consuming all of the dataset space. You can configure quotas for only the new dataset or include all child datasets.

Setting Description
Quota for this dataset
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 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 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
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.

Other Option Settings - Advanced Options

Many of the Other Options settings inherit their values from the parent dataset.

The Basic Options screen shares the ZFS Deduplication, Case Sensitivity and Share Type settings. All other settings in this section are unique to the Advanced Options screen.

AddDatasetOtherOptionsAdvanced1

Setting Description
ZFS Deduplication Select the option from the dropdown list. Options are Inherit (off), on, verify, and off. Transparently reuse a single copy of duplicated data to save space. Deduplication can improve storage capacity, but is RAM intensive. Compressing data is generally recommended before using deduplication. Deduplicating data is a one-way process. Deduplicated data cannot be undeduplicated!
Checksum Select the checksum option from the dropdown list. Select Inherit to use the parent setting; On to use checksum without specifying the variant; FLETCHER2 (deprecated) or FLETCHER4 to use a position-dependent checksum that uses two checksums to determine single-bit errors in messages transmitted over network channels or ZFS streams; SHA256 (default for dedupted datasets) or SHA512 to use a sequence of numbers and letters to check the copy of a downloaded update file is identical to the original; SKEIN which is not supported for a file system on boot pools; or EDNOR which is not supported for file systems on boot pools and Edon-R requires verification when used with dedup so it automatically uses verify.
Read-only Select the option to allow or prevent dataset modification from the dropdown list. On prevents modifying the dataset. Off allows users accessing the dataset to modify its contents.
Exec Select the option for executing processes from within the dataset from the dropdown list. On allows executing processes from within this dataset. Off prevents executing processes from with the dataset. We recommend setting it to On.
Snapshot directory Select the option to controls visibility of the .zfs directory on the dataset from the dropdown list. Select either Visible or Invisible.
Snapdev Select the option that controls whether the volume snapshot devices under /dev/zvol/poolname are hiddin or visible from the dropdown list. Options are Inherit (hidden), Visible and Hidden (default value).

AddDatasetOtherOptionsAdvanced2

Setting Description
Copies Select the number of duplicate of ZFS user data stored on this dataset from the dropdown list. Select between 1, 2, or 3 redundant data copies. This can improve data protection and retention, but is not a substitute for storage pools with disk redundancy.
Record Size Select the logical block size in the dataset from the dropdown list of options. Matching the fixed size of data, as in a database, can result in better performance.
ACL Type Select the access control list type from the dropdown list of options. Inherit preserves ACL type from the parent dataset.
Off to use neither NFSv4 or POSIX protocols.
NFSv4 is used to losslessly migrate Windows-style ACLs across Active Directory domains (or stand-alone servers) that use ACL models richer than POSIX. Since POSIX ACLs are a Linux-specific ZFS feature, administrators should use NFSv4 to maintain compatibility with TrueNAS Core, FreeBSD, or other non-Linux ZFS implementations.
POSIX use when an organization data backup target does not support native NFSv4 ACLs. Since the Linux platform used POSIX for a long time, many backup products that access the server outside the SMB protocol cannot understand or preserve native NFSv4 ACLs. All datasets within an SMB share path must have identical ACL types.
For a more in-depth explanation of ACLs and configurations in TrueNAS SCALE, see our ACL Primer.
ACL Mode Select the option that determines how chmod behaves when adjusting file ACLs from the dropdown list. See the zfs(8) aclmode property.
Passthrough only updates ACL entries that are related to the file or directory mode.
Restricted does not allow chmod to make changes to files or directories with a non-trivial ACL. An ACL is trivial if it can be fully expressed as a file mode without losing any access rules. Set the ACL Mode to restricted to optimize a dataset for SMB sharing, but it can require further optimizations. For example, configuring an rsync task with this dataset could require adding --no-perms in the task Auxiliary Parameters field.
Case Sensitivity Select the option that sets whether filenames are case sensitive. Select Sensitive to assume filenames are case sensitive, or Insensitive to assume filenames are not case sensitive. Noted: The Mixed option no longer exists.
Metadata (Special) Small Block Size Enter a threshold block size for including small file blocks into the special allocation class (fusion pools). Blocks smaller than or equal to this value are assigned to the special allocation class while greater blocks are assigned to the regular class. Valid values are zero or a power of two from 512B up to 1M. The default size 0 means no small file blocks are allocated in the special class. Before setting this property, you must add a special class VDEV to the pool.
Share Type Select the option from the dropdown list to define the type of data sharing the dataset uses to optimize the dataset for that sharing protocol. Select SMB if using with an SMB share. Select Generic for all other share types. You cannot change this setting after the saving dataset.

Related Content

Related Encryption Articles

Related Permissions Articles

Related Quotas Articles