TrueNAS Stable Version Documentation
This content follows TrueNAS 25.04 (Fangtooth) releases.
Use the Product and Version selectors above to view content specific to a different software release.
Datasets
22 minute read.
The Datasets screen and widgets show information about datasets, provide access to data management functions, indicate the dataset roles, list the services using the dataset, show the encryption status, and list the permissions the dataset has in place. The screen focuses on managing data storage including user and group quotas, snapshots, and other data protection measures.
The Datasets screen shows No Datasets with a Create Pool button in the center of the screen until you add a pool and the first root dataset.
The screen has two main sections, the dataset tree table on the left and the Details for datasetname on the right. After creating a dataset, the tree table lists parent and child datasets (or zvols) on the system. The Details for datasetname area shows a set of dataset widgets for the selected or active row.
Large petabyte systems might report storage numbers inaccurately. Storage configurations with more than 9,007,199,254,740,992 bytes round the last 4 digits. For example, a system with 18,446,744,073,709,551,615 bytes reports the number as 18,446,744,073,709,552,000 bytes.
Add Zvol opens the Add Zvol screen.
Add Dataset opens the Add Dataset screen.
Begin typing the name of a dataset in the Search field to filter datasets to a short list of those matching what is typed.
The datasets tree table lists datasets in an expandable hierarchical structure with the root dataset first, then each child or non-root parent dataset, and the child datasets of each nested under them.
Click on any parent dataset to expand the tree table and show nested child datasets. Select a dataset to display the dataset widgets for that dataset.
The table of datasets includes used and available storage space for the dataset, encryption status (locked, unlocked, or unencrypted), the dataset role, and services that use it (e.g., the system dataset, a share, virtual machine, or application).
Datasets and zvols have different icons.
The
Each dataset has a set of information cards (widgets) that show in the Details for datasetname area of the screen. These widgets 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:
The Dataset Details widget lists information on dataset type, sync type, compression, case sensitivity, Atime, and ZFS deduplication settings. Path shows the full path for the selected dataset.
A root dataset path shows the pool name alone.
The Delete window for a parent dataset (non-root) includes information about snapshots, shares, or other services such as apps or VMs that use the dataset. If a parent to other datasets, the window includes the services a child dataset uses.
If a child dataset uses services, the window shows the services.
If a service does not use a child dataset, the Delete window does not show a service.
The window includes a field to enter the path for the dataset. Enter the path and select Confirm to activate the Delete Dataset button.
The Dataset Space Management widget shows space allocation (reserved, used, available) for all datasets. The widget shows if an encrypted dataset is unlocked. After locking the dataset this widget disappears until you unlock the dataset.
The donut graph on the widget 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.
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.
The Data Protection widget shows for all datasets. It shows the number of snapshots and other data protection-related scheduled tasks (replication, cloud sync, rsync, and snapshots) configured on the system.
The Permissions widget shows the type of ACL as either NFSv4 or Unix Permissions (POSIX), lists access control user or group entries, and the owner and group for the dataset.
Root datasets have POSIX permissions and the entries are not editable. The permission screen and widget options vary based on the ACL type.
Parent and child dataset permissions (NFSv4 or POSIX) are editable.
NFSv4 ACL type (the default ACL type) shows the user and group entries on the Permissions widget as buttons. Click to show a selectable checklist of Permissions Advanced and Flags Advanced options for that entry on the Permissions widget.
A dataset with a POSIX ACL type is only editable using the Edit button.
Edit opens the Edit ACL for ACL type.
The Roles widget shows the dataset role or the service that uses it (i.e., a share, application, virtual machine, or it being the system dataset). A parent dataset shows information on child datasets that a service uses. If the dataset is also the system dataset, the widget includes a link to the System > Advanced Settings screen where you can manage the system dataset on the Storage widget.
The ZFS Encryption widget only shows for datasets configured with encryption. Options shown in the widget vary based on the type of dataset (root, non-root parent, or child dataset). It includes the current state of the dataset encryption, the encryption root, the type, and the algorithm used.
The Add Dataset and Edit Dataset screens allow admin users with the right permission level to create and or modify datasets. Both screens include the same settings but you cannot change the dataset name, Dataset Preset selection, or the Case Sensitivity settings on the Advanced Options screen after clicking Save on the Add Dataset screen.
After adding a dataset, Edit on the Dataset Details widget opens the Edit Dataset screen. Edit on the ZFS Encryption widget, opens a encryption edit screen. The ZFS Encryption widget only shows if the dataset uses encryption. Edit on the Permissions widget opens the Edit ACL screen to edit dataset permissions.
Add Dataset and Edit Dataset screens include the Basic Options and Advanced Options. TheBasic Options and Advanced Options screens include the Name and Options section.
The Advanced Options screen shows:
- Quota management tools and settings
- Encryption Options settings
- Other Options settings
The Basic Options and Advanced Options screens show the Name and Options settings section. The common settings are Parent Path, Name, and the Dataset Preset (previously known as the share type).
Only shows on the Advanced Options screen. The This Dataset and This Dataset and Child Datasets sections include the same setting options. This Dataset applies the quota settings to the dataset being created or edited. This Dataset and Child Datasets applies quota settings to any children of the dataset. These settings also display on the Capacity Settings screen.
Setting a quota defines the maximum allowed space for the dataset or the dataset and child datasets. You can reserve a defined amount of pool space to prevent automatically-generated data like system logs from consuming all available dataset space. You can configure quotas for only the new dataset or include all child datasets in the quota.
Encryption setting options display on the Advanced Options of the Add Dataset screen but not on the Edit Dataset screen. To edit encryption settings, click Edit on the ZFS Encryption widget. This opens the Edit Encryption Options for datasetName window where you can change encryption settings for an existing dataset.
If you create an unencrypted dataset, the default setting is Inherit (Non-Encrypted), and you can create encrypted or unencrypted child datasets under it. If you create an encrypted dataset, the default setting is Inherit (Encryption), and all child datasets created under it are encrypted. The default Inherit option is pre-selected.
Clear the Encryption option (pre-selected) checkbox to show the key type encryption settings. Select Passphrase in Encryption Type to show other settings.
The Other Options tune the dataset for specific data-sharing protocols by setting compression level and sync type options, ACL type and mode, and other settings.
The Compression Level setting lists several compression algorithm to choose from. Select the option that best suits your needs from the dropdown list.
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.