TrueNAS Apps: TutorialsApplication maintenance is independent from TrueNAS version release cycles.
App versions, features, options, and installation behavior at time of access might vary from documented tutorials and UI reference.
Setting Up MinIO Clustering
5 minute read.
We welcome community contributions to keep this documentation current! Click Edit Page in the top right corner to propose changes to this article. See Updating Content for more information.
This article applies to the public release of the S3 MinIO charts application in the TRUENAS catalog.
TrueNAS 23.10 and later allows users to create a MinIO S3 distributed instance to scale out TrueNAS to handle individual node failures. A node is a single TrueNAS storage system in a cluster.
The stable train version of MinIO supports distributed mode. Distributed mode, allows pooling multiple drives, even on different systems, into a single object storage server. For information on configuring a distributed mode cluster in TrueNAS using MinIO, see Setting Up MinIO Clustering.
The enterprise train version of MinIO provides two options for clustering, Single Node Multi Disk (SNMD) and Multi Node Multi Disk (MNMD) configurations. See MinIO Enterprise for more information.
The examples below use four TrueNAS systems to create a distributed cluster. For more information on MinIO distributed setups, refer to the MinIO documentation.
Go to Datasets and select the pool or dataset where you want to place the MinIO dataset. For example, /tank/apps/minio or /tank/minio. You can use either an existing pool or create a new one.
Create the data dataset(s) before beginning the app installation process. You can organize the dataset(s) under a parent dataset for MinIO to keep the storage datasets separated from the dataset for other potential applications. For example, create the minio dataset and nest data under it.
After creating the dataset, create the directory where MinIO stores information the application uses.
To create a directory, open the Linux CLI and enter
mkdir path="/path/to/directory"
or if you have a share created on your system with access to the dataset use it to create a directory.MinIO uses both the default /export and the /data mount points during storage configuration. The MinIO enterprise app creates the /export mount point for you but you must add this in the stable MinIO app. Create the /data mount point in both the enterprise and stable versions of the MinIO app.
You can configure dataset ACL permissions when prompted as you add datasets or by clicking by Edit on the Permissions widget to open the Edit ACL screen. Alternatively, you can configure ACL permissions while using the app installation wizard by selecting the Enable ACL option as you configure each app storage volume. See information provided in the sections below for details on which user ID and permissions settings to configure.
If you want to also mount other storage volumes inside the container pod using the host path option, create the dataset(s) before using the app installation wizard.
For a distributed configuration, repeat the above on all system nodes in advance. Take note of the system (node) IP addresses or host names and have them ready for configuration. Also, have your S3 user name and password ready for later.
If your system has sharing (SMB, NFS, iSCSI) configured, disable the share service before adding and configuring a new MinIO deployment. After completing the installation and starting MinIO, enable the share service.
For more information on app installation wizard settings see Understanding MinIO Wizard Settings
Begin on the first node (system) in your cluster.
Go to Apps, click on Discover Apps, and locate the app widget by either scrolling down to it or begin typing the name into the search field. For example, to locate the MinIO app widget, begin typing minIO into the search field to show app widgets matching the search input.
If this is the first application installed, TrueNAS displays a dialog about configuring apps.
If not the first time installing apps the dialog does not show, click on the widget to open the app information screen.
Click Install to open the app installation wizard.
Application configuration settings are grouped into several sections, each explained below in Understanding App Installation Wizard Settings. To find specific fields begin typing in the Search Input Fields search field to show the section or field, scroll down to a particular section, or click on the section heading in the list of sections on the upper-right of the wizard screen.
Accept the default value or enter a name in Application Name field. In most cases use the default name, but if adding a second deployment of the application you must change this name.
Accept the default version number in Version. When a new version becomes available, the application shows an update badge and the Application Info widget on the Installed applications screen shows the Update button.
Next, enter the MinIO Configuration settings.
For a distributed cluster, ensure the values are identical between server nodes and have the same credentials.
MinIO uses two datasets and mount paths. Set the first to /export with the host path set to the export dataset. The other mount point is /data with the host path set to the data dataset.
Configure the storage volumes. Accept the default value in Mount Path under MinIO Export Storage (Data), and leave Type set to ixVolume (Dataset created automatically by the system). This sets the first mount point to /export.
Click Add to the right of Additional Storage. Next set the Mount Path for the data dataset. Enter /data in Mount Path and enter or browse to select the host path to the data dataset.
Select Enable ACL for the /export storage volume, enter 473 as the user and give it full permissions. Repeat for the /data storage volume.
Accept the default values in Resources Configuration.
Click Install.
The Installed applications screen opens showing the application in the Deploying state before it changes to Running when the application is ready to use.
Click Web Portal to open the MinIO sign-in screen.
Now that the first node is complete, configure any remaining nodes (including datasets and directories).
After installing MinIO on all systems (nodes) in the cluster, start the MinIO applications.