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