Cleanup large bucket support documents (#5641)

This commit is contained in:
Nitish Tiwari 2018-03-15 03:52:17 +05:30 committed by Harshavardhana
parent 4af89543cf
commit 1c0c3369c9
2 changed files with 37 additions and 26 deletions

View file

@ -1,4 +1,10 @@
# Large Bucket Support Design Guide [![Slack](https://slack.minio.io/slack?type=svg)](https://slack.minio.io)
This document explains the design approach, advanced use cases and limitations of the large bucket feature. If you're looking to get started with large bucket support, we suggest you
go through the [getting started document](https://github.com/minio/minio/blob/master/docs/large-bucket/README.md) first.
## Command-line
```
NAME:
minio server - Start object storage server.
@ -14,29 +20,18 @@ DIR:
directories in a distributed setup are encoded as HTTP(s) URIs.
```
## Limitations
- Minimum of 4 disks are needed for distributed erasure coded configuration.
- Maximum of 32 distinct nodes are supported in distributed configuration.
## Common usage
Single disk filesystem export
```
minio server dir1
```
Standalone erasure coded configuration with 4 disks.
```
minio server dir1 dir2 dir3 dir4
```
Standalone erasure coded configuration with 4 sets with 16 disks each.
```
minio server dir{1...64}
```
Distributed erasure coded configuration with 64 sets with 16 disks each.
```
minio server http://host{1...16}/export{1...64} - good
minio server http://host{1...16}/export{1...64}
```
## Other usages
@ -69,6 +64,9 @@ minio server http://rack1-host{1...8}.example.net/export{1...16} http://rack2-ho
```
### Expected expansion for double ellipses
Minio server internally expands ellipses passed as arguments. Here is a sample expansion to demonstrate the process
```
minio server http://host{1...4}/export{1...8}
```
@ -110,12 +108,14 @@ Expected expansion
```
## Backend `format.json` changes
New `format.json` has new fields
`format.json` has new fields
- `disk` is changed to `this`
- `jbod` is changed to `sets` , along with this change sets is also a two dimensional list representing total sets and disks per set.
A sample `format.json` looks like below
```json
{
"version": "1",
@ -158,6 +158,7 @@ type format struct {
```
### Current format
```go
type formatXLV1 struct{
format
@ -170,6 +171,7 @@ type formatXLV1 struct{
```
### New format
```go
type formatXLV2 struct {
Version string `json:"version"`
@ -182,3 +184,8 @@ type formatXLV2 struct {
} `json:"xl"`
}
```
## Limits
- Minimum of 4 disks are needed for erasure coded configuration.
- Maximum of 32 distinct nodes are supported in distributed configuration.

View file

@ -1,17 +1,21 @@
# Large Bucket Support Quickstart 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 large bucket support lets you use more than 16 disks by creating a number of smaller sets of erasure coded units, these units are further combined into a single namespace. Minio large bucket support is developed to solve for several real world use cases, without any special configuration changes. Some of these are
Minio erasure code limits the number of disks in a deployment to 16. This allows enough storage space for a single deployment to hold a tenant's data. However, there are use cases which
may need larger number of disks/storage space upfront. Keeping this in consideration, we added large bucket support.
- You already have racks with many disks.
- You are looking for large capacity up-front for your object storage needs.
The feature is called large bucket as it allows a single bucket to expand over multiple erasure code deployment sets, without any special configuration.
# Get started
If you're aware of distributed Minio setup, the installation and running remains the same. Newer syntax to use a `...` convention to abbreviate the directory arguments. Remote directories in a distributed setup are encoded as HTTP(s) URIs which can be similarly abbreviated as well.
With large bucket support, you can use more than 16 disks upfront while deploying the Minio server. Internally Minio creates multiple smaller erasure coded sets, and these sets
are further combined into a single namespace. This document gives a brief introduction on how to get started with large bucket deployments. To explore further on advanced uses and
limitations, refer to the [design document](https://github.com/minio/minio/blob/master/docs/large-bucket/DESIGN.md).
## 1. Prerequisites
## Get started
If you're aware of distributed Minio setup, the installation and running remains the same. Only new addition to the syntax is a `...` convention to abbreviate the directory arguments. Remote directories in a distributed setup are encoded as HTTP(s) URIs which can be similarly abbreviated as well.
### 1. Prerequisites
Install Minio - [Minio Quickstart Guide](https://docs.minio.io/docs/minio).
## 2. Run Minio on many disks
### 2. Run Minio on many disks
To run Minio large bucket instances, you need to start multiple Minio servers pointing to the same disks. We'll see examples on how to do this in the following sections.
*Note*
@ -19,7 +23,7 @@ To run Minio large bucket instances, you need to start multiple Minio servers po
- All the nodes running distributed Minio need to have same access key and secret key. To achieve this, we export access key and secret key as environment variables on all the nodes before executing Minio server command.
- The drive paths below are for demonstration purposes only, you need to replace these with the actual drive paths/folders.
### Minio large bucket on Ubuntu 16.04 LTS standalone
#### Minio large bucket on Ubuntu 16.04 LTS server (standalone)
You'll need the path to the disks e.g. `/export1, /export2 .... /export24`. Then run the following commands on all the nodes you'd like to launch Minio.
```sh
@ -28,8 +32,8 @@ export MINIO_SECRET_KEY=<SECRET_KEY>
minio server /export{1...24}
```
### Minio large bucket on Ubuntu 16.04 LTS servers
You'll need the path to the disks e.g. `/export1, /export2 .... /export16`. Then run the following commands on all the nodes you'd like to launch Minio.
#### Minio large bucket on Ubuntu 16.04 LTS servers (distributed)
You'll need the path to the disks e.g. `http://host1/export1, http://host2/export2 .... http://host4/export16`. Then run the following commands on all the nodes you'd like to launch Minio.
```sh
export MINIO_ACCESS_KEY=<ACCESS_KEY>
@ -37,7 +41,7 @@ export MINIO_SECRET_KEY=<SECRET_KEY>
minio server http://host{1...4}/export{1...16}
```
## 3. Test your setup
### 3. Test your setup
To test this setup, access the Minio server via browser or [`mc`](https://docs.minio.io/docs/minio-client-quickstart-guide). Youll see the uploaded files are accessible from the all the Minio endpoints.
## Explore Further