Object:存储到 Minio 的基本对象,如文件、字节流,Anything...
Bucket:用来存储 Object 的逻辑空间。每个 Bucket 之间的数据是相互隔离的。对于客户端而言,就相当于一个存放文件的顶层文件夹。
Drive:即存储数据的磁盘,在 MinIO 启动时,以参数的方式传入。Minio 中所有的对象数据都会存储在 Drive 里。
Set :即一组 Drive 的集合,分布式部署根据集群规模自动划分一个或多个 Set ,每个 Set 中的Drive 分布在不同位置。一个对象存储在一个 Set 上。(For example: {1...64} is divided into 4 sets each of size 16.)
一个对象存储在一个Set上
一个集群划分为多个Set
一个Set包含的Drive数量是固定的,默认由系统根据集群规模自动计算得出
一个SET中的Drive尽可能分布在不同的节点上
纠删码EC(Erasure Code)
MinIO 使用纠删码机制来保证高可靠性,使用 highwayhash 来处理数据损坏( Bit Rot Protection )。
mamh@vm:~$ ./minio server ./data INFO: Formatting 1st pool, 1 set(s), 1 drives per set. INFO: WARNING: Host local has more than 0 drives of set. A host failure will result in data becoming unavailable. MinIO Object Storage Server Copyright: 2015-2024 MinIO, Inc. License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html Version: RELEASE.2024-07-13T01-46-15Z (go1.22.5 linux/amd64)
CLI: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart $ mc alias set 'myminio' 'http://192.168.1.106:9000' 'minioadmin' 'minioadmin'
Docs: https://min.io/docs/minio/linux/index.html WARN: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
mamh@vm:~$ ./minio server data{5..8} # 只是搞4个目录启动是会有问题的。 INFO: Unable to use the drive /home/mamh/data5: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data6: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data7: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data8: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data5: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data6: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data7: drive not found, will be retried INFO: Unable to use the drive /home/mamh/data8: drive not found, will be retried INFO: Waiting for a minimum of 2 drives to come online (elapsed 0s)
mamh@vm:~$ ./minio server --json data{1..4} {"level":"INFO","time":"2024-07-13T04:57:04.126540601Z","message":"Formatting 1st pool, 1 set(s), 4 drives per set."} {"level":"INFO","time":"2024-07-13T04:57:04.126733202Z","message":"WARNING: Host local has more than 2 drives of set. A host failure will result in data becoming unavailable."} {"level":"INFO","time":"2024-07-13T04:57:04.14233725Z","message":"MinIO Object Storage Server"} {"level":"INFO","time":"2024-07-13T04:57:04.142381838Z","message":"Copyright: 2015-2024 MinIO, Inc.\nLicense: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html\nVersion: RELEASE.2024-07-13T01-46-15Z (go1.22.5 linux/amd64)\n"} {"level":"INFO","time":"2024-07-13T04:57:04.14241911Z","message":"API: http://192.168.1.106:9000 http://127.0.0.1:9000 "} {"level":"INFO","time":"2024-07-13T04:57:04.142453163Z","message":"WebUI: http://192.168.1.106:42729 http://127.0.0.1:42729 "} {"level":"INFO","time":"2024-07-13T04:57:04.142471188Z","message":"\nDocs: https://min.io/docs/minio/linux/index.html"} {"level":"WARNING","time":"2024-07-13T04:57:04.142487379Z","message":"Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables","error":{"message":"Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables","source":[""]}}