minio/docs/gateway/nas.md

4.4 KiB

MinIO NAS Gateway Slack

NAS gateway is deprecated and will be removed in future, no more fresh deployments are supported.

MinIO Gateway adds Amazon S3 compatibility to NAS storage. You may run multiple minio instances on the same shared NAS volume as a distributed object gateway.

Support

Gateway implementations are frozen and are not accepting any new features. Please reports any bugs at https://github.com/minio/minio/issues . If you are an existing customer please login to https://subnet.min.io for production support.

Run MinIO Gateway for NAS Storage

Using Docker

Please ensure to replace /shared/nasvol with actual mount path.

podman run \
 -p 9000:9000 \
 -p 9001:9001 \
 --name nas-s3 \
 -e "MINIO_ROOT_USER=minio" \
 -e "MINIO_ROOT_PASSWORD=minio123" \
 -v /shared/nasvol:/container/vol \
 quay.io/minio/minio gateway nas /container/vol --console-address ":9001"

Using Binary

export MINIO_ROOT_USER=minio
export MINIO_ROOT_PASSWORD=minio123
minio gateway nas /shared/nasvol

Test using MinIO Console

MinIO Gateway comes with an embedded web based object browser. Point your web browser to http://127.0.0.1:9000 to ensure that your server has started successfully.

Dashboard Creating a bucket
Dashboard Dashboard

Test using MinIO Client mc

mc provides a modern alternative to UNIX commands such as ls, cat, cp, mirror, diff, etc. It supports filesystems and Amazon S3 compatible cloud storage services.

Configure mc

mc alias set mynas http://gateway-ip:9000 access_key secret_key

List buckets on nas

mc ls mynas
[2017-02-22 01:50:43 PST]     0B ferenginar/
[2017-02-26 21:43:51 PST]     0B my-bucket/
[2017-02-26 22:10:11 PST]     0B test-bucket1/

Breaking changes

There will be a breaking change after the release version 'RELEASE.2020-06-22T03-12-50Z'.

The file-based config settings are deprecated in NAS

The support for admin config APIs will be removed. This will include getters and setters like mc admin config get and mc admin config and any other mc admin config options. The reason for this change is to avoid un-necessary reloads of the config from the disk. And to comply with the Environment variable based settings like other gateways.

Migration guide

The users who have been using the older config approach should migrate to ENV settings by setting environment variables accordingly.

For example,

Consider the following webhook target config.

notify_webhook:1 endpoint=http://localhost:8080/ auth_token= queue_limit=0 queue_dir=/tmp/webhk client_cert= client_key=

The corresponding environment variable setting can be

export MINIO_NOTIFY_WEBHOOK_ENABLE_1=on
export MINIO_NOTIFY_WEBHOOK_ENDPOINT_1=http://localhost:8080/
export MINIO_NOTIFY_WEBHOOK_QUEUE_DIR_1=/tmp/webhk

NOTE: Please check the docs for the corresponding ENV setting. Alternatively, we can obtain other ENVs in the form mc admin config set alias/ <sub-sys> --env

NAS gateway implementation allows symlinks on regular files.

Behavior

  • For reads symlinks resolve to the file the symlink points to.
  • For deletes
    • Deleting a symlink deletes the symlink but not the real file to which the symlink points.
    • Deleting the real file a symlink points to automatically makes the dangling symlink invisible.

Caveats

  • Disallows follow of directory symlinks to avoid security issues, and leaving them as is on namespace makes them very inconsistent.

Directory symlinks are not and will not be supported as there are no safe ways to handle them.

Explore Further