From b50a2452087241a246d7a0a84b93c04936510599 Mon Sep 17 00:00:00 2001 From: "James Neiman, President" Date: Tue, 27 Nov 2018 18:03:07 -0800 Subject: [PATCH] Update to Minio Multi-Tenant Deployment Guide (#6871) Initial edits. --- docs/multi-tenancy/README.md | 45 +++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/docs/multi-tenancy/README.md b/docs/multi-tenancy/README.md index 3ff47a076..1a0337e14 100644 --- a/docs/multi-tenancy/README.md +++ b/docs/multi-tenancy/README.md @@ -1,11 +1,19 @@ -# Multi-tenant Minio Deployment Guide [![Slack](https://slack.minio.io/slack?type=svg)](https://slack.minio.io) [![Go Report Card](https://goreportcard.com/badge/minio/minio)](https://goreportcard.com/report/minio/minio) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) [![codecov](https://codecov.io/gh/minio/minio/branch/master/graph/badge.svg)](https://codecov.io/gh/minio/minio) +# Minio Multi-Tenant Deployment Guide [![Slack](https://slack.minio.io/slack?type=svg)](https://slack.minio.io) [![Go Report Card](https://goreportcard.com/badge/minio/minio)](https://goreportcard.com/report/minio/minio) [![Docker Pulls](https://img.shields.io/docker/pulls/minio/minio.svg?maxAge=604800)](https://hub.docker.com/r/minio/minio/) [![codecov](https://codecov.io/gh/minio/minio/branch/master/graph/badge.svg)](https://codecov.io/gh/minio/minio) -## Standalone Deployment -To host multiple tenants on a single machine, run one Minio server per tenant with dedicated HTTPS port, config and data directory. +This topic provides commands to set up different configurations of hosts, nodes, and drives. The examples provided here can be used as a starting point for other configurations. -#### Example 1 : Single host, single drive +1. [Standalone Deployment](#standalone-deployment) +2. [Distributed Deployment](#distributed-deployment) +3. [Cloud Scale Deployment](#cloud-scale-deployment) + +## 1. Standalone Deployment + +To host multiple tenants on a single machine, run one Minio Server per tenant with a dedicated HTTPS port, configuration, and data directory. + +### 1.1 Host Multiple Tenants on a Single Drive + +Use the following commands to host 3 tenants on a single drive: -This example hosts 3 tenants on a single drive. ```sh minio --config-dir ~/tenant1 server --address :9001 /data/tenant1 minio --config-dir ~/tenant2 server --address :9002 /data/tenant2 @@ -14,22 +22,25 @@ minio --config-dir ~/tenant3 server --address :9003 /data/tenant3 ![Example-1](https://github.com/minio/minio/blob/master/docs/screenshots/Example-1.jpg?raw=true) -#### Example 2 : Single host, multiple drives (erasure code) +### 1.2 Host Multiple Tenants on Multiple Drives (Erasure Code) + +Use the following commands to host 3 tenants on multiple drives: -This example hosts 3 tenants on multiple drives. ```sh minio --config-dir ~/tenant1 server --address :9001 /disk1/data/tenant1 /disk2/data/tenant1 /disk3/data/tenant1 /disk4/data/tenant1 minio --config-dir ~/tenant2 server --address :9002 /disk1/data/tenant2 /disk2/data/tenant2 /disk3/data/tenant2 /disk4/data/tenant2 minio --config-dir ~/tenant3 server --address :9003 /disk1/data/tenant3 /disk2/data/tenant3 /disk3/data/tenant3 /disk4/data/tenant3 ``` + ![Example-2](https://github.com/minio/minio/blob/master/docs/screenshots/Example-2.jpg?raw=true) -## Distributed Deployment -To host multiple tenants in a distributed environment, run several distributed Minio instances concurrently. +## 2. Distributed Deployment -#### Example 1 : Multiple host, multiple drives (erasure code) +To host multiple tenants in a distributed environment, run several distributed Minio Server instances concurrently. -This example hosts 3 tenants on a 4 node distributed setup. Execute the following command on all the four nodes. +### 2.1 Host Multiple Tenants on Multiple Drives (Erasure Code) + +Use the following commands to host 3 tenants on a 4-node distributed configuration: ```sh export MINIO_ACCESS_KEY= @@ -45,14 +56,12 @@ export MINIO_SECRET_KEY= minio --config-dir ~/tenant3 server --address :9003 http://192.168.10.11/data/tenant3 http://192.168.10.12/data/tenant3 http://192.168.10.13/data/tenant3 http://192.168.10.14/data/tenant3 ``` -![Example-3](https://github.com/minio/minio/blob/master/docs/screenshots/Example-3.jpg?raw=true) - -*Note* +**Note:** Execute the commands on all 4 nodes. -Please remember that defining and exporting credential environment variables, `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY`, is **mandatory** on distributed deployments. It is also required to define and export domain environment variable, `MINIO_DOMAIN`, if domain information is needed to be set. - -## Cloud Scale Deployment +![Example-3](https://github.com/minio/minio/blob/master/docs/screenshots/Example-3.jpg?raw=true) -For large scale multi-tenant Minio deployments, we recommend using one of the popular container orchestration platforms, e.g. Kubernetes, DC/OS or Docker Swarm. Refer [this document](https://docs.minio.io/docs/minio-deployment-quickstart-guide) to get started with Minio on orchestration platforms. +**Note**: On distributed systems, credentials must be defined and exported using the `MINIO_ACCESS_KEY` and `MINIO_SECRET_KEY` environment variables. If a domain is required, it must be specified by defining and exporting the `MINIO_DOMAIN` environment variable. +## Cloud Scale Deployment +A container orchestration platform (e.g. Kubernetes, DC/OS, or Docker Swarm) is recommended for large-scale, multi-tenant Minio deployments. See the [Minio Deployment Quickstart Guide](https://docs.minio.io/docs/minio-deployment-quickstart-guide) to get started with Minio on orchestration platforms.