所有文章 > 学习各类API > Linux上的MinIO对象存储服务部署和使用指南
Linux上的MinIO对象存储服务部署和使用指南

Linux上的MinIO对象存储服务部署和使用指南

本文详细介绍了如何在Linux环境中部署和使用MinIO对象存储服务。MinIO是一款兼容AWS S3协议的开源对象存储解决方案,适用于管理非结构化数据,如图像、视频、日志文件等。本文涵盖了MinIO的三种主要部署拓扑结构:单节点单磁盘、单节点多磁盘以及多节点多磁盘,并探讨了在生产环境中实现高可用性的最佳实践。此外,还介绍了如何使用Docker和Kubernetes进行MinIO的容器化部署,为不同需求的用户提供灵活的选择。

前言

MinIO 是一款高性能的对象存储服务,兼容 AWS S3 协议,适用于非结构化数据的存储和管理。MinIO 提供了灵活的部署方式,包括单节点和分布式集群模式。本文将详细介绍如何在 Linux 环境中部署 MinIO 对象存储,并提供相关的代码示例和配置说明。

MinIO 部署三种拓扑结构

MinIO 支持以下三种部署拓扑:
1. 单节点单磁盘(SNSD)适用于对象存储评估和初始开发。
2. 单节点多磁盘(SNMD)提供驱动器级别的可靠性。
3. 多节点多磁盘(MNMD)支持生产级对象存储,适合企业生产环境。

Linux 部署 MinIO 对象存储

在 Linux 中部署 MinIO 可以选择单节点单磁盘、单节点多磁盘和多节点多磁盘三种方式。对于生产环境,推荐使用多节点多磁盘的方式以提高可靠性和可用性。

Linux 单节点安装 MinIO – 单节点单磁盘

# 使用 systemd 管理 MinIO
pvcreate /dev/sdb
vgcreate vgdata /dev/sdb
lvcreate -n lvdata -l +100%FREE vgdata
mkfs.xfs /dev/vgdata/lvdata
mkdir /minio-data
echo '/dev/vgdata/lvdata /minio-data xfs defaults,noatime 0 2' >> /etc/fstab
mount -a
wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20231007150738.0.0.x86_64.rpm -O minio.rpm
sudo yum install minio.rpm
systemctl daemon-reload
systemctl start minio.service
systemctl enable minio.service

MinIO 客户端工具 mc

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc
mc alias set local http://127.0.0.1:9000 admin admin123456
mc admin info local

Linux 生产环境 – 单节点多磁盘部署 MinIO

minio_VOLUMES="/data-{1...4}"
# 启动 MinIO 即可

Docker 部署 MinIO 对象存储

使用 Docker 部署 MinIO 可以有效避免服务器环境带来的异常问题。Docker 支持单节点单磁盘和单节点多磁盘的部署。

Docker 部署单节点单磁盘的 MinIO

# 拉取镜像
docker pull quay.io/minio/minio
# 启动容器
docker run -dt -p 9000:9000 -p 9090:9090 -v /data/minio-data-storage:/mnt/data -v /etc/default/minio:/etc/config.env -e "minio_CONFIG_ENV_FILE=/etc/config.env" --name "minio_local" quay.io/minio/minio server --console-address ":9090" /mnt/data

K8s 部署 MinIO

MinIO 支持在 Kubernetes 环境中以原生方式进行部署,适合开发和测试环境。

K8s 部署 MinIO – 单个 Pod(开发环境)

# 下载 YAML
curl https://raw.githubusercontent.com/minio/docs/master/source/extra/examples/minio-dev.yaml
kubectl apply -f minio-dev.yaml
kubectl port-forward pod/minio --address 0.0.0.0 9000:9000 9090:9090 -n minio-dev

总结

MinIO 提供了灵活多样的部署方式,适用于不同的使用场景。无论是 Linux 环境下的单节点部署,还是 Docker 和 Kubernetes 中的分布式部署,MinIO 都能提供可靠的对象存储解决方案。

FAQ

问:什么是 MinIO?

  • 答:MinIO 是一款高性能的对象存储服务,兼容 AWS S3 协议,适用于非结构化数据的存储和管理。它提供灵活的部署方式,包括单节点和分布式集群模式。

问:MinIO 支持哪些部署拓扑结构?

  • 答:MinIO 支持三种部署拓扑结构:
    1. 单节点单磁盘(SNSD),适用于对象存储评估和初始开发。
    2. 单节点多磁盘(SNMD),提供驱动器级别的可靠性。
    3. 多节点多磁盘(MNMD),支持生产级对象存储,适合企业生产环境。

问:如何在 Linux 上进行单节点单磁盘的 MinIO 部署?

  • 答:在 Linux 上进行单节点单磁盘的 MinIO 部署需要使用 systemd 管理 MinIO。首先,创建逻辑卷并格式化为 XFS 文件系统,然后下载 MinIO 的 RPM 包进行安装,最后配置并启动 MinIO 服务。

问:MinIO 的 Docker 部署有哪些优势?

  • 答:使用 Docker 部署 MinIO 可以有效避免服务器环境带来的异常问题,支持单节点单磁盘和单节点多磁盘的部署。这种方式提高了部署的灵活性和便捷性。

问:在 Kubernetes 中如何部署 MinIO?

  • 答:在 Kubernetes 环境中可以通过 YAML 文件进行 MinIO 的原生部署,适合开发和测试环境。具体步骤包括下载 YAML 配置文件并应用于 Kubernetes 集群,然后通过端口转发访问 MinIO 服务。
#你可能也喜欢这些API文章!