MINIIO 分布式存储搭建使用

背景:

        MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。

一、官方网站:

MinIO | 用于AI的S3 & Kubernetes原生对象存储                #中文官网

二、搭建方式:

本次还是使用Docker 方式去搭建的,借用1Panel 可视化面板去部署一键部署应用。

1、安装1Panel

1Panel 系统借助 SFTPGo 应用,可以快速创建 SFTP、FTP 和 WebDAV 服务,支持多用户、多目录、多权限。 

参考文档:FTP - 1Panel 文档

1Panel 是新一代的 Linux 服务器运维管理面板功能和宝塔有点类似,但是免费开源的。

curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh      #Centos/redhat版本使用
[root@localhost ~]# curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o quick_start.sh && sh quick_start.sh
#开始下载 1Panel v1.10.2-lts 版本在线安装包
安装包下载地址: https://resource.fit2cloud.com/1panel/package/stable/v1.10.2-lts/release/1panel-v1.10.2-lts-linux-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 48.4M  100 48.4M    0     0  16.3M      0  0:00:02  0:00:02 --:--:-- 16.3M
1panel-v1.10.2-lts-linux-amd64/1panel.service
1panel-v1.10.2-lts-linux-amd64/1pctl
1panel-v1.10.2-lts-linux-amd64/LICENSE
1panel-v1.10.2-lts-linux-amd64/README.md
1panel-v1.10.2-lts-linux-amd64/install.sh
1panel-v1.10.2-lts-linux-amd64/1panel
 
 ██╗    ██████╗  █████╗ ███╗   ██╗███████╗██╗
███║    ██╔══██╗██╔══██╗████╗  ██║██╔════╝██║
╚██║    ██████╔╝███████║██╔██╗ ██║█████╗  ██║
 ██║    ██╔═══╝ ██╔══██║██║╚██╗██║██╔══╝  ██║
 ██║    ██║     ██║  ██║██║ ╚████║███████╗███████╗
 ╚═╝    ╚═╝     ╚═╝  ╚═╝╚═╝  ╚═══╝╚══════╝╚══════╝
[1Panel Log]: ======================= 开始安装 =======================
设置 1Panel 安装目录(默认为/opt):
[1Panel Log]: 您选择的安装路径为 /opt                  #设置安装路径
[1Panel Log]: 检测到 Docker 已安装,跳过安装步骤        #检查docker是否安装,如果未安装则先安装docker
[1Panel Log]: 启动 Docker
[1Panel Log]: ... 在线安装 docker-compose
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 56.8M  100 56.8M    0     0  17.8M      0  0:00:03  0:00:03 --:--:-- 17.8M
[1Panel Log]: docker-compose 安装成功 
设置 1Panel 端口(默认为42074):                         #设置端口
[1Panel Log]: 您设置的端口为:42074
[1Panel Log]: 防火墙未开启,忽略端口开放                      
设置 1Panel 面板用户(默认为88326053fc):                 #面板用户名
[1Panel Log]: 您设置的面板用户为:88326053fc               
设置 1Panel 面板密码(默认为08e13ab1ca):                 # 设置面板用户密码           
[1Panel Log]: 配置 1Panel Service
Created symlink from /etc/systemd/system/multi-user.target.wants/1panel.service to /etc/systemd/system/1panel.service.
[1Panel Log]: 启动 1Panel 服务
 
[1Panel Log]: 1Panel 服务启动成功!
[1Panel Log]:
[1Panel Log]: =================感谢您的耐心等待,安装已经完成==================
[1Panel Log]:
[1Panel Log]: 请用浏览器访问面板:
[1Panel Log]: 外网地址: http://122.231.147.239:42074/8a36118354
[1Panel Log]: 内网地址: http://192.168.245.133:42074/8a36118354
[1Panel Log]: 面板用户: 88326053fc
[1Panel Log]: 面板密码: 08e13ab1ca
[1Panel Log]:
[1Panel Log]: 项目官网: https://1panel.cn
[1Panel Log]: 项目文档: https://1panel.cn/docs
[1Panel Log]: 代码仓库: https://github.com/1Panel-dev/1Panel
[1Panel Log]:
[1Panel Log]: 如果使用的是云服务器,请至安全组开放 42074 端口

根据提示登录可视化面板

三、部署MINIIO:

使用1panel 部署MINIIO

点击参数可以查看MINIIO的相关信息,包括登录端口号和账号密码

使用http://IP:9000 进行访问

例如       http://172.30.10.43:9000/buckets/mybucket/admin/access

输入用户和密码进行登录

四、配置MINIIO:

1、流程:

先创建一个资源桶,来存储数据,然后创建一个AK SK 密钥来交给用户进行登录,然后再上传下载资源桶中的数据

2、创建数据桶:

可以在图形化中创建

可以在linux 系统中使用

mc  alias  set  <桶名字> MINIIO访问界面:API端口 SK AK 进行创建桶

例如:

mc alias set mymini2 http://172.30.10.43:9001 rlhR84uCH07RQoqECQEL c6gr6VPqWsOEo8e9d9v8wDuJ5OG7wTySr5DAP0Js
mc mb myminio/mybucket2                     #创建一个名字为mybacket2桶
3、创建AK SK密钥:

随机创建一个AK以及SK密钥,下面可以添加一些描述信息比如谁领取该密钥,

创建后下载credentials (1).json 文件,该文件里面记录AK SK 信息,方便存储保存

4、创建用户及用户组:

创建用户

创建用户以及输入密码 <添加对应权限,以及加入对应的组中>

返回点击用户的修改权限

创建该用户相关的AK 以及 SK 密钥

创建用户组

创建用户组并把相关的用户添加到对应的组中,方便后续用户的管理

5、用户及用户组权限:

在创建用户时可以指定相关的权限,用户创建完成后也可以进行修改权限

创建用户组时候可以进一步编辑,设置组的权限。

6、用户桶资源的关联:

在web端,创建完用户之后就自动关联所有的数据桶,

五、使用MINIIO:

1、安装配置MC客户端

1.1 windows

打开以下文件在浏览器中:

https://dl.minio.org.cn/client/mc/release/windows-amd64/mc.exe

通过双击执行文件,或者 在命令 提示符或PowerShell中运行以下内容:

\path\to\mc.exe --help

1.2 linux

64-bit Intel

curl https://dl.minio.org.cn/client/mc/release/linux-amd64/mc \
  --create-dirs \
  -o $HOME/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

64-bit PPC

curl https://dl.minio.org.cn/client/mc/release/linux-ppc64le/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

ARM64

curl https://dl.minio.org.cn/client/mc/release/linux-arm64/mc \
  --create-dirs \
  -o ~/minio-binaries/mc

chmod +x $HOME/minio-binaries/mc
export PATH=$PATH:$HOME/minio-binaries/

mc --help

1.3 macOS

brew install minio/stable/mc
mc --help

1.4 Source

从源代码安装旨在为开发者和高级用户提供, 并需要一个工作的Golang环境。 请参阅 如何安装Golang。在终端环境中运行以下命令以从源代码 安装 mc

go install github.com/minio/mc@latest

mc update 不支持基于源代码的安装。

2、登录MC客户端

MINIIO server

mc alias set myminio https://minioserver.example.net ACCESS_KEY SECRET_KEY

AWS S3 Storage

mc alias set myS3 https://s3.amazon.com/endpoint ACCESS_KEY SECRET_KEY

Google Cloud Storage

mc alias set myGCS https://storage.googleapis.com/endpoint ACCESS_KEY SECRET_KEY
3、上传数据信息

windows :系统上传需要在web客户端中操作即可。

可上传文件和文件夹

linux:

可以使用以下命令在mc客户端中配置主机:

mc config host add 桶名字 miniio客户端 AK SK

mc config host add myminio http://172.30.10.43:9001 yoZJ8LV5qoOKUriOvDEG BKp6P6fiGfJNjIzt2XyC8xgt53qtRhp1aM5ylRex

 

mc cp CentOS-7-x86_64-DVD-1708.iso myminio/mybucket/

4、下载数据信息

windows:系统下载需要在web客户端中操作即可

linux :使用复制命令去从资源桶中复制文件到linux 系统中

mc cp  myminio/mybucket/1panel-v1.10.5-lts-linux-amd64.tar.gz /data

已经完成miniio初级的使用体验

07-03
MinIO 是一个高性能的对象存储系统,专为大规模数据基础设施设计。它基于 Apache License v2.0 开源协议,并且遵循 Affero 通用公共许可证第 3 版 (AGPLv3),这意味着它是 100% 开放源代码的,用户可以自由地使用、集成、修改和重新分发该软件[^1]。 ### 功能特性 - **多平台支持**:MinIO 支持多种操作系统环境,包括 Windows, Linux, OS X 和 FreeBSD,这使得它可以在广泛的环境中部署[^4]。 - **容器化部署**:MinIO 可以通过 Docker 容器进行部署,简化了安装过程并提高了灵活性[^2]。 - **Kubernetes 集成**:对于需要在 Kubernetes 环境中运行的应用程序,MinIO 提供了与 Kubernetes 的集成能力,支持动态存储卷、持久化存储以及自动扩展功能[^2]。 - **分布式部署**:MinIO 支持分布式模式下的部署,允许跨多个节点分布数据,从而提高可用性和容错性。在分布式模式下,所有节点应共享相同的根凭证以确保相互间的信任关系。此外,推荐使用同构的硬件配置来保证性能的一致性[^3]。 - **纠删码技术**:MinIO 使用纠删码(Erasure Coding)技术来保护数据免受损坏或丢失的风险。这种技术将数据分割成多个片段,并添加冗余信息以便恢复原始数据[^3]。 - **时间同步要求**:为了确保分布式系统中的正确操作,建议各节点之间的时间差异不超过15分钟,并推荐启用NTP服务保持时间一致[^3]。 ### 使用场景 - **云存储解决方案**:MinIO 可作为云存储服务的基础架构组件,适用于保存大量的非结构化数据如图片、视频和文档等。 - **大数据处理**:由于其高吞吐量的特点,MinIO 适合用于大数据分析项目中作为底层的数据湖存储层。 - **备份与归档**:企业可以利用 MinIO 来构建成本效益高的备份和长期归档解决方案。 - **内容分发网络 (CDN)**:结合其他工具和服务,MinIO 能够被用来创建高效的 CDN 架构,加速静态资源的全球分发。 - **Web 应用程序后端**:开发人员可以直接从他们的 Web 应用程序访问 MinIO 存储桶来上传下载文件,而无需额外搭建中间层服务器。 ### 示例命令 以下是一个简单的 MinIO 服务启动示例: ```bash # 假设已经设置了MINIO_ROOT_USER和MINIO_ROOT_PASSWORD环境变量 minio server /path/to/export/data --address :9000 --console-address :9001 ``` 此命令会在指定路径 `/path/to/export/data` 上启动 MinIO 服务,并设置 HTTP 地址为 `:9000` 以及控制台地址为 `:9001`。请注意替换实际使用的路径及可能需要设置的环境变量值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值