a0635dcdd9
The reason is any function relying on `getLoadBalancedQuorumDisks` cannot possibly have an idempotent behavior. The problem comes from given a set of N disks returning just a shuffled N/2 disks. In case of a scenario where we have N/2 number of failed disks, the returned value of `getLoadBalancedQuorumDisks` is not equal to the same failed disks so essentially calls using such disks might succeed or fail randomly at different intervals in time. This proposal change is we move to `getLoadBalancedDisks()` and use the shuffled N disks as a whole. Since most of the time we might hit a good disk since we are not reducing our solution space. This also provides consistent behavior for all the functions which rely on shuffled disks. Fixes #2242 |
||
---|---|---|
.github | ||
buildscripts | ||
dist | ||
docs | ||
pkg | ||
vendor | ||
.gitignore | ||
.mailmap | ||
.mention-bot | ||
.travis.yml | ||
access-key.go | ||
accesslog-handler.go | ||
api-datatypes.go | ||
api-errors.go | ||
api-headers_test.go | ||
api-headers.go | ||
api-resources.go | ||
api-response-multipart.go | ||
api-response.go | ||
api-router.go | ||
appveyor.yml | ||
auth-handler_test.go | ||
auth-handler.go | ||
benchmark-utils_test.go | ||
bucket-handlers-listobjects.go | ||
bucket-handlers.go | ||
bucket-policy-handlers_test.go | ||
bucket-policy-handlers.go | ||
bucket-policy-parser_test.go | ||
bucket-policy-parser.go | ||
bucket-policy.go | ||
build-constants.go | ||
certs.go | ||
checkport.go | ||
commands.go | ||
config-migrate.go | ||
config-old.go | ||
config-v4.go | ||
config.go | ||
CONTRIBUTING.md | ||
damerau-levenshtein.go | ||
Dockerfile | ||
erasure_test.go | ||
erasure-createfile_test.go | ||
erasure-createfile.go | ||
erasure-readfile_test.go | ||
erasure-readfile.go | ||
erasure-utils_test.go | ||
erasure-utils.go | ||
format-config-v1_test.go | ||
format-config-v1.go | ||
fs-createfile.go | ||
fs-v1_test.go | ||
fs-v1-errors.go | ||
fs-v1-metadata.go | ||
fs-v1-multipart-common.go | ||
fs-v1-multipart.go | ||
fs-v1.go | ||
generic-handlers.go | ||
globals.go | ||
handler-utils_test.go | ||
handler-utils.go | ||
host-to-ip_test.go | ||
host-to-ip.go | ||
httprange_test.go | ||
httprange.go | ||
LICENSE | ||
logger_test.go | ||
logger-console-hook.go | ||
logger-file-hook.go | ||
logger-syslog-hook_nix.go | ||
logger-syslog-hook_windows.go | ||
logger.go | ||
main_test.go | ||
main.go | ||
MAINTAINERS.md | ||
Makefile | ||
namespace-lock_test.go | ||
namespace-lock.go | ||
NOTICE | ||
notifier.go | ||
object_api_suite_test.go | ||
object-api-getobject_test.go | ||
object-api-getobjectinfo_test.go | ||
object-api-listobjects_test.go | ||
object-api-multipart_test.go | ||
object-api-putobject_test.go | ||
object-common.go | ||
object-datatypes.go | ||
object-errors.go | ||
object-handlers-common.go | ||
object-handlers.go | ||
object-interface.go | ||
object-multipart-common.go | ||
object-utils_test.go | ||
object-utils.go | ||
posix_test.go | ||
posix-dirent-fileno.go | ||
posix-dirent-ino.go | ||
posix-list-dir_test.go | ||
posix-list-dir-nix.go | ||
posix-list-dir-others.go | ||
posix-prepare-path.go | ||
posix-utils_common.go | ||
posix-utils_nix_test.go | ||
posix-utils_nix.go | ||
posix-utils_test.go | ||
posix-utils_windows_test.go | ||
posix-utils_windows.go | ||
posix.go | ||
rate-limit-handler.go | ||
README.md | ||
routers.go | ||
rpc-client.go | ||
rpc-server-datatypes.go | ||
rpc-server.go | ||
runtime-checks.go | ||
server_test.go | ||
server_utils_test.go | ||
server-main.go | ||
server-rlimit-nix.go | ||
server-rlimit-win.go | ||
server-startup-msg.go | ||
signals.go | ||
signature-jwt_test.go | ||
signature-jwt.go | ||
signature-v4_test.go | ||
signature-v4-parser.go | ||
signature-v4-postpolicyform.go | ||
signature-v4-utils.go | ||
signature-v4.go | ||
signature-verify-reader.go | ||
storage-datatypes.go | ||
storage-errors.go | ||
storage-interface.go | ||
strconv-bytes_test.go | ||
strconv-bytes.go | ||
test-utils_test.go | ||
tree-walk_test.go | ||
tree-walk-pool_test.go | ||
tree-walk-pool.go | ||
tree-walk.go | ||
trie.go | ||
typed-errors.go | ||
update-main.go | ||
utils.go | ||
version_test.go | ||
version-main.go | ||
web-handlers.go | ||
web-router.go | ||
xl-v1_test.go | ||
xl-v1-bucket.go | ||
xl-v1-common.go | ||
xl-v1-errors.go | ||
xl-v1-healing_test.go | ||
xl-v1-healing.go | ||
xl-v1-list-objects.go | ||
xl-v1-metadata_test.go | ||
xl-v1-metadata.go | ||
xl-v1-multipart-common.go | ||
xl-v1-multipart.go | ||
xl-v1-object_test.go | ||
xl-v1-object.go | ||
xl-v1-utils_test.go | ||
xl-v1-utils.go | ||
xl-v1.go |
Minio Quickstart Guide
Minio is an object storage server released under Apache License v2.0. It is compatible with Amazon S3 cloud storage service. It is best suited for storing unstructured data such as photos, videos, log files, backups and container / VM images. Size of an object can range from a few KBs to a maximum of 5TB.
1. Download
Minio server is light enough to be bundled with the application stack, similar to NodeJS, Redis and MySQL.
Platform | Architecture | URL |
---|---|---|
GNU/Linux | 64-bit Intel | https://dl.minio.io/server/minio/release/linux-amd64/minio |
32-bit Intel | https://dl.minio.io/server/minio/release/linux-386/minio | |
32-bit ARM | https://dl.minio.io/server/minio/release/linux-arm/minio | |
Apple OS X | 64-bit Intel | https://dl.minio.io/server/minio/release/darwin-amd64/minio |
Microsoft Windows | 64-bit | https://dl.minio.io/server/minio/release/windows-amd64/minio.exe |
32-bit | https://dl.minio.io/server/minio/release/windows-386/minio.exe | |
FreeBSD | 64-bit | https://dl.minio.io/server/minio/release/freebsd-amd64/minio |
Install from Source
Source installation is only intended for developers and advanced users. If you do not have a working Golang environment, please follow How to install Golang.
$ go get -d github.com/minio/minio
$ cd $GOPATH/src/github.com/minio/minio
$ make
2. Run Minio Server
1. GNU/Linux
$ chmod +x minio
$ ./minio --help
$ ./minio server ~/Photos
Endpoint: http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: USWUXHGYZQYFYFFIT3RE
SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Region: us-east-1
Browser Access:
http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quick-start-guide
$ mc config host add myminio http://10.0.0.10:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
2. OS X
$ chmod 755 minio
$ ./minio --help
$ ./minio server ~/Photos
Endpoint: http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: USWUXHGYZQYFYFFIT3RE
SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Region: us-east-1
Browser Access:
http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quick-start-guide
$ mc config host add myminio http://10.0.0.10:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
3.Microsoft Windows
C:\Users\Username\Downloads> minio.exe --help
C:\Users\Username\Downloads> minio.exe server D:\Photos
Endpoint: http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: USWUXHGYZQYFYFFIT3RE
SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Region: us-east-1
Browser Access:
http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quick-start-guide
$ mc.exe config host add myminio http://10.0.0.10:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
4. Docker Container
$ docker pull minio/minio
$ docker run -p 9000:9000 minio/minio
5. FreeBSD
$ chmod 755 minio
$ ./minio --help
$ ./minio server ~/Photos
Endpoint: http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
AccessKey: USWUXHGYZQYFYFFIT3RE
SecretKey: MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Region: us-east-1
Browser Access:
http://10.0.0.10:9000 http://127.0.0.1:9000 http://172.17.0.1:9000
Command-line Access: https://docs.minio.io/docs/minio-client-quick-start-guide
$ mc config host add myminio http://10.0.0.10:9000 USWUXHGYZQYFYFFIT3RE MOJRH0mkL1IPauahWITSVvyDrQbEEIwljvmxdq03
Object API (Amazon S3 compatible):
Go: https://docs.minio.io/docs/golang-client-quickstart-guide
Java: https://docs.minio.io/docs/java-client-quickstart-guide
Python: https://docs.minio.io/docs/python-client-quickstart-guide
JavaScript: https://docs.minio.io/docs/javascript-client-quickstart-guide
3. Test Minio Server using Minio Browser
Open a web browser and navigate to http://127.0.0.1:9000 to view your buckets on minio server.
4. Test Minio Server using mc
Install mc from here. Use mc ls
command to list all the buckets on your minio server.
$ mc ls myminio/
[2015-08-05 08:13:22 IST] 0B andoria/
[2015-08-05 06:14:26 IST] 0B deflector/
[2015-08-05 08:13:11 IST] 0B ferenginar/
[2016-03-08 14:56:35 IST] 0B jarjarbing/
[2016-01-20 16:07:41 IST] 0B my.minio.io/
For more examples please navigate to Minio Client Complete Guide.
5. Explore Further
- Minio Erasure Code QuickStart Guide
- Minio Docker Quickstart Guide
- Use
mc
with Minio Server - Use
aws-cli
with Minio Server - Use
s3cmd
with Minio Server - Use
minio-go
SDK with Minio Server
6. Contribute to Minio Project
Please follow Minio Contributor's Guide