【Docker】分布式文件存储系统-MinIO
一、MinIO简介
MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。
MinIO 是一个非常轻量的服务,可以很简单的和其他应用的结合,类似NodeJS,Redis或者MySQL。
官网:MinIO | 高性能,对Kubernetes友好的对象存储

二、MinIO的优点
1. 性能
MinIO 号称是世界上速度最快的对象存储服务器。在标准硬件上,对象存储的读/写速度最高可以达到183GB/s和171GB/s。
2. 容器化支持
MinIO 提供了与k8s、etcd、docker等容器化技术深度集成方案,可以说就是为了云环境而生的。
3. 丰富的SDK支持
MinIO 几乎提供了所有主流开发语言的SDK以及文档。
4 。AWSS3标准兼容
Amazon的S3 API是对象存储领域的事实标准。MinIO是S3兼容性的事实上的标准,是第一个采用API和第一个添加对S3 Select支持的标准之一。包括微软Azure在内的750多家公司使用MinIO的S3网关,这一数字超过了业内其他公司的总和。
三、安装MinIO
1. 前置
该安装方法是基于
Docker安装,其余安装方式可从其他渠道查询
安装Docker:
2. 安装
官网给的安装教程
1 | docker run -p 9000:9000 --name minio1 \ |
存在问题:
浏览器无法访问 MinIO 控制台,因为没有对外暴露控制台端口
解决方案:
对外暴露 MinIO 控制台的端口,通过–console-address ":50000"指定控制台端口为静态端口
所以我们使用以下代码
1 | docker run -d -p 9000:9000 -p 50000:50000 --name minio \ |
理论上我们就可以输入http://ip:50000访问了。首次访问会要求设置一个帐号、密码。
注意:
1、不知道服务器 IP,可以直接在命令行输入:curl ip.sb,会显示当前服务器的 IP。
2、遇到访问不了的情况,请再次检查在宝塔面板的防火墙和服务商的后台防火墙是否打开对应了端口。
3. 配置
创建 Buckets(桶)
点击Buckets - Create Bucket

填写桶名称,根据需要点击选项,最后点击Create Bucket完成创建

注:完成创建后需重启才能生效,可使用
Docker直接重启
创建 Service Account
点击Access Keys - Create access key

如果只对特定Buckets(桶)开放 Service Account,则需要
Restrict beyond user policy选择ON,并对内容进行配置
1 | { |
点击Create创建 Service Account

创建成功会生成Access Key和Secret Key,点击Download for import下载保存信息,或单独复制保存

设置区域
点击Settings,填入cn,中国,点击Restore Defaults完成设置

四、迁移MinIO
1. 准备
我们将使用名为mc的官方 MinIO 客户端。
我使用macOS,所以安装非常简单。该过程假设在不同平台上是相似的。
在本例中,我们要将数据从my_source迁移到my_destination。
我们从创建这样的配置开始。
默认路径在您的主目录(~/.mc/config.json)中。
该文件应该看起来像这样(使用您的值)。
1 | { |
2. 迁移
我们将使用mc mirror命令。
1 | mc mirror my_source my_destination |
