Skip to content

Commit d292b73

Browse files
authored
Merge branch 'master' into patch-1
2 parents 855cc25 + 17b0682 commit d292b73

29 files changed

+363
-111
lines changed

content/SCALE/GettingStarted/Migrate/MigratePrep.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Enterprise customers are encouraged to contact Support for assistance with the p
4848

4949
<input type="checkbox"> Deprecated services - Record the settings for [services deprecated in newer TrueNAS versions](#deprecated-services).
5050

51-
<input type="checkbox"> VMs - If you have virtual machines configured, write down or screenshot network and other setting information.
51+
<input type="checkbox"> VMs - If you have virtual machines configured, write down or screenshot network, bootloader, and other setting information.
5252

5353
<input type="checkbox"> Plugins or jails - Plugins and jails do not migrate. Record settings for each plugin/jail and back up the data associated with each.
5454

content/SCALE/GettingStarted/Migrate/MigratingFromCORE.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ After uploading the config file, review each area of the UI previously configure
116116
See [Component Naming]({{< relref "ComponentNaming.md" >}}) for more information.
117117
{{< /hint >}}
118118

119-
Use the information gathered during your preparation to migrate to restore settings, tasks, VMs, credentials, etc. not present after uploading the config file.
119+
Use the information gathered during your preparation to migrate to restore settings, tasks, VMs configured using the GRUB bootloader, credentials, etc. not present after uploading the config file.
120120

121121
## Recreating the Admin User Account
122122

content/SCALE/SCALETutorials/Credentials/ManageLocalGroups.md

+7-3
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ To see built-in groups, click the **Show Built-In Groups** toggle. The toggle tu
3030

3131
To create a group, go to **Credentials > Groups** and click **Add**.
3232

33-
{{< trueimage src="/images/SCALE/Credentials/AddGroupGIDConfigSCALE.png" alt="Add Group Screen" id="Add Group Screen" >}}
33+
{{< trueimage src="/images/SCALE/Credentials/AddGroupScreen.png" alt="Add Group Screen" id="Add Group Screen" >}}
3434

3535
Enter a unique number for the group ID in **GID** that TrueNAS uses to identify a Unix group.
3636
Enter a number above 3000 for a group with user accounts or enter the default port number as the GID for a system service.
@@ -46,8 +46,12 @@ To allow Samba permissions and authentication to use this group, select **Samba
4646
To allow more than one group to have the same group ID (not recommended), select **Allow Duplicate GIDs**.
4747
Use only if absolutely necessary, as duplicate GIDs can lead to unexpected behavior.
4848

49-
## Managing Groups
49+
Select **SMB Group** to make this group available for permissions editors over SMB protocol, and add the share ACL Editor.
50+
This is not used for SMB authentication or determining the user session token or internal permissions checks.
51+
52+
Click **Save**.
5053

54+
## Managing Groups
5155
Click anywhere on a row to expand that group and show the group management buttons.
5256

5357
{{< trueimage src="/images/SCALE/Credentials/GroupsListedExpandedSCALE.png" alt="Expanded Group Screen" id="Expanded Group Screen" >}}
@@ -70,4 +74,4 @@ Click **Save**.
7074

7175
### Edit Group
7276

73-
To edit an existing group, go to **Credentials > Groups**, expand the group entry, and click <i class="material-icons" aria-hidden="true" title="Edit">edit</i> **Edit** to open the **Edit Group** configuration screen. See [Groups Screens]({{< relref "LocalGroupsScreens.md" >}}) for details on all settings.
77+
To edit an existing group, go to **Credentials > Groups**, expand the group entry, and click <i class="material-icons" aria-hidden="true" title="Edit">edit</i> **Edit** to open the **Edit Group** configuration screen. See [Groups Screens]({{< relref "LocalGroupsScreens.md" >}}) for details on all settings.

content/SCALE/SCALETutorials/Datasets/DatasetsSCALE.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ A TrueNAS *dataset* is a file system within a data storage pool.
2424
Datasets can contain files, directories, and child datasets, and have individual permissions or flags.
2525

2626
Datasets can also be [encrypted]({{< relref "EncryptionSCALE.md" >}}).
27-
TrueNAS automatically encrypts datasets created in encrypted pools, but you can change the encryption type from key to passphrase.
28-
You can create an encrypted dataset if the pool is not encrypted and set the type as either key or passphrase.
27+
In TrueNAS 22.12.3 or later, the TrueNAS UI requires encryption for child datasets created in encrypted parent datasets, but you can change the encryption type from key to passphrase.
28+
You can create an encrypted dataset if the parent is not encrypted and set the type as either key or passphrase.
2929

3030
We recommend organizing your pool with datasets before configuring [data sharing]({{< relref "/SCALE/SCALEUIReference/Shares/_index.md" >}}), as this allows for more fine-tuning of access permissions and using different sharing protocols.
3131

content/SCALE/SCALETutorials/Datasets/EncryptionSCALE.md

+49-42
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ keywords:
1818
- data sharing
1919
---
2020

21-
TrueNAS offers ZFS encryption for your sensitive data in pools and datasets or Zvols.
21+
TrueNAS offers ZFS encryption for your sensitive data in datasets and zvols.
2222

2323
{{< include file="/static/includes/EncryptionBackupKeys.md" >}}
2424

@@ -36,20 +36,20 @@ TrueNAS includes the [Key Management Interface Protocol (KMIP)](https://docs.oas
3636
{{< include file="/static/includes/EncryptionWarning.md" >}}
3737

3838
TrueNAS automatically generates a root dataset when you create a pool.
39-
This root dataset inherits the encryption state of the pool through the **Encryption** option on the **[Pool Creation Wizard]({{< relref "PoolCreateWizardScreens.md" >}})** screen when you create the pool.
40-
Because encryption is inherited from the parent, all data within that pool is encrypted.
41-
Selecting the **Encryption** option for the pool (root dataset) forces encryption for all datasets and zvols created within the root dataset.
39+
Select **Encryption** on the **[Pool Creation Wizard]({{< relref "PoolCreateWizardScreens.md" >}})** screen when you create the pool to encrypt the root dataset.
40+
The TrueNAS forces encryption for all child datasets and zvols within an encrypted root or parent dataset that are created using the TrueNAS UI.
41+
By default, child datasets inherit encryption settings from the parent.
42+
Deselect **Inherit (encrypted)** under **Advanced Options** to modify encryption configuration for the child dataset.
4243

43-
You cannot create an unencrypted dataset within an encrypted pool or dataset.
44-
This change does not affect existing datasets created in earlier releases of TrueNAS but does affect new datasets created in 22.12.3 and later releases.
44+
In TrueNAS 22.12.3 or later, you cannot create an unencrypted dataset within an encrypted pool or dataset using the TrueNAS UI.
45+
However, datasets created outside of the UI, such as those created programmatically or manually via shell access, might not inherit encryption unless properly configured.
46+
For example, the [ix-apps dataset]({{< relref "/content/TrueNASApps/_index.md #ix-apps-dataset" >}}) on the pool selected for applications does not inherit encryption settings.
4547

46-
Leave the **Encryption** option on the **Pool Creation Wizard** screen cleared to create an unencrypted pool.
48+
For more granular control, we recommend users do not configure pool-level encryption.
49+
Leave **Encryption** unselected on the **Pool Creation Wizard** screen to create a pool with an unencrypted root dataset.
4750
You can create both unencrypted and encrypted datasets within an unencrypted pool (root dataset).
48-
If you create an encrypted dataset within an unencrypted dataset, all datasets or zvol created within that encrypted dataset are automatically encrypted.
4951

50-
Using encryption ensures secure data sharing and storage.
51-
52-
If you have only one pool on your system, do not select the **Encryption** option for this pool.
52+
If you have only one pool on your system, do not use pool-level encryption for this pool.
5353

5454
{{< expand "Can I change dataset encryption?" "v" >}}
5555
Before you save a new dataset, you can change the type of encryption of an encrypted dataset to key to passphrase.
@@ -63,10 +63,11 @@ You can also move data from an unencrypted pool or dataset to an encrypted datas
6363
{{< /expand >}}
6464

6565
{{< hint type=important >}}
66-
If your system loses power or you reboot the system, the datasets, zvols, and all data in an encrypted pool automatically lock to protect the data in that encrypted pool.
66+
If your system loses power or you reboot the system, all encrypted datasets and zvols lock automatically to protect data.
6767
{{< /hint >}}
6868

6969
### Encryption Visual Cues
70+
7071
TrueNAS uses lock icons to indicate the encryption state of a root, parent, or child dataset in the tree table on the **[Datasets]({{< relref "/SCALE/SCALEUIReference/Datasets/_index.md" >}})** screen.
7172
Each icon shows a text label with the state of the dataset when you hover the mouse over the icon.
7273

@@ -80,18 +81,24 @@ The dataset encryption state is unlocked until you lock it using the **Lock** bu
8081
After locking the dataset, the icon on the tree table changes to locked, and the **Unlock** button appears on the **ZFS Encryption** widget.
8182

8283
## Implementing Encryption
83-
Before creating a pool with encryption decide if you want to encrypt all datasets, zvols, and data stored on the pool.
8484

85-
{{< hint type=warning >}}
86-
You cannot change a pool from encrypted to non-encrypted. You can only change the dataset encryption type (key or passphrase) for the encrypted pool.
87-
{{< /hint >}}
85+
Before creating a encrypted pool (root dataset) or dataset, decide if you want to encrypt all child datasets, zvols, and data stored on that dataset.
86+
8887
If your system does not have enough disks to allow you to create a second storage pool, we recommend that you not use encryption at the pool level. Instead, apply encryption at the dataset level to non-root parent or child datasets.
89-
{{< hint type=important >}}
88+
9089
All pool-level encryption is key-based encryption. When prompted, download the encryption key and keep it stored in a safe place where you can back up the file.
9190
You cannot use passphrase encryption at the pool level.
9291

92+
{{< hint type=important >}}
93+
You cannot change an existing dataset from encrypted to non-encrypted.
94+
You can only change the dataset encryption type (key or passphrase).
95+
After saving a dataset with encryption, if the encryption type is set to passphrase you can change it to key type, but you cannot change from key type to passphrase.
9396
{{< /hint >}}
97+
9498
### Adding Encryption to a New Pool
99+
100+
{{< include file="/static/includes/EncryptionRootLevel.md" >}}
101+
95102
Go to **Storage** and click **Create Pool** on the **Storage Dashboard** screen.
96103
You can also click **Add to Pool** on the **Unassigned Disks** widget and select the **Add to New** to open the **Pool Creation Wizard**.
97104

@@ -110,6 +117,7 @@ Move the encryption key to safe location where you can back up the file.
110117
Add any other VDEVS to the pool you want to include, then click **Save** to create the pool with encryption.
111118

112119
### Adding Encryption to a New Dataset
120+
113121
To add an encrypted dataset, go to **Datasets**.
114122

115123
Select dataset on the tree table where you want to add a new dataset.
@@ -124,28 +132,22 @@ Select the **Dataset Preset** option you want to use. Options are:
124132
{{< include file="/static/includes/DatasetPresetOptions.md" >}}
125133

126134
To add encryption to a dataset, scroll down to **Encryption Options** and select the inherit checkbox to clear the checkmark.
127-
If the parent dataset is unencrypted and you want to encrypt the dataset, clear the checkmark to show the **Encryption** option.
128-
If the parent dataset is encrypted and you want to change the type, clearing the checkmark shows the other encryption options.
129-
To keep the dataset encryption settings from the parent, leave inherited checkmarked.
135+
If the parent dataset is unencrypted and you want to encrypt the dataset, deselect **Inherit (non-encrypted)** to show the **Encryption** option.
136+
If the parent dataset is encrypted and you want to change the type, deselect **Inherit (encrypted)** to configure encryption options.
137+
To keep the dataset encryption settings from the parent, leave inherit selected.
130138

131139
{{< trueimage src="/images/SCALE/Datasets/AddDatasetEncryptionOptionsInheritCleared.png" alt="Add Dataset Encryption Options Clear Inherit" id="Add Dataset Encryption Options Clear Inherit" >}}
132140

133141
Decide if you want to use the default key type encryption and if you want to let the system generate the encryption key.
134-
To use key encryption and your key, clear the **Generate key** checkbox to display the **Key** field. Enter your key in this field.
142+
To use key encryption and an existing key, deselect **Generate Key** to display the **Key** field.
143+
Enter the existing key in this field.
135144

136145
{{< trueimage src="/images/SCALE/Datasets/AddDatasetEncryptionKeyfromNonEncrypted.png" alt="Add Key Encryption" id="Add Key Encryption" >}}
137146

138-
To change to passphrase encryption, click the down arrow and select **Passphrase** from the **Encryption Type** dropdown.
147+
To change to passphrase encryption, select **Passphrase** from the **Encryption Type** dropdown.
139148

140149
{{< trueimage src="/images/SCALE/Datasets/AddDatasetEncryptionOptionsPassphrase.png" alt="Add Passphrase Encryption" id="Add Passphrase Encryption" >}}
141150

142-
You can select the encryption algorithm to use from the **Encryption Standard** dropdown list of options or use the recommended default.
143-
Leave the default selection if you do not have a particular encryption standard you want to use.
144-
{{< expand "What are these options?" "v" >}}
145-
TrueNAS supports AES [Galois Counter Mode (GCM)](https://csrc.nist.gov/publications/detail/sp/800-38d/final) and [Counter with CBC-MAC (CCM)](https://tools.ietf.org/html/rfc3610) algorithms for encryption.
146-
These algorithms provide authenticated encryption with block ciphers.
147-
{{< /expand >}}
148-
149151
{{< hint type=note >}}
150152
The passphrase must be longer than 8 and less than 512 characters.
151153
{{< /hint >}}
@@ -155,7 +157,15 @@ Keep encryption keys and/or passphrases safeguarded in a secure and protected pl
155157
Losing encryption keys or passphrases can result in permanent data loss!
156158
{{< /hint >}}
157159

160+
You can select the encryption algorithm to use from **Algorithm** or use the recommended default.
161+
Leave the default selection if you do not have a particular encryption standard you want to use.
162+
{{< expand "What are these options?" "v" >}}
163+
TrueNAS supports AES [Galois Counter Mode (GCM)](https://csrc.nist.gov/publications/detail/sp/800-38d/final) and [Counter with CBC-MAC (CCM)](https://tools.ietf.org/html/rfc3610) algorithms for encryption.
164+
These algorithms provide authenticated encryption with block ciphers.
165+
{{< /expand >}}
166+
158167
### Changing Dataset (or Zvol) Encryption
168+
159169
You cannot add encryption to an existing dataset.
160170
You can change the encryption type for an already encrypted dataset using the **Edit** option on the **ZFS Encryption** widget for the dataset.
161171

@@ -192,12 +202,14 @@ Leave the other settings at default, then click **Confirm** to activate **Save**
192202
Click **Save** to close the window and update the **ZFS Encryption** widget to reflect the changes made.
193203

194204
## Locking and Unlocking Datasets
205+
195206
{{< hint type=important >}}
196207
You can only lock and unlock an encrypted dataset if it is secured with a passphrase instead of a key file.
197208
Before locking a dataset, verify that it is not currently in use.
198209
{{< /hint >}}
199210

200211
### Locking a Dataset
212+
201213
Select the encrypted dataset on the tree table, then click **Lock** on the **ZFS Encryption** widget to open the **Lock Dataset** dialog with the dataset full path name.
202214

203215
{{< trueimage src="/images/SCALE/Datasets/LockDatasetDialog.png" alt="Lock Dataset" id="Lock Dataset" >}}
@@ -211,6 +223,7 @@ You *cannot* use locked datasets.
211223
{{< /hint >}}
212224

213225
### Unlocking a Dataset
226+
214227
To unlock a dataset, go to **Datasets** then select the locked dataset on the tree table.
215228
Click **Unlock** on the **ZFS Encryption** widget to open the **Unlock Dataset** screen.
216229

@@ -232,26 +245,18 @@ Click **CLOSE**.
232245
TrueNAS displays the dataset with the unlocked icon.
233246

234247
## Encrypting a Zvol
235-
Encryption is for securing sensitive data.
236-
237-
{{< hint type=note >}}
238-
You can only encrypt a Zvol if you create the Zvol from a dataset with encryption.
239-
{{< /hint >}}
240248

241249
{{< include file="/static/includes/EncryptionBackupKeys.md" >}}
242250

243-
Zvols inherit encryption settings from the parent dataset.
251+
To encrypt a Zvol, select a parent dataset and then [create a new Zvol]({{< relref "AddManageZvols.md" >}}).
252+
If the parent dataset is encrypted, select **Inherit (encrypted)** under **Encryption Options**.
253+
If the parent dataset is not encrypted, deselect **Inherit (non-encrypted)**, select **Encryption**, and then configure the **Encryption Type** and related settings.
244254

245-
To encrypt a Zvol, select a dataset configured with encryption and then [create a new Zvol]({{< relref "AddManageZvols.md" >}}).
246-
Next, go to **Datasets** and click on the Zvol.
255+
Next, go to **Datasets** and click on the Zvol and locate the **ZFS Encryption** widget.
247256

248257
{{< trueimage src="/images/SCALE/Datasets/ZFSEncryptionWidgetRootDataset.png" alt="ZFS Encryption Widget Root Dataset" id="ZFS Encryption Widget" >}}
249258

250-
If you do not see the **ZFS Encryption** widget, you created the Zvol from an unencrypted dataset. Delete the Zvol and start over.
251-
252-
The Zvol is encrypted with settings inherited from the parent dataset.
253-
254-
To change inherited encryption properties from passphrase to key, or enter a new key or passphrase, select the zvol, then click **Edit** on the **ZFS Encryption** widget.
259+
To change encryption properties from passphrase to key or enter a new key or passphrase, select the zvol, then click **Edit** on the **ZFS Encryption** widget.
255260

256261
{{< trueimage src="/images/SCALE/Datasets/EditEncryptionDialogForZvol.png" alt="Edit Zvol Encryption" id="Edit Zvol Encryption" >}}
257262

@@ -264,6 +269,7 @@ Save any change to the encryption key or passphrase, update your saved passcodes
264269
{{< /hint >}}
265270

266271
## Managing Encryption Credentials
272+
267273
There are two ways to manage the encryption credentials, with a key file or passphrase.
268274
Creating a new encrypted pool automatically generates a new key file and prompts users to download it.
269275

@@ -280,6 +286,7 @@ A passphrase is a user-defined string at least eight characters long that is req
280286
The **pbkdf2iters** is the number of password-based key derivation function 2 ([PBKDF2](https://tools.ietf.org/html/rfc2898#appendix-A.2)) iterations to use for reducing vulnerability to brute-force attacks. Users must enter a number greater than *100000*.
281287

282288
## Unlocking a Replicated Encrypted Dataset or Zvol Without a Passphrase
289+
283290
TrueNAS users should either replicate the dataset/Zvol without properties to disable encryption at the remote end or construct a special JSON manifest to unlock each child dataset/zvol with a unique key.
284291

285292
{{< include file="/static/includes/ReplicatedEncryptedUnlock.md" >}}

content/SCALE/SCALETutorials/Shares/SMB/_index.md

+10
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,16 @@ Windows clients use [WS-Discovery](https://docs.oasis-open.org/ws-dd/ns/discover
4242
Discoverability through broadcast protocols is a convenience feature and is not required to access an SMB server.
4343
{{< /hint >}}
4444

45+
### SMB Share Limitations
46+
Sharing protocols have file-related limitations such as name and path lengths, permitted characters, file or volume size, permissions through access control lists (ACLs), and ACL entries based on the underlying client operating system (Windows, Linux, MacOS).
47+
SMB protocol version limits are based on the version (SMB1, SMB2, SMB3).
48+
49+
There are limitations and issues related to using third-party file managers instead of native tools.
50+
51+
For more on limits, click below.
52+
53+
{{< include file="/static/includes/SMBLimitations.md" >}}
54+
4555
## Sharing Administrator Access
4656

4757
{{< include file="/static/includes/SharingAdminRole.md" >}}

content/SCALE/SCALETutorials/Storage/CreatePoolWizard.md

+3
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ We strongly recommend that you review your available system resources and plan y
3333
* Maximizing pool performance entails installing and allocating high-speed SSD drives to a pool.
3434

3535
Security requirements can mean the pool must be created with [ZFS encryption]({{< relref "EncryptionSCALE.md" >}}).
36+
However, we recommend that users create pools as unencrypted and then encrypt some or all of of the child datasets, as needed.
37+
38+
{{< include file="/static/includes/EncryptionRootLevel.md" >}}
3639

3740
RAIDz pool layouts are well-suited for general use cases and especially smaller (<10) data VDEVS or storage scenarios that involve storing multitudes of small data blocks.
3841

0 commit comments

Comments
 (0)