MiniO 官网 中文文档

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 |
  1. wget http://dl.minio.org.cn/server/minio/release/linux-amd64/minio
  2. chmod +x minio
  3. # 启动minio server 服务, 指定数据存储目录 /mnt/data
  4. ./minio server /mnt/data
  1. ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
  2. You are running an older version of MinIO released 2 weeks ago
  3. Update: Run `mc admin update`
  4. ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
  5. API: http://172.16.0.2:9000 http://127.0.0.1:9000
  6. RootUser: minioadmin
  7. RootPass: minioadmin
  8. Console: http://172.16.0.2:36865 http://127.0.0.1:36865
  9. RootUser: minioadmin
  10. RootPass: minioadmin
  11. Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
  12. $ mc alias set myminio http://172.16.0.2:9000 minioadmin minioadmin
  13. Documentation: https://docs.min.io
  14. WARNING: Console endpoint is listening on a dynamic port (36865), please use --console-address ":PORT" to choose a static port.
  15. WARNING: Detected default credentials 'minioadmin:minioadmin', we recommend that you change these values with 'MINIO_ROOT_USER' and 'MINIO_ROOT_PASSWORD' environment variables

此方式启动端口动态, 密码,账号自动设置, 我们可以在启动前设置密码

  1. export MINIO_ROOT_USER=admin
  2. export MINIO_ROOT_PASSWORD=admin@123
  3. ./minio server --console-address ":9001" /mnt/data