TrueNAS AppsTrueNAS Apps: Tutorials
Application 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.

MinIO

This section has tutorials for using the MinIO apps available for TrueNASE.

TrueNAS has two version of the MinIO application. The stable train version of the MinIO S3 application is found in the stable train that includes the applications in GitHub TrueNAS/charts repository. The smaller MinIO Enterprise version of the application, tested and polished for a safe and supportable experience for TrueNAS Enterprise customers, is found in the enterprise train. Community members can install either version of this application.

Adding the MinIO (Enterprise) App

To add the Enterprise MinIO application to the list of available applications:

Go to Apps, click on Settings at the top of the Installed applications screen, and select Train Settings to open the Train Settings screen.

You can also access this from the Discover screen by clicking on Manage Installed Apps at the top of the Discover screen to open the Installed screen.

Select enterprise to add it to the list of trains, and then click Save.

Both the stable and enterprise train versions of the MinIO app widget display on the Discover application screen.

DiscoverScreenMinIOAppWidgets

MinIO High Performance Object Storage, released under the Apache Licenses v2.0 is an open source Amazon S3 cloud storage compatible object storage solution.

The Minio applications, stable and enterprise train versions, allow users to build high performance infrastructure for machine learning, analytics, and application data workloads.

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.

For information on installing and configuring MinIO Enterprise, see Installing MinIO Enterprise.

Installing MinIO (S3) Community App

This procedure covers the basic requirements and instruction on installing and configuring the non-enterprise version of the MinIO application in the stable train. For instructions on installing the Enterprise version of the MinIO application see Configuring Enterprise MinIO.

Before You Begin

Before configuring MinIO, create a dataset and shared directory for the persistent MinIO data.

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.

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.

Configuring MinIO (S3) Community App

Go to Apps, click on Discover Apps, locate the MinIO app widget by either scrolling down to it or begin typing MinIO into the search field.

Click on the widget to open the MinIO application information screen.

Click Install to open the Install MinIO wizard.

Accept the default values for Application Name and Version.

Next, enter the MinIO Configuration settings.

The MinIO wizard defaults include all the arguments you need to deploy a container for the application.

Enter a name in Root User to use as the MinIO access key. Enter a name of five to 20 characters in length, for example admin or admin1. Next enter the Root Password to use as the MinIO secret key. Enter eight to 40 random characters, for example MySecr3tPa$$w0d4Min10.

Refer to MinIO User Management for more information.

Keep all passwords and credentials secured and backed up.

MinIO containers use server port 9000. The MinIO Console communicates using port 9001.

You can configure the API and UI access node ports and the MinIO domain name if you have TLS configured for MinIO.

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).

Click Add to the right of Additional Storage.

Select Host Path (Path that already exists on the system) in Type, enter /data in Mount Path to add a data volume for the dataset and directory created above. Enter or browse to the path for the data dataset created in the First Steps to set the Host Path value.

You can select Enable ACL to modify dataset permissions here, or go to Datasets, select the row for the /minio/dataset and click Edit on the Permissions widget to open the ACL Editor screen and customize dataset permissions and add ACE entries.

Add Host Path Volume
Figure 6: Add Host Path Volume

Click Add and to add the mount and host path fields for each additional dataset if you want to create volumes for postgres data and postgres backup.

Accept the defaults in Advanced DNS Settings.

If you want to limit the CPU and memory resources available to the container, select Enable Pod resource limits then enter the new values for CPU and/or memory.

Click Install when finished entering the configuration settings.

The Installed applications screen displays showing the MinIO application in the Deploying state. It changes to Running when the application is ready to use.

MinIO App Installed
Figure 7: MinIO App Installed

Click Web Portal to open the MinIO sign-in screen.

MinIO Sign-In Screen
Figure 8: MinIO Sign-In Screen

Understanding MinIO Wizard Settings

The following section provide more detailed explanations of the settings found in each section of the Install MinIO configuration screen.

Application Name

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.

MinIO Configuration

The MinIO Configuration section provides options to set up a cluster, add arguments, credentials, and environment variables to the deployment.

Select Enable Distributed Mode when setting up a cluster of SCALE systems in a distributed cluster.

MinIO in distributed mode allows you to pool multiple drives or TrueNAS SCALE systems (even if they are different machines) into a single object storage server for better data protection in the event of single or multiple node failures because MinIO distributes the drives across several nodes. For more information, see the Distributed MinIO Quickstart Guide.

To create a distributed cluster, click Add to show the Distributed MinIO Instance URI(s) fields for each TrueNAS system (node) IP addresses/host names to include in the cluster. Use the same order across all the nodes.

The app is preconfigured with the arguments needed to deploy a container. Do not enter the server and URL argument earlier versions of the app required.

Enter the name for the root user (MinIO access key) in Root User. Enter a name of five to 20 characters in length. For example admin or admin1. Next enter the root user password (MinIO secret key) in Root Password. Enter eight to 40 random characters. For example MySecr3tPa$$w0d4Min10.

The Extra Arguments and Extra Environment Variables settings are not required to deploy the application.

Network Configuration

Accept the default port settings in Network Configuration. Before changing ports, refer to Default Ports.

Network Configuration Settings
Figure 10: Network Configuration Settings

MinIO does not require adding a certificate or configuring DNS options. Accept the default settings or click Add to the right of DNS Options to show the Name and Value fields for a DNS option.

MinIO Advanced DNS Settings
Figure 11: MinIO Advanced DNS Settings

Storage Configuration

MinIO storage settings include the option to add mount paths and storage volumes to use inside the container (pod). Storage configuration uses both the default /export and /data mount paths created in First Steps above.

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).

Click Add to the right of Additional Storage.

Select Host Path (Path that already exists on the system) in Type, enter /data in Mount Path to add a data volume for the dataset and directory created above. Enter or browse to the path for the data dataset created in the First Steps to set the Host Path value.

You can select Enable ACL to modify dataset permissions here, or go to Datasets, select the row for the /minio/dataset and click Edit on the Permissions widget to open the ACL Editor screen and customize dataset permissions and add ACE entries.

Add Host Path Volume
Figure 12: Add Host Path Volume

Resource Configuration

By default, this application is limited to use no more than 4 CPU cores and 8 Gigabytes available memory. The application might use considerably less system resources.

MinIO Resource Configuration
Figure 13: MinIO Resource Configuration

To customize the CPU and memory allocated to the container (pod) the MinIO app uses, tune thwa limits as needed to prevent the application from overconsuming system resources and introducing performance issues.

Contents

  • Updating MinIO from 1.6.58: Provides information on updating MinIO from 1.6.58 to newer versions.

    • Setting Up MinIO Clustering: Provides configuration instructions using the MinIO Offical Charts application widget. It includes instructions on setting up a distributed cluster configuration.