minio/docs/config
poornas a3e806ed61 Add disk based edge caching support. (#5182)
This PR adds disk based edge caching support for minio server.

Cache settings can be configured in config.json to take list of disk drives,
cache expiry in days and file patterns to exclude from cache or via environment
variables MINIO_CACHE_DRIVES, MINIO_CACHE_EXCLUDE and MINIO_CACHE_EXPIRY

Design assumes that Atime support is enabled and the list of cache drives is
fixed.
 - Objects are cached on both GET and PUT/POST operations.
 - Expiry is used as hint to evict older entries from cache, or if 80% of cache
   capacity is filled.
 - When object storage backend is down, GET, LIST and HEAD operations fetch
   object seamlessly from cache.

Current Limitations
 - Bucket policies are not cached, so anonymous operations are not supported in
   offline mode.
 - Objects are distributed using deterministic hashing among list of cache
   drives specified.If one or more drives go offline, or cache drive
   configuration is altered - performance could degrade to linear lookup.

Fixes #4026
2018-03-28 14:14:06 -07:00
..
README.md Add disk based edge caching support. (#5182) 2018-03-28 14:14:06 -07:00
config.sample.json Add disk based edge caching support. (#5182) 2018-03-28 14:14:06 -07:00

README.md

Minio Server config.json (v22) Guide Slack Go Report Card Docker Pulls codecov

Minio server stores all its configuration data in ${HOME}/.minio/config.json file by default. Following sections provide detailed explanation of each fields and how to customize them. A complete example of config.json is available here

Configuration Directory

The default configuration directory is ${HOME}/.minio. You can override the default configuration directory using --config-dir command-line option. Minio server generates a new config.json with auto-generated access credentials when its started for the first time.

minio server --config-dir /etc/minio /data

Certificate Directory

TLS certificates are stored under ${HOME}/.minio/certs directory. You need to place certificates here to enable HTTPS based access. Read more about How to secure access to Minio server with TLS.

Following is the directory structure for Minio server with TLS certificates.

$ tree ~/.minio
/home/user1/.minio
├── certs
│   ├── CAs
│   ├── private.key
│   └── public.crt
└── config.json

Configuration Fields

Version

Field Type Description
version string version determines the configuration file format. Any older version will be automatically be migrated to the latest version upon startup. [DO NOT EDIT THIS FIELD MANUALLY]

Credential

Field Type Description
credential Auth credential for object storage and web access.
credential.accessKey string Access key of minimum 3 characters in length. You may override this field with MINIO_ACCESS_KEY environment variable.
credential.secretKey string Secret key of minimum 8 characters in length. You may override this field with MINIO_SECRET_KEY environment variable.

Example:

export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=password
minio server /data

Region

Field Type Description
region string region describes the physical location of the server. By default it is set to ``. You may override this field with MINIO_REGION environment variable. If you are unsure leave it unset.

Example:

export MINIO_REGION="my_region"
minio server /data

Browser

Field Type Description
browser string Enable or disable access to web UI. By default it is set to on. You may override this field with MINIO_BROWSER environment variable.

Example:

export MINIO_BROWSER=off
minio server /data

Domain

Field Type Description
domain string Enable virtual-host-style requests i.e http://bucket.mydomain.com/object

By default, Minio supports path-style requests which look like http://mydomain.com/bucket/object. MINIO_DOMAIN environmental variable (or domain in config.json) can be used to enable virtual-host-style requests. If the request Host header matches with (.+).mydomain.com then the mattched pattern $1 is used as bucket and the path is used as object. More information on path-style and virtual-host-style here

Example:

export MINIO_DOMAIN=mydomain.com
minio server /data

Storage Class

Field Type Description
storageclass Set storage class for configurable data and parity, as per object basis.
storageclass.standard string Value for standard storage class. It should be in the format EC:Parity, for example to set 4 disk parity for standard storage class objects, set this field to EC:4.
storageclass.rrs string Value for reduced redundancy storage class. It should be in the format EC:Parity, for example to set 3 disk parity for reduced redundancy storage class objects, set this field to EC:3.

By default, parity for objects with standard storage class is set to N/2, and parity for objects with reduced redundancy storage class objects is set to 2. Read more about storage class support in Minio server here.

Cache

Field Type Description
drives []string List of drives
exclude []string List of wildcard patterns for prefixes to exclude from cache
expiry int Days to cache expiry

Notify

Field Type Description
notify Notify enables bucket notification events for lambda computing via the following targets.
notify.amqp Configure to publish Minio events via AMQP target.
notify.nats Configure to publish Minio events via NATS target.
notify.elasticsearch Configure to publish Minio events via Elasticsearch target.
notify.redis Configure to publish Minio events via Redis target.
notify.postgresql Configure to publish Minio events via PostgreSQL target.
notify.kafka Configure to publish Minio events via Apache Kafka target.
notify.webhook Configure to publish Minio events via Webhooks target.
notify.mysql Configure to publish Minio events via MySql target.
notify.mqtt Configure to publish Minio events via MQTT target.

Explore Further