TrueNASTrueNAS Nightly Development Documentation
This content follows experimental nightly development software. Pre-release software is intended for testing purposes only.
Use the Product and Version selectors above to view content specific to a stable software release.

Setting Up Storage

Now that you are logged in to the web interface, it is time to set up TrueNAS storage. These instructions describe a simple mirrored pool setup, where half the selected disks are used for storage and the other half for data protection. However, there are many configuration possibilities for your storage environment!

You can read more about these options in Creating Storage Pools. You can also use the ZFS Capacity Calculator and ZFS Capacity Graph to compare configuration options.

Minimum Storage Requirements

At minimum, the system needs at least two disks of identical size to create a mirrored storage pool. While a single-disk pool is technically allowed, it is not recommended. The disk used for the TrueNAS installation does not count toward this minimum.

You can configure data backups in several ways and have different requirements. Backing data up in the cloud requires a 3rd party cloud storage provider account. Backing up with replication requires you to have additional storage on the TrueNAS system or (ideally) another TrueNAS system in a different location. This approach leverages persistent storage for overall data protection.

Setting Up Storage

Your system must have at least one storage pool configured.

After installing TrueNAS, enter the IP address assigned by DHCP (displayed in the Console Setup Menu) into a browser window to access the TrueNAS sign-in splash screen. Log in to TrueNAS.

Begin by configuring your first storage pool.

See Creating Storage Pools for more information on how to plan for and create pools in TrueNAS. If you want to create additional pools with other disks not assigned to a pool, you can do that now or as you have a need for them.

Creating a Storage Pool

Click Create Pool to open the Pool Creation Wizard.

Pool Creation Wizard Fields (Click to expand)

This wizard screen lets you configure a VDEV using the Automated Disk Selection fields. To individually find and select disks for a VDEV, click Manual Disk Selection in the Advanced Options area.

Choosing a dRAID VDEV layout removes the Manual Disk Selection button and adds different options to the Automated Disk Selection area. It also removes the Spare VDEV section from the pool creation wizard and replaces it with the Distributed Hot Spares option in the Data VDEV section.

VDEV Layouts

  • Stripe

    Designates that each disk is used sequentially in the VDEV. Requires at least one disk and has no redundancy. A data VDEV with a stripe layout irretrievably loses all stored data if a single disk in the VDEV fails. Not recommended for data VDEVs storing critical data.

  • Mirror

    Denotes that each disk in the VDEV stores an exact data copy. Requires at least 2 disks in the VDEV. Storage capacity is the size of a single disk in the VDEV.

  • RAIDZ and dRAID

    Each of these layouts has 1, 2, and 3 options. The options indicate the number of disks reserved for data parity and the number of disks that can fail in the VDEV without data loss to the pool. For example, a RAIDZ2 layout reserves two additional disks for parity, and two disks can fail without data loss.

Automated Disk Selection - Stripe, Mirror, and RAIDZ layouts

SettingDescription
Disk SizeSelect the disk size from the list that displays. The list shows disks by size in GiB and type (SSD or HDD).
Treat Disk Size as MinimumSelect to use disks of the size selected in Disk Size or larger. If not selected, only disks of the size selected in Disk Size are used.
WidthSelect the number of disks from the options provided on the dropdown list.
Number of VDEVsSelect the number of VDEVs from the options provided on the dropdown list.

Automated Disk Selection - dRAID layouts

Similar to RAIDZ, dRAID layout numbers (1, 2, or 3) indicate the parity level and how many disks can fail without data loss to the pool.

TrueNAS defaults to allocating 10 disks minimum as dRAID VDEV in Children. If creating a data VDEV with fewer than 10 disks, using a RAIDZ layout is strongly recommended for better performance and capacity optimization.

SettingDescription
Disk SizeSelect the disk size from the list that displays. The list shows disks by size in GiB and type (SSD or HDD).
Treat Disk Size as MinimumSelect to use disks of the size selected in Disk Size or larger. If not selected, only disks of the size selected in Disk Size are used.
Data DevicesData stripe width for the VDEV. Select the number of disks from the options provided on the dropdown list. TrueNAS recommends that dRAID layouts have data devices allocated in multiples of 2.
Distributed Hot SparesNumber of disk areas to actively provide spare capacity to the entire VDEV. These areas are active within the pool and function in of adding a Spare VDEV to the pool. It is recommended to set this to at least 1. The Distributed Hot Spares number cannot be modified after the pool is created.
ChildrenThe total number of disks to allocate in the dRAID VDEV. The field selection and options update dynamically based on the chosen dRAID Layout, Disk Size, Data Devices, and Distributed Hot Spares. Increasing the number of Children in the dRAID VDEV can reduce the options for Number of VDEVs.
Number of VDEVsSelect the number of VDEVs from the options provided on the dropdown list. Options are populated dynamically depending on the selections made in all the other fields.

Enclosure Option only shows for iXsystems-provided systems with expansion shelves.

You can rename your enclosure on the Enclosure Screen to include the rack and U number in the name, which helps identify the physical location while in the pool creation screen.
  1. Enter a name of up to 50 lowercase alpha-numeric characters. Use only the permitted special characters that conform to ZFS naming conventions. The pool name contributes to the maximum character length for datasets, so it is limited to 50 characters.

    You cannot change the pool name after creation.
  2. (Enterprise systems only) Select the Enclosure Option to apply the dispersal strategy of your choice. Only shows for iXsystems-provided systems with expansion shelves.

    No Enclosure Dispersal Strategy does not apply a dispersal strategy in how the system adds disks by size and type to the pool VDEVs created when using the Automated Disk Selection option. Does not show additional options. Disks added to the pool VDEVs are assigned in sequence based on disk availability and are not balanced across all enclosures.

    Maximum Dispersal Strategy applies a maximum dispersal strategy in how the system adds disks by size and type to the pool VDEVs created when using the Automated Disk Selection option. This balances disk selection across all enclosures and available disks. Does not show additional options. Disks added to the pool VDEVs are spread across all available enclosure disks.

    Limit Pool To A Single Enclosure applies a minimum dispersal strategy in how the system adds disks by size and type to the pool VDEVs created when using the Automated Disk Selection option. Select the expansion shelf option on the Enclosure dropdown. Disks added to the pool VDEVs are spread across the enclosure disks that align with the selection in Enclosure.

  3. Create the required data VDEV.

    Select the layout from the Layout dropdown list, then either use the Automated Disk Selection fields to select and add the disks, or click Manual Disk Selection to add specific disks to the chosen Layout.

    dRAID layouts do not show the Manual Disk Selection button but do show additional Automated Disk Selection fields. When configuring a dRAID data VDEV, first choose a Disk Size then select a Data Devices number. The remaining fields update based on the Data Devices and dRAID layout selections.

    The Pool Creation Wizard does not allow creating a dRAID pool with an arbitrary number of children, and enforces D+P=C at a minimum, and then increments by multiples of D+C. Where D is data devices, P is parity, and C is children.

    This layout has several advantages over requiring each row to contain whole number of groups:

    • Group count - Group count is not a relevant parameter when defining a dRAID layout. Only the group width is needed, and all groups have the desired size.
    • Group widths - All possible group widths (greater than or equal to physical disk count) can be supported.

    The logic within the dRAID is simplified when the group width is the same for all groups, although some of the logic around computer permutation numbers and drive offsets is more complicated.

    See vdev_draid.c for more information.

    Click Save And Go To Review if you do not want to add other VDEV types to the pool, or click Next to move to the next wizard screens.

  4. Add any other optional VDEVs as determined by your specific storage redundancy and performance requirements.

  5. Click Create Pool on the Review wizard screen to add the pool.

The root dataset of the first pool you create automatically becomes the system dataset.

After adding your first pool, you can move on to creating datasets for data sharing, applications you plan to deploy, or other use cases.

Adding Datasets or Zvols

New pools have a root dataset that allows further division into new non-root parent and child datasets or into storage volumes (zvols). A dataset is a file system that stores data and has specific permissions.

A zvol is a virtual block device (like a virtual disk drive) that has a predefined storage size. Zvols are generally used with the iSCSI sharing protocol and also virtual machines (VMs) for their data storage needs.

To create a dataset or zvol, you can click Datasets on the main navigation panel or go to Storage and click Manage Datasets on the Usage widget for a specific pool to open the Datasets screen.

To create a basic dataset, go to Datasets. Default settings include those inherited from the parent dataset.

Select a dataset (root, parent, or child), then click Add Dataset.

Enter a value in Name.

Select the Dataset Preset option you want to use. Options are:

  • Generic for non-SMB share datasets such as iSCSI and NFS share datasets or datasets not associated with application storage.
  • Multiprotocol for datasets optimized for SMB and NFS multi-mode shares or to create a dataset for NFS shares.
  • SMB for datasets optimized for SMB shares.
  • Apps for datasets optimized for application storage.

Generic sets ACL permissions equivalent to Unix permissions 755, granting the owner full control and the group and other users read and execute privileges.

SMB, Apps, and Multiprotocol inherit ACL permissions based on the parent dataset. If there is no ACL to inherit, one is calculated granting full control to the owner@, group@, members of the builtin_administrators group, and domain administrators. Modify control is granted to other members of the builtin_users group and directory services domain users.

Apps includes an additional entry granting modify control to group 568 (Apps).

ACL Settings for Dataset Presets
ACL TypeACL ModeCase SensitivityEnable atime
GenericPOSIXn/aSensitiveInherit
SMBNFSv4RestrictedInsensitiveOn
AppsNFSv4PassthroughSensitiveOff
MultiprotocolNFSv4PassthroughSensitiveOff

If creating an SMB or multi-protocol (SMB and NFS) share the dataset name value auto-populates the share name field with the dataset name.

If you plan to deploy container applications, the system automatically creates the ix-apps dataset for Docker storage for but separate datasets used for application data storage. If you want to store data by application, create the dataset(s) first, then deploy your application. When creating a dataset for an application, select Apps as the Dataset Preset. This optimizes the dataset for use by an application.

If you want to configure advanced setting options, click Advanced Options. For the Sync option, we recommend production systems with critical data use the default Standard choice or increase to Always. Choosing Disabled is only suitable in situations where data loss from system crashes or power loss is acceptable.

Select either Sensitive or Insensitive from the Case Sensitivity dropdown. The Case Sensitivity setting is found under Advanced Options and is not editable after saving the dataset.

Click Save.

Review the Dataset Preset and Case Sensitivity under Advanced Options on the Add Dataset screen before clicking Save. You cannot change these or the Name setting after clicking Save.

Organize the pool with as many datasets or zvols you need according to your access and data sharing requirements before moving data into the pool.

See Adding or Managing Datasets for more information on configuring datasets, or Adding or Managing Zvols for more information on zvols.

Adding a Dataset and Share

TrueNAS provides the option to create the dataset and share at the same time. The Add Dataset screen allows you to create the new dataset and use a preset to configure an SMB, NFS, or multi-mode share. The Shares screen also provides options to add an SMB or NFS share and create the dataset at the same time.

Do not set up sharing on the root dataset! Creating a share that uses the root dataset causes all types of problems with permissions, and is not a best practice. Rather, create or select a dataset that is a child of the root dataset and that is specifically created to share.

To create a dataset and share from the Add Dataset screen:

  1. First click on the parent dataset row, then click Add Dataset.

  2. Enter the name for the dataset.

  3. Select the Dataset Preset option to use. Based on the option selected, for example, selecting SMB, the screen populates the Share Name field with the name give to the dataset.

  4. Click Save. TrueNAS creates the dataset and the share.

  5. Configure permissions for the share. If you have created the share user, set up the share ACL permissions when prompted. If you are not ready to configure the share permissions, exit to the main Datasets screen. You can modify share dataset permissions later after adding the share user(s) by either selecting the dataset row, then clicking Edit on the Permissions widget. See Editing Permissions for more information.

    You can also set permissions for the share from the Shares screen by selecting the share, then selecting the option to Edit Filesystem ACL for SMB, or set up NFS share permissions from the Add NFS share screen.

To create a dataset while adding the share, see Setting Up Sharing which covers the process of setting up the share and creating the dataset at the same time from the Shares screen. See Manage SMB Shares or Manage NFS Shares for more information on adding and managing SMB or NFS shares.

Taking the Next Step

After you finish creating your initial pool and the datasets or zvols, you can continue building and organizing your TrueNAS pools and datasets or move on to configuring how the system shares data.

If you do not plan to set up data sharing, you can set up backup solutions for your system and stored data.