51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

搭建分布式对象存储服务MinIO-单点模式

# 搭建分布式对象存储服务 MinIO-单点模式 {#搭建分布式对象存储服务-minio-单点模式}

本文介绍开源的分布式对象存储服务 MinIO 的单点模式的搭建步骤。对象存储系统相比于传统的 NAS 文件系统有很多的优势,访问效率高、方便扩容,支持分布式等特性。MinIO 基于 Goland 开发,所以部署非常方便。

官网 (opens new window)

# 1. 部署 MinIO 服务 {#_1-部署-minio-服务}

# 1.1 单机部署 {#_1-1-单机部署}

# 1.1.1 docker方式部署 {#_1-1-1-docker方式部署}

执行如下命令,创建 MinIO 服务

docker run -p 9000:9000 --name minio \
  -v /mydata/minio/data:/data \
  -v /mydata/minio/config:/root/.minio \
  -d minio/minio server /data

# 1.1.2 二进制方式部署 {#_1-1-2-二进制方式部署}

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data

# 1.2 分布式部署 {#_1-2-分布式部署}

分布式Minio的要求: 至少需要4个硬盘

需求: 一共2台机器(192.168.11.13,192.168.11.13), 每台机器上指定2个存储目录(可以对应到2块硬盘)/data1/data2.

# 1.2.1 创建启动脚本 {#_1-2-1-创建启动脚本}

在所有机器上部署如下服务启动脚本(start_minio_cluster.sh):

#!/bin/bash
export MINIO_ACCESS_KEY=admin
export MINIO_SECRET_KEY=adminpwd

nohup /root/minio server http://192.168.11.13/data1 http://192.168.11.13/data2 http://192.168.11.14/data1 http://192.168.11.14/data2 >/root/minio.log 2>&1 &

minio会自动以MINIO_ACCESS_KEYMINIO_SECRET_KEY环境变量的值作为管理后台的账号和密码, 所以您可以自定义账号和密码.

# 1.2.2 启动服务 {#_1-2-2-启动服务}

所有机器上执行启动脚本start_minio_cluster.sh.集群即可成功运行.
在192.168.11.13上程序输出的部分日志如下:

Error: Marking http://192.168.11.14:9000/minio/storage/data2/v29 temporary offline; caused by Post "http://192.168.11.14:9000/minio/storage/data2/v29/readall?disk-id=&file-path=format.json&volume=.minio.sys": dial tcp 192.168.11.14:9000: connect: connection refused (*fmt.wrapError)
       6: cmd/rest/client.go:138:rest.(*Client).Call()
       5: cmd/storage-rest-client.go:151:cmd.(*storageRESTClient).call()
       4: cmd/storage-rest-client.go:471:cmd.(*storageRESTClient).ReadAll()
       3: cmd/format-erasure.go:405:cmd.loadFormatErasure()
       2: cmd/format-erasure.go:325:cmd.loadFormatErasureAll.func1()
       1: pkg/sync/errgroup/errgroup.go:122:errgroup.(*Group).Go.func1()
Disk `/data1` the same as the system root disk.
Disk will not be used. Please supply a separate disk and restart the server.
Disk `/data2` the same as the system root disk.
Disk will not be used. Please supply a separate disk and restart the server.
Waiting for a minimum of 2 disks to come online (elapsed 21s)

Formatting 1st pool, 1 set(s), 4 drives per set.
Waiting for all MinIO sub-systems to be initialized.. lock acquired
Attempting encryption of all config, IAM users and policies on MinIO backend
All MinIO sub-systems initialized successfully
Status:         4 Online, 0 Offline. 
Endpoint: http://192.168.11.13:9000  http://127.0.0.1:9000     

Browser Access:
   http://192.168.11.13:9000  http://127.0.0.1:9000    

Object API (Amazon S3 compatible):
   Go:         https://docs.min.io/docs/golang-client-quickstart-guide
   Java:       https://docs.min.io/docs/java-client-quickstart-guide
   Python:     https://docs.min.io/docs/python-client-quickstart-guide
   JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
   .NET:       https://docs.min.io/docs/dotnet-client-quickstart-guide
Waiting for all MinIO IAM sub-system to be initialized.. lock acquired
IAM initialization complete

可以看出,当192.168.11.14上的节点还没有启动时,当前节点会报错,提示硬盘数量不足4块.当把192.168.11.14上的服务也启动后, 提示已有4块硬盘, 并初始化完成.

# 1.2.3 访问 {#_1-2-3-访问}

集群启动后,浏览器访问集群中的任何一个节点(http://192.168.11.13:9000或http://192.168.11.14:9000)都可以.

# 2 MinIO 后台管理系统的使用 {#_2-minio-后台管理系统的使用}

服务启动后,访问http://IP:9000,进入管理后台
默认 Access Key 和 Secret 都是 minioadmin
后台管理系统支持 bucket 的创建、文件的上传等操作。

# 2.1 创建 bucket {#_2-1-创建-bucket}

在文件上传之前,需要先创建 1 个 bucket。
MinIO创建bucket

# 2.2 上传文件 {#_2-2-上传文件}

可以指定任意路径来上传文件
MinIO 指定文件路径

# 2.3 文件的访问 {#_2-3-文件的访问}

执行如下操作获取文件的访问地址
MinIO查询文件的访问地址

该文件的访问地址是临时的,若想获取可永久访问的地址,需要修改存储桶的访问策略,我们可以点击存储桶右上角的编辑策略按钮来修改访问策略。需要注意的是,访问前缀需要设置为*.*,否则会无法访问。
MinIO配置访问策略
文件的永久访问地址为: 服务器域名/bucketName/objectName,如http://172.18.100.177:9000/mymusic/百事可乐的视频1.mp4

# 3 MinIO 服务端的数据存储结构 {#_3-minio-服务端的数据存储结构}

MinIO 在服务端的存储也是以目录结构存储的。
后台管理看到的文件列表如下:

服务端的数据存储结构如下:

~ # ls -l /data/bucket1/dir1/
total 52
drwxr-xr-x    2 root     root          4096 Oct 29 09:29 dir2
-rw-r--r--    1 root     root         24730 Oct 29 09:30 icon.png
-rw-r--r--    1 root     root         17080 Oct 29 09:29 选区_015.png
~ #

# 4. 客户端 mc 的使用 {#_4-客户端-mc-的使用}

请前往教程分布式对象存储 MinIO 客户端 mc 的使用官网 (opens new window)

赞(1)
未经允许不得转载:工具盒子 » 搭建分布式对象存储服务MinIO-单点模式