Startup Configuration File
AIStor supports using a YAML-formatted configuration file for specifying startup server parameters. The configuration file supports specific advanced deployment patterns, such as distributed clusters with non-sequential hostnames or otherwise heterogeneous hostname patterns.
The following example configuration lists all available fields and example values.
Remove any parameters you do not need.
The pools configuration includes an example of handling non-sequential hostnames across two distinct pools:
version: v2
address: ":9000"
console-address: ":9001"
rootUser: "minioadmin"
rootPassword: "secret-CHANGE-ME"
pools:
- args:
- "https://rack1.example.com:9000/mnt/disk{1...4}"
- "https://rack3.example.com:9000/mnt/disk{1...4}"
- "https://rack5.example.com:9000/mnt/disk{1...4}"
- "https://rack7.example.com:9000/mnt/disk{1...4}"
- args:
- "https://rack2.example.com:9000/mnt/disk{1...4}"
- "https://rack4.example.com:9000/mnt/disk{1...4}"
- "https://rack6.example.com:9000/mnt/disk{1...4}"
- "https://rack8.example.com:9000/mnt/disk{1...4}"
options:
ftp: # settings for AIStor to act as an ftp server
address: ":8021"
passive-port-range: "30000-40000"
sftp: # settings for AIStor to act as an sftp server
address: ":8022"
ssh-private-key: "/etc/minio/sftp-key"
Top-Level Fields
The configuration file must include the version and pools fields.
| Field | Type | Default | Description |
|---|---|---|---|
| version | string | - | Configuration format version. Must be v2. |
| address | string | 0.0.0.0:9000, ::9000 | Bind address and listen port for the S3 API server. |
| console-address | string | 0.0.0.0:9001, ::9001 | Bind address and listen port for the web console. The port is the S3 API port + 1, or 9000+1 by default. |
| rootUser | string | minioadmin | Root username for initial authentication. |
| rootPassword | string | minioadmin | Root password for initial authentication. |
| certs-dir | string | /etc/minio/certs | Directory containing TLS certificates. |
| pools | array | - | Array of storage pool configurations. |
| options | object | - | Optional FTP and SFTP server settings. |
Pools
The pools field takes an array of args, each of which define a set of hosts in a server pool.
Each arg element is an endpoint string that supports standard ellipsis notation {n...m} for specifying sequential series of IP or hostnames.
You can specify any combination of hosts and drives, allowing for more complex topologies without modifying OS settings like /etc/hosts or customized DNS configurations.
For example, the following configuration defines a pool with four hosts with heterogeneous naming conventions:
pools:
- args:
- "https://rack2.example.com:9000/mnt/disk{1...4}"
- "https://rack4.example.com:9000/mnt/disk{1...4}"
- "https://198.51.100.10:9000/mnt/disk{1...8}"
- "https://203.0.113.10:9000/mnt/disk{1...8}"
While the pools configuration supports complex topologies, it requires careful planning and consideration around the consequences or outcomes of the selected infrastructure.
For example, in the previous example the specfied hosts have uneven drive distribution.
This results in certain hosts having a higher impact on HA and performance in the event of planned or unexpected downtime.
Options
The options object supports configuration of FTP and SFTP services:
| Field | Type | Default | Description |
|---|---|---|---|
| ftp | string | Top-level key for FTP configurations. | |
| ftp.address | string | - | Bind address for FTP server (e.g., :8021). |
| ftp.passive-port-range | string | - | Port range for FTP passive mode (e.g., 30000-40000). |
| sftp | object | - | Top-level key for SFTP server configurations. |
| sftp.address | string | - | Bind address for SFTP server (e.g., :8022). |
| sftp.ssh-private-key | string | - | Path to SSH private key file for SFTP authentication. |
See File Transfer Protocol for more information on the FTP/SFTP feature.
Configuration settings and equivalents
The following table describes each configuration field and its corresponding environment variable or command line option. The table also lists the precedence order if the same parameter is set in multiple ways.
| Config File | Environment Var | CLI Flag | Precedence Order |
|---|---|---|---|
| pools.args | MINIO_VOLUMES | minio server DIRS | Config overrides env if set |
| address | MINIO_ADDRESS | --address | Config > Env > CLI |
| console-address | MINIO_CONSOLE_ADDRESS | --console-address | Config > Env > CLI |
| certs-dir | (none) | --certs-dir | Config > CLI |
| rootUser | MINIO_ROOT_USER | (none) | Env > Config |
| rootPassword | MINIO_ROOT_PASSWORD | (none) | Env > Config |
| options.ftp | (none) | --ftp=… | Config > Env |
| options.sftp | (none) | --sftp=… | Config > Env |