1. MiniO 基础概念
- object 存储到Min io 的基本对象 , 如: 文件, 字节流 , Anything …
- Bucket 用来存储 Object 的逻辑空间 . 每个 Bucket 之间的数据是相互隔离的 . 对于客户端而言 , 就相当于一个存放文件的顶层文件夹
- Drive 即存储数据的磁盘 , 在Min IO 启动时 , 以参数的方式传入 , Min IO 中所有的对象数据都会存储在 Drive 里
- Set即一组 Drive 的集合 , 分布式部署根据集群规模自动划分一个或多个Set , 每个Set中的Drive分布在不同位置, 一个对象存储在一个Set上
- 一个对象存储在一个Set上
- 一个集群划分为多个Set
- 一个Set包含Drvier数量是固定的, 默认由系统根据集群规模自动计算得出
- 一个Set中的Driver尽可能分布在不同的节点上
2. 纠删码EC(Erasure Code)
MinIO 使用纠删码机制来保证高可用性, 使用highwayhash来处理数据损坏(Big Rot Protection). 关于纠删码 , 简单来说就是可以通过数学计算, 把丢失的数据进行还原, 它可以将N份原始数据, 增加M份数据, 并能通过N+M份中任意N份数据还原为原始数据, 即如果有任意小于等于M份的数据丢失, 任能通过剩下的数据还原出来3. 单机部署
mino server 的 standalone 模式, 即要管理的磁盘都在host本地, 该启动模式一般仅用于实验环境, 测试环境的验证和学习使用, 在standalone 模式下还可以分为non-erasure code mode 和 erasure code mode
non-erasure code mode
在此启动模式下 , 对于每一份对象数据, minio直接在data下面存储这份数据, 不会建立副本, 也不会启用纠删码机制, 因此, 这中模式无论是服务实例还是磁盘都是”单点” , 无任何高可用保障, 磁盘损坏就表示数据丢失
erasure code mode
此模式为minio server 实例传入多个本地磁盘参数, 一旦遇到多余一个磁盘参数, minio server 会自动启用erasure code mode . erasure code 对磁盘个数是具有要求的, 如不满足要求 ,实例启动失败 , erasure code 启用后, 要求传给minio server 的eendpoint(standalone 模式下,即本地磁盘上的目录) 至少为4个centos 7
| 操作系统 | CPU架构 | 地址 | | —- | —- | —- | | GNU/Linux | 64-bit intel | http://dl.minio.org.cn/server/minio/release/linux-amd64/minio |
wget http://dl.minio.org.cn/server/minio/release/linux-amd64/miniochmod +x minio# 启动minio server 服务, 指定数据存储目录 /mnt/data./minio server /mnt/data
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓┃ You are running an older version of MinIO released 2 weeks ago ┃┃ Update: Run `mc admin update` ┃┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛API: http://172.16.0.2:9000 http://127.0.0.1:9000RootUser: minioadminRootPass: minioadminConsole: http://172.16.0.2:36865 http://127.0.0.1:36865RootUser: minioadminRootPass: minioadminCommand-line: https://docs.min.io/docs/minio-client-quickstart-guide$ mc alias set myminio http://172.16.0.2:9000 minioadmin minioadminDocumentation: https://docs.min.ioWARNING: Console endpoint is listening on a dynamic port (36865), please use --console-address ":PORT" to choose a static port.WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables
此方式启动端口动态, 密码,账号自动设置, 我们可以在启动前设置密码
export MINIO_ROOT_USER=adminexport MINIO_ROOT_PASSWORD=admin@123./minio server --console-address ":9001" /mnt/data
