使用 MinIO 进行对象存储
将 MinIO 用作 InfluxDB 3 Core 实例的对象存储。InfluxDB 使用 MinIO S3 兼容 API 与您的 MinIO 服务器或集群进行交互。
MinIO 是一个高性能、S3 兼容的对象存储解决方案,根据 GNU AGPL v3.0 许可证发布。它旨在实现速度和可扩展性,以行业领先的性能为 AI/ML、分析和数据密集型工作负载提供支持。
MinIO 提供了开源版本(MinIO Community Edition)和企业版本(MinIO AIStor)。虽然两者都可以用作您的 InfluxDB 3 Core 对象存储,**但本指南将介绍如何使用 MinIO Community Edition**。
设置 MinIO
安装和部署 MinIO 服务器或集群.
您可以在本地安装 MinIO 进行测试和开发,也可以部署一个跨多个机器的生产 MinIO 集群。MinIO 文档提供了详细的安装和部署 MinIO 的说明,具体取决于您的目标操作系统。
下载并安装 MinIO 客户端 (
mc).MinIO 客户端,即
mcCLI,允许您对 MinIO 服务器或集群执行管理任务,例如创建用户、分配访问策略等。为您的本地操作系统和体系结构下载并安装mcCLI。配置
mcCLI 以连接到您的 MinIO 服务器或集群.mcCLI 使用“别名”来连接到 MinIO 服务器或集群。别名指一组用于连接到您的 MinIO 服务器并对其进行授权的凭证。使用
mc alias set命令并提供以下信息:- 别名:此凭证集(
ALIAS)的唯一名称或标识符 - MinIO URL:您的 MinIO 服务器或集群的 URL(如果本地运行,则为
https://:9000) - Root 用户名:设置 MinIO 服务器或集群时指定的 root 用户名(
ROOT_USERNAME) - Root 密码:设置 MinIO 服务器或集群时指定的 root 密码(
ROOT_PASSWORD)
mc alias setALIAShttps://:9000ROOT_USERNAMEROOT_PASSWORD- 别名:此凭证集(
创建 MinIO 存储桶.
使用MinIO Console或
mc mb命令在您的 MinIO 服务器或集群中创建一个新存储桶。MinIO Console 是一个图形用户界面,允许您管理和浏览 MinIO 服务器或集群中的存储桶。默认情况下,控制台运行在端口
9001上。如果 MinIO 在您的本地计算机上运行,请访问 https://:9001 来访问 MinIO Console。如果 MinIO 在远程服务器上运行,请使用您的自定义域名或 IP 来访问 MinIO Console。
- 在 Minio Console 中,点击 **Create Bucket**。
- 输入一个存储桶名称。在本指南中,请使用
influxdb3。 - 点击 **Create Bucket**。
使用
mc mb命令创建一个名为influxdb3的新 MinIO 存储桶。提供在 第 3 步中配置的 MinIO 别名以及存储桶名称,使用ALIAS/BUCKET_NAME语法 — 例如:mc mbALIAS/influxdb3创建 MinIO 用户.
使用
mc admin user add命令创建一个新用户。提供以下信息:- MinIO 别名:要添加用户的 MinIO 服务器别名(在 第 3 步中创建)(
ALIAS) - 用户名:用户的唯一用户名(
MINIO_USERNAME) - 密码:用户的密码(
MINIO_PASSWORD)
mc admin user addALIASMINIO_USERNAMEMINIO_PASSWORDMinIO 用户凭证等同于您通常用于授权 AWS S3 的凭证。
- MinIO 用户名等同于 AWS 访问密钥 ID。
- MinIO 密码等同于 AWS 密钥。
- MinIO 别名:要添加用户的 MinIO 服务器别名(在 第 3 步中创建)(
创建一个允许完全访问
influxdb3存储桶的访问策略.MinIO 使用 S3 兼容的访问策略来授权对存储桶的访问。要创建一个新的访问策略:
创建一个名为
influxdb3-policy.json的文件,其中包含以下 JSON:{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::influxdb3"] }, { "Action": [ "s3:PutObject", "s3:GetObject", "s3:DeleteObject" ], "Effect": "Allow", "Resource": ["arn:aws:s3:::influxdb3/*"] } ] }使用
mc admin policy create命令在您的 MinIO 服务器或集群中创建新的访问策略。提供以下信息:- MinIO 别名:要添加访问策略的 MinIO 服务器别名(在 第 3 步中创建)(
ALIAS) - 策略名称:策略的唯一名称(
POLICY_NAME) - 策略文件:您的
influxdb3-policy.json策略文件的相对或绝对文件路径(/path/to/influxdb3-policy.json)
mc admin policy create \ALIAS\POLICY_NAME\/path/to/influxdb3-policy.json- MinIO 别名:要添加访问策略的 MinIO 服务器别名(在 第 3 步中创建)(
将访问策略附加到您的用户。
使用
mc admin policy attach命令将访问策略附加到您的用户。MinIO 支持将访问策略附加到用户和用户组。用户组中的所有用户都将继承附加到该组的策略。有关管理 MinIO 用户组的信息,请参阅 MinIO Group Management。
提供以下内容
- MinIO 别名:在 第 3 步中创建的 MinIO 服务器别名(
ALIAS) - 策略名称:策略的唯一名称(
POLICY_NAME) - 用户名或组名:要分配策略的用户或用户组(
MINIO_USERNAME或MINIO_GROUP_NAME)
- MinIO 别名:在 第 3 步中创建的 MinIO 服务器别名(
您的 MinIO 服务器或集群现已设置完毕,可以与 InfluxDB 3 Core 一起使用。
配置 InfluxDB 连接到 MinIO
要将您的 MinIO 服务器或集群用作 InfluxDB 3 Core 实例的对象存储,请在 influxdb3 serve 命令中提供以下选项或环境变量:
--node-id:您的 InfluxDB 3 Core 节点 ID(INFLUXDB_NODE_ID)--object-store:s3--bucket:influxdb3--aws-endpoint:您的 MinIO URL(如果本地运行,则为https://:9000)--aws-access-key-id:您的 MinIO 用户名(MINIO_USERNAME)--aws-secret-access-key:您的 MinIO 密码(MINIO_PASSWORD)--aws-allow-http:(可选) 如果**不**使用 HTTPS 连接到您的 MinIO 服务器或集群,请包含此项。
influxdb3 serve \
--node-id INFLUXDB_NODE_ID \
--object-store s3 \
--bucket influxdb3 \
--aws-endpoint https://:9000 \
--aws-access-key-id MINIO_USERNAME \
--aws-secret-access-key MINIO_PASSWORD \
--aws-allow-httpINFLUXDB3_NODE_IDENTIFIER_PREFIX:您的 InfluxDB 3 Core 节点 ID(INFLUXDB_NODE_ID)INFLUXDB3_OBJECT_STORE:s3INFLUXDB3_BUCKET:influxdb3AWS_ENDPOINT:您的 MinIO URL(如果本地运行,则为https://:9000)AWS_ACCESSKEY_ID:您的 MinIO 用户名(MINIO_USERNAME)AWS_SECRET_ACCESS_KEY:您的 MinIO 密码(MINIO_PASSWORD)AWS_ALLOW_HTTP:(可选) 如果**不**使用 HTTPS 连接到您的 MinIO 服务器或集群,请设置为true(默认为false)。
export INFLUXDB3_NODE_IDENTIFIER_PREFIX=INFLUXDB_NODE_ID
export INFLUXDB3_OBJECT_STORE=s3
export INFLUXDB3_BUCKET=influxdb3
export AWS_ENDPOINT=https://:9000
export AWS_ACCESS_KEY_ID=MINIO_USERNAME
export AWS_SECRET_ACCESS_KEY=MINIO_PASSWORD
export AWS_ALLOW_HTTP=true
influxdb3 serve确认对象存储正在工作
InfluxDB 3 Core 启动时,它将使用必要的目录结构初始化您的 MinIO 对象存储,并开始在那里存储数据。确认对象存储正常运行:
查看
influxdb3 serve的日志输出,以确认服务器正在正确运行。检查您的 MinIO
influxdb3存储桶的内容,以确认已创建必要的目录结构。您可以使用 **MinIO Console** 或 **mc ls命令** 来查看存储桶的内容 — 例如:mc lsALIAS/influxdb3
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。