首页 > 其他分享 >MinIO入门教程

MinIO入门教程

时间:2024-05-14 16:22:24浏览次数:23  
标签:MinIO 部署 入门教程 使用 服务器 驱动器 minio

是什么?

MinIO 是一种高性能、S3 兼容的对象存储。它是为 大规模 AI/ML、数据湖和数据库工作负载。它是软件定义的 并在任何云或本地基础设施上运行。 MinIO 具有双重许可 根据开源 GNU AGPL v3 和商业企业许可证

特点

  1. 简单
    简单性是百亿亿次数据基础设施的基础——无论是技术上还是操作上。没有其他对象存储可以让您在更短的时间内从下载到生产。

  2. 高性能
    MinIO 是世界上最快的对象存储,已发布的 GET/PUT 结果在 32 个 NVMe 驱动器节点和 100GbE 网络上超过 325 GiB/秒和 165 GiB/秒。

  3. k8s原生
    通过原生 Kubernetes 操作集成,MinIO 支持公共云、私有云和边缘云上的所有主要 Kubernetes 发行版。

  4. AI Ready
    MinIO 专为 AI 打造,可与所有主要 AI/ML 技术一起开箱即用。从预测模型到 GenAI,MinIO 提供的性能和可扩展性为 AI 企业提供动力。
    功能特性

  5. 复制
    对象存储的双活、多站点复制是关键任务生产环境的关键要求。 MinIO 是目前唯一提供该功能的供应商。 MinIO 提供存储桶级粒度,并根据架构选择和数据变化率支持同步和近同步复制。

  6. 加密
    在对象存储领域,仅仅为了获得一席之地就需要强大的加密。 MinIO 通过最高级别的加密以及广泛的优化提供更多功能,几乎消除了通常与存储加密操作相关的开销。

  7. 对象不可变性
    保护数据不被删除(意外或故意)是涉及每个行业的关键合规性组成部分。 MinIO 支持一系列完整的功能,包括对象锁定、保留、合法保留、治理和合规性。 MinIO 的存储桶和对象不变性经过 Veeam 认证并由 Cohasset Partners 验证,可根据 SEC 规则 17a-4(f)、FINRA 规则 4511 和 CFTC 规则 1.31 使用。

  8. 认证和访问管理
    MinIO IAM 以 AWS Identity and Access Management (IAM) 兼容性为核心构建,无论环境如何,都可以向应用程序和用户提供该框架 - 跨不同的公共云、私有云和边缘提供相同的功能。 MinIO 扩展了 AWS IAM 兼容性,支持流行的外部身份提供商(例如 ActiveDirectory/LDAP、Okta 和 Keycloak),从而允许管理员将身份管理卸载到其组织的首选 SSO 解决方案。

  9. 对象生命周期
    随着数据不断增长,针对访问、安全性和经济性进行协同优化的能力成为硬性要求,而不是可有可无。这就是生命周期数据管理的作用。 MinIO 提供了一套独特的功能来保护云内部和跨云(公共云和私有云)的数据。 MinIO的企业数据生命周期管理工具,包括版本控制、对象锁定和各种衍生组件,满足多种用例。

  10. 版本控制
    MinIO 对象版本控制允许在单个存储桶中保留同一对象的多次迭代。启用版本控制后,通常会覆盖现有对象的操作(例如 PUT 请求)将生成对象的新版本,每个版本都分配一个唯一的版本 ID。此功能对于防止意外覆盖或删除至关重要,本质上为写入操作提供了“撤消”功能。

  11. KMS(企业级服务)
    MinIO 的企业密钥管理服务器是一个高度可用、操作简单的 KMS 实施。企业 KMS 解决了处理每个对象加密所需的数十亿个加密密钥的特定问题。 MinIO 的企业 KMS 能够提供可预测的行为,即使在每个节点每秒数十万次加密操作的规模下也是如此,同时提供高可用性和容错能力。它支持多租户,使每个租户都可以分配自己的 enclave,该 enclave 完全独立并与 KMS 集群上的所有其他 enclave 隔离。

  12. 控制台(企业级服务)
    MinIO 的企业控制台充当单一管理平台,适用于组织的所有 MinIO 实例,包括公共云、私有云、边缘和托管实例。这使得 MinIO 的企业客户能够从一个直观的位置管理(部署、配置、升级和监控)大规模、技术上和地理位置上多样化的存储基础设施。

  13. Catalog(企业级服务)
    MinIO Enterprise Catalog功能解决了对象存储命名空间和元数据搜索的问题。使用目录,操作员可以使用熟悉且速度极快的 GraphQL 界面来索引、组织和搜索大量对象。它允许管理员准确了解其数据的情况,以执行任意数量的治理、审计、合规性或相关任务 - 所有这些都是实时的。

  14. Firewall(企业级服务)
    MinIO Enterprise Firewall 功能专为数据而构建。与基于 IP 或面向应用程序的传统防火墙不同,MinIO 企业防火墙专为对象存储的规模而设计,具有 S3 意识,以促进对企业管理员有意义的 TLS 终止、负载平衡、访问控制和 QOS 规则对象级粒度的功能。

  15. Cache(企业级服务)
    MinIO Enterprise Cache 功能作为缓存服务运行,使用服务器 DRAM 内存为超高性能工作负载创建分布式共享缓存。专为 MinIO 对象存储而构建 - 请求对象的应用程序无需执行任何操作,它只需在启用或配置后即可工作,提供完整的数据持久性。

  16. 可观测性(企业级服务)
    MinIO 的企业可观测性套件是一个完整的、以数据基础设施为中心的指标、审计日志、错误日志和跟踪的集合。这允许管理员查看每个实例、集群和纠删码集的所有系统组件(操作系统、CPU、内存、驱动器、网络)。凭借对象级粒度和对整个硬件堆栈的感知,它可以向需要保持世界平稳运行的人员提供关键任务信息。

  17. S3兼容性
    S3兼容性是云原生应用程序的硬性要求。 MinIO 坚定地遵守 API,并且拥有数以万计的用户(包括商业用户和社区用户),MinIO 的 S3 实施是世界上经过最广泛测试和实施的 AWS S3 替代方案。 MinIO 是 S3 API(V2 和 V4)最早的采用者之一,也是唯一专注于 S3 的存储公司之一,其庞大的社区确保没有其他 AWS 替代方案比它更兼容。 MinIO 也是少数支持 S3 Select 的公司之一。

部署

minIO可以在k8s、docker、linux、windows、macOS上部署,每个平台都有相应的教程。这里记录Linux下的部署步骤。

多节点多驱动器部署

本页上的过程介绍了在多节点多驱动器 (MNMD) 或“分布式”配置中部署 MinIO。 MNMD 部署提供企业级性能、可用性和可扩展性,是所有生产工作负载的推荐拓扑。 MNMD 部署支持纠删码配置,该配置可以容忍部署中最多一半的节点或驱动器丢失,同时继续提供读取操作服务。在规划和设计 MinIO 部署时,请使用 MinIO 纠删码计算器来探索纠删码设置对预期拓扑的影响。

先决条件

网络和防火墙

每个节点都应具有对部署中每个其他节点的完全双向网络访问权限。对于容器化或编排的基础设施,这可能需要对网络和路由组件(例如入口或负载均衡器)进行特定配置。某些操作系统可能还需要设置防火墙规则。例如,以下命令显式为运行firewalld的服务器打开默认的MinIO服务器API端口9000:

firewall-cmd --permanent --zone=public --add-port=9000/tcp
firewall-cmd --reload

部署中的所有 MinIO 服务器必须使用相同的侦听端口。
如果您设置静态 MinIO 控制台端口(例如:9001),您还必须授予对该端口的访问权限,以确保与外部客户端的连接。
MinIO 强烈建议使用负载均衡器来管理与集群的连接。负载均衡器应使用“最少连接”算法将请求路由到 MinIO 部署,因为部署中的任何 MinIO 节点都可以接收、路由或处理客户端请求。 已知以下负载均衡器与 MinIO 配合良好:

  • NGINX
  • HAProxy
    配置防火墙或负载平衡器以支持 MinIO 超出了此过程的范围。为 MinIO 服务器配置 NGINX 代理参考提供了使用 NGINX 作为配置了基本负载平衡的反向代理的基准配置。

连续主机名

创建服务器池时,MinIO 需要使用扩展符号 {x...y} 来表示一系列连续的 MinIO 主机。 MinIO 支持使用一系列连续的主机名或 IP 地址来表示部署中的每个 minio 服务器进程。
由于管理开销较低,此过程假设使用顺序主机名,尤其是在较大的分布式集群中。
在开始此过程之前创建必要的 DNS 主机名映射。例如,以下主机名将支持 4 节点分布式部署:

- minio-01.example.com
- minio-02.example.com
- minio-03.example.com
- minio-04.example.com

您可以使用扩展符号 minio-0{1...4}.example.com 指定整个主机名范围。

MinIO 不支持分布式部署的非连续主机名或 IP 地址。您可以改为在每个节点上使用 /etc/hosts 来设置支持扩展表示法的简单 DNS 方案。例如:
/etc/hosts
198.0.2.10 minio-01.example.net
198.51.100.3 minio-02.example.net
198.0.2.43 minio-03.example.net
198.51.100.12 minio-04.example.net

存储要求

以下要求总结了 MinIO 硬件建议的存储部分:

  • 使用本地存储
    与网络存储(NAS、SAN、NFS)相比,直连存储 (DAS) 具有显着的性能和一致性优势。 MinIO 强烈建议将闪存(NVMe、SSD)用于主要或“热”数据。
  • 对驱动器使用 XFS 格式化
    MinIO 强烈建议配置 XFS 格式的驱动器用于存储。 MinIO 使用 XFS 作为内部测试和验证套件的一部分,为所有规模的性能和行为提供额外的信心。 MinIO 不测试也不推荐任何其他文件系统,例如 EXT4、BTRFS 或 ZFS。
  • 使用一致类型的驱动器
    MinIO 不区分驱动器类型,并且不会从混合存储类型中受益。每个池必须使用相同的类型(NVMe、SSD) 例如,部署仅包含 NVMe 驱动器的池。如果您将某些驱动器部署为 SSD 或 HDD,MinIO 会将这些驱动器视为 NVMe 驱动器。这可能会导致性能问题,因为某些驱动器具有不同或更差的读/写特性,并且无法以与 NVMe 驱动器相同的速率进行响应。
  • 使用一致大小的驱动器
    MinIO 将每个驱动器使用的大小限制为部署中的最小驱动器。 例如,部署一个由相同数量的 NVMe 驱动器组成、容量相同的 7.68TiB 的池。如果您部署一个具有 3.84TiB 的驱动器,MinIO 会将池中的所有驱动器视为具有较小的容量。
  • 配置顺序驱动器安装
    在创建新部署时,MinIO 使用 Go 扩展符号 {x...y} 来表示一系列连续的驱动器,其中部署中的所有节点都具有一组相同的已安装驱动器。将驱动器安装路径配置为连续系列,以最好地支持此表示法。例如,使用 /mnt/drive-n 模式安装驱动器,其中 n 从 1 开始,每个驱动器以 1 递增。
  • 重新启动后保留驱动器安装和映射
    使用 /etc/fstab 确保在节点重新引导期间驱动器到挂载映射保持一致。 非 Linux 操作系统应使用等效的驱动器安装管理工具。
  • 对驱动器的独占访问
    MinIO 需要对为对象存储提供的驱动器或卷进行独占访问。任何其他进程、软件、脚本或人员都不应直接对提供给 MinIO 的驱动器或卷或 MinIO 放置在其上的对象或文件执行任何操作。 除非 MinIO 工程部门指示,否则请勿使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、奇偶校验分片或元数据文件,包括从一个驱动器或节点移动到另一个驱动器或节点。此类操作很可能导致大范围的损坏和数据丢失,超出了 MinIO 的修复能力。

内存要求

版本 RELEASE.2024-01-28T22-35-53Z 中已更改:MinIO 在启动时预分配 2GiB 系统内存。
MinIO 建议每个主机至少使用 32GiB 内存。有关 MinIO 中内存分配的更多指导,请参阅内存。

时间同步

多节点系统必须保持时间和日期同步,以维持稳定的节点间操作和交互。确保所有节点定期同步到同一时间服务器。操作系统因用于同步时间和日期的方法而异,例如使用 ntp、timedatectl 或 timesyncd。 检查操作系统的文档,了解如何跨节点设置和维护准确且相同的系统时钟时间。

纠删码奇偶校验

MinIO 纠删码是一种数据冗余和可用性功能,允许 MinIO 部署在集群中多个驱动器或节点丢失的情况下自动动态重建对象。 MinIO 默认为 EC:4,即每个擦除集 4 个奇偶校验块。您可以通过设置适当的 MinIO 存储类环境变量来设置自定义奇偶校验级别。考虑使用 MinIO 纠删码计算器来指导您为集群选择合适的纠删码奇偶校验级别。

重要
虽然您可以随时更改擦除奇偶校验设置,但使用给定奇偶校验写入的对象不会自动更新为新的奇偶校验设置。

基于容量的规划

MinIO 建议在达到 70% 使用率之前规划足够存储至少 2 年数据的存储容量。更频繁地或“及时”地执行服务器池扩展通常表明存在架构或规划问题。
例如,考虑一个应用程序套件预计每年至少产生 100 TiB 的数据,并在扩展前设定 3 年的目标。通过确保部署预先有约 500TiB 的可用存储,集群可以安全地满足 70% 的阈值,并提供额外的缓冲区以实现每年数据存储输出的增长。
由于 MinIO 纠删码需要一些存储用于奇偶校验,因此总原始存储必须超过计划的可用容量。考虑使用 MinIO 纠删码计算器来指导围绕特定纠删码设置规划容量。

操作系统推荐

本教程假设所有运行 MinIO 的主机都使用推荐的 Linux 操作系统,例如 RHEL8+ 或 Ubuntu 18.04+。

已有数据

在分布式环境中启动新的 MinIO 服务器时,存储设备不得有现有数据。 一旦启动 MinIO 服务器,所有与数据的交互都必须通过 S3 API 完成。使用 MinIO 客户端、MinIO 控制台或 MinIO 软件开发套件之一来处理存储桶和对象。

警告
修改后端驱动器上的文件可能会导致数据损坏或数据丢失。

部署分布式MinIO

以下过程创建一个由单个服务器池组成的新分布式 MinIO 部署。
下面提供的所有命令均使用示例值。将这些值替换为适合您的部署的值。
开始此过程之前请查看先决条件。

1. 在每个节点上安装 MinIO 二进制文件

以下选项卡提供了使用 RPM、DEB 或二进制文件将 MinIO 安装到 64 位 Linux 操作系统上的示例。 RPM 和 DEB 包会自动将 MinIO 安装到必要的系统路径,并为 systemctl 创建 minio 服务。 MinIO 强烈建议使用 RPM 或 DEB 安装路径。要更新使用 systemctl 管理的部署,请参阅更新 systemctl 管理的 MinIO 部署。
RPM

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20240510014138.0.0-1.x86_64.rpm -O minio.rpm
sudo dnf install minio.rpm

DEB

wget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20240510014138.0.0_amd64.deb -O minio.deb
sudo dpkg -i minio.deb

Binary

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
  1. 创建systemd服务文件
    .deb 或 .rpm 软件包将以下 systemd 服务文件安装到 /usr/lib/systemd/system/minio.service。对于二进制安装,请在所有 MinIO 主机上手动创建此文件。
    以下过程二进制安装需要执行
[Unit]
Description=MinIO
Documentation=https://min.io/docs/minio/linux/index.html
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local

User=minio-user
Group=minio-user
ProtectProc=invisible

EnvironmentFile=-/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# MinIO RELEASE.2023-05-04T21-44-30Z adds support for Type=notify (https://www.freedesktop.org/software/systemd/man/systemd.service.html#Type=)
# This may improve systemctl setups where other services use `After=minio.server`
# Uncomment the line to enable the functionality
# Type=notify

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=65536

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

# Built for ${project.name}-${project.version} (${project.name})

默认情况下,minio.service 文件作为 minio-user 用户和组运行。您可以使用 groupadd 和 useradd 命令创建用户和组。以下示例创建用户、组并设置访问供 MinIO 使用的文件夹路径的权限。这些命令通常需要 root (sudo) 权限。

groupadd -r minio-user
useradd -M -r -g minio-user minio-user
chown minio-user:minio-user /mnt/disk1 /mnt/disk2 /mnt/disk3 /mnt/disk4

指定的驱动器路径作为示例提供。更改它们以匹配 MinIO 使用的驱动器的路径。 或者,将用户和组值更改为系统主机上具有必要访问权限和权限的另一个用户和组。
MinIO 在 github.com/minio/minio-service 上发布了其他启动脚本示例。
要更新使用 systemctl 管理的部署,请参阅更新 systemctl 管理的 MinIO 部署。

3. 创建服务环境文件

在 /etc/default/minio.conf 创建环境文件。 MinIO 服务使用此文件作为 MinIO 和 minio.service 文件使用的所有环境变量的源。
以下示例假设:

  • 该部署有一个服务器池,由四个具有连续主机名的 MinIO 服务器主机组成。
minio1.example.com   minio3.example.com
minio2.example.com   minio4.example.com
  • 所有主机都有四个带有顺序安装点的本地连接驱动器:
/mnt/disk1/minio   /mnt/disk3/minio
/mnt/disk2/minio   /mnt/disk4/minio
  • 该部署有一个在 https://minio.example.net 上运行的负载均衡器,用于管理所有四台 MinIO 主机之间的连接。
    修改示例以反映您的部署拓扑:
# Set the hosts and volumes MinIO uses at startup
# The command uses MinIO expansion notation {x...y} to denote a
# sequential series.
#
# The following example covers four MinIO hosts
# with 4 drives each at the specified hostname and drive locations.
# The command includes the port that each MinIO server listens on
# (default 9000)

MINIO_VOLUMES="https://minio{1...4}.example.net:9000/mnt/disk{1...4}/minio"

# Set all MinIO server options
#
# The following explicitly sets the MinIO Console listen address to
# port 9001 on all network interfaces. The default behavior is dynamic
# port selection.

MINIO_OPTS="--console-address :9001"

# Set the root username. This user has unrestricted permissions to
# perform S3 and administrative API operations on any resource in the
# deployment.
#
# Defer to your organizations requirements for superadmin user name.

MINIO_ROOT_USER=minioadmin

# Set the root password
#
# Use a long, random, unique string that meets your organizations
# requirements for passwords.

MINIO_ROOT_PASSWORD=minio-secret-key-CHANGE-ME

# Set to the URL of the load balancer for the MinIO deployment
# This value *must* match across all MinIO servers. If you do
# not have a load balancer, set this value to to any *one* of the
# MinIO hosts in the deployment as a temporary measure.
MINIO_SERVER_URL="https://minio.example.net:9000"

您可以根据部署的需要指定其他环境变量或服务器命令行选项。部署中的所有 MinIO 节点应包含相同的环境变量,并且每个变量具有相同的值。

4. 增加TLS/SSL认证

MinIO 在检测到 MinIO ${HOME}/.minio/certs 目录中有效的 x.509 证书 (.crt) 和私钥 (.key) 后,自动启用传输层安全性 (TLS) 1.2+。 对于 systemd 管理的部署,请使用运行 MinIO 服务器进程的用户的 $HOME 目录。提供的 minio.service 文件以 minio-user 身份运行该进程。上一步包括使用主目录 /home/minio-user 创建此用户的说明。

  • 将 TLS 证书放入每个主机上的 /home/minio-user/.minio/certs 中。
  • 如果任何 MinIO 服务器或客户端使用未知证书颁发机构(自签名或内部 CA)签名的证书,则必须将 CA 证书放置在所有 MinIO 主机上的 /home/minio-user/.minio/certs/CAs 中部署。 MinIO 拒绝无效证书(不受信任、过期或格式错误)。
    如果 minio.service 文件指定不同的用户帐户,请使用该帐户的 $HOME 目录。或者,使用 minio server --certs-dir 命令行参数指定自定义证书目录。修改 /etc/defaults/minio 中的 MINIO_OPTS 变量来设置此选项。运行 MinIO 服务器进程的 systemd 用户必须具有指定目录的读取和列出权限。
    有关为 TLS 配置 MinIO 的更多具体指南,包括通过服务器名称指示 (SNI) 的多域支持,请参阅网络加密 (TLS)。您可以选择跳过此步骤以在不启用 TLS 的情况下进行部署。 MinIO 强烈建议不要在早期开发之外进行非 TLS 部署。

5. 运行 MinIO 服务器进程

在部署中的每个节点上发出以下命令以启动 MinIO 服务:
sudo systemctl start minio.service
使用以下命令确认服务在线且正常运行:

sudo systemctl status minio.service
journalctl -f -u minio.service

当服务器进程连接和同步时,MinIO 可能会记录更多数量的非关键警告。这些警告通常是暂时的,应该在部署上线后解决。
版本 RELEASE.2023-02-09T05-16-53Z 中已更改:如果 MinIO 检测到足够的驱动器来满足部署的写入仲裁,则它会启动。
如果启动 MinIO 后有任何驱动器保持离线状态,请在开始生产工作负载之前检查并解决阻碍其功能的任何问题。 MinIO 服务不会在主机重新启动时自动启动。您必须使用 systemctl enable minio.service 来启动该进程作为主机引导的一部分。
sudo systemctl enable minio.service

6. 打开MinIO控制台

打开浏览器并访问端口 :9001 处的任何 MinIO 主机名,以打开 MinIO 控制台登录页面。例如
https://minio1.example.com:9001
使用上一步中的 minio_root_user 和 minio_root_password 登录。

您可以使用 MinIO 控制台执行一般管理任务,例如身份和访问管理、指标和日志监控或服务器配置。每个 MinIO 服务器都包含其自己的嵌入式 MinIO 控制台。
更多部署方式参考官网

下面再介绍扩容步骤

扩容

MinIO 支持通过添加新的服务器池来扩展现有的分布式部署。每个池都会扩展集群的总可用存储容量。
扩展不提供业务连续性/灾难恢复 (BC/DR) 级保护。虽然每个池都是一组独立的服务器,具有不同的擦除集以确保可用性,但一个池的完全丢失会导致 MinIO 停止部署中所有池的 I/O。类似地,在一个池中失去仲裁的擦除集表示存储在该集中的对象的数据丢失,无论其他擦除集或池的数量如何。
新服务器池不需要使用与任何现有服务器池相同类型或大小的硬件和软件配置,尽管这样做可以简化集群管理并提高跨池的性能可预测性。新池中的所有驱动器应具有相同的类型和大小。查看 MinIO 的硬件建议,以获得有关选择适当配置的更完整指南。
要为单池或多池 MinIO 部署提供 BC-DR 级故障转移和恢复支持,请使用站点复制。
本页上的过程使用额外的服务器池扩展现有的分布式 MinIO 部署。

先决条件

参考上文的先决条件部分,这里只给出不同的地方

纠删码奇偶校验的最小驱动器

MinIO 要求每个池满足部署纠删码设置。具体来说,新池拓扑必须支持每个擦除集至少 2 个 EC:N 驱动器,其中 EC:N 是部署的标准奇偶校验存储类别。此要求可确保新服务器池能够满足部署的预期 SLA。
您可以使用 MinIO 纠删码计算器检查新池的纠删码条带大小 (k+m)。如果列出的最高值至少为 2 x EC:N,则池支持部署的擦除奇偶校验设置。

首先备份集群设置

在开始停用之前,使用 mc admin cluster Bucket Export 和 mc admin cluster iam export 命令分别拍摄存储桶元数据和 IAM 配置的快照。您可以使用这些快照来恢复存储桶和 IAM 设置,以便根据需要从用户或进程错误中恢复。

写文件

MinIO 不会自动重新平衡新服务器池中的对象。相反,MinIO 对具有最多可用存储空间的池执行新的写入操作,其加权值是池上的可用空间量除以所有可用池中的可用空间。
确定特定池上写入操作概率的公式为

考虑这样一种情况,一组两个池总共有 10 TiB 的可用空间,分布如下:

- Pool A has 3 TiB of free space
- Pool B has 2 TiB of free space
- Pool C has 5 TiB of free space

MinIO 计算每个池的写入操作的概率为:

- Pool A: 30% chance (3

标签:MinIO,部署,入门教程,使用,服务器,驱动器,minio
From: https://www.cnblogs.com/llwhrbust/p/18191544

相关文章

  • Springboot+React实现Minio文件分片上传、断点续传
    前言本文采用前后端结合,后端给前端每个分片的上传临时凭证,前端请求临时url,通过后端间接的去上传分片。其实无关乎vue或者react,思路都是一样的,逻辑也全都是js写的,跟模板语法或者jsx也没关系,仅仅是赋值不一样而已。前端:React+TypeScript+Antd+axios+spark-md5+p-......
  • minio依赖报错
    引入minio-sdk后启动报错现象一1缺失kotlin.collections.ArraysKt.copyInto([B[BIII)[B解决方法提升kotlin-stdin依赖<dependency><groupId>org.jetbrains.kotlin</groupId><artifactId>kotlin-stdlib</artifactId><version>1.3.70</......
  • PyTorch深度学习快速入门教程
    PyTorch深度学习快速入门教程一、基础知识1.1Python学习中的两大法宝1.2pycharm以及jupyter使用及对比将环境写入Notebook的kernel中:python-mipykernelinstall--user--name环境名称--display-name"Python(环境名称)"打开Jupyternotebook,新建Python文件,这时候......
  • CentOs上安装minio
    MINIO安装一、下载二进制文件wgethttps://dl.minio.org.cn/server/minio/release/linux-amd64/minio 二、授权,并移动到指定目录chmod+xminiosudomvminio/usr/local/bin/ 二、创建服务文件/usr/lib/systemd/system/minio.service 内容如下: [Unit]Descripti......
  • Python入门教程(三)
    数据类型str(字符串)Python中最常用的数据类型就是字符串,其用途也很多,我们可以使用单引号‘’或者双引号“”来创建字符串。字符串是不可修改的。关于字符我们从创建、索引、切片、长度、遍历、删除、分割、清除空白、大小写转换、判断以等方面对字符串进行介绍。 Int(数字......
  • Android Studio简单入门教程
    1.建立项目首先点击new——newproject新建项目选择想要创建的Android的模板,建议选择emptyactivity(空模板),然后nextName:给你的项目起一个名字APIlevel:选择Android虚拟机的版本,版本越低运行起来越快剩下的就按默认的就行,点击finish(由于版本不一样,步骤2和步骤3的顺序......
  • MinIO对象存储 安装和java调用
    1、参考MinIO对象存储介绍和使用【备忘录】JAVASDK连接MinIO,附完整代码2、packageorg.j****g.common.util.io;importcn.hutool.core.io.FileUtil;importio.minio.*;importio.minio.errors.MinioException;importio.minio.http.Method;importio.minio.messages.Buc......
  • React Hooks 入门教程【阮一峰】
    组件类的缺点React的核心是组件。早前版本,组件的标准写法是类。//一个简单的组件类importReact,{Component}from"react";exportdefaultclassButtonextendsComponent{constructor(){super();this.state={buttonText:"Clickme,please"};......
  • ocker安装minio,搭建自己的oss服务器
    dockersearchminio dockerpullminio/miniodockerrun-p9000:9000-p9090:9090\--nameminio\-d--restart=always\-e"MINIO_ACCESS_KEY=minioadmin"\-e"MINIO_SECRET_KEY=minioadmin"\-v/mydata/minio/data:/data\minio/mi......
  • SpringBoot集成minio前后端联调
    基本配置初始化项目新建一个SpringBoot项目,集成lombokmybatis-plusminiohutool-core(可有可无)。新建一个数据表attachement,用于存储文件上传后在minio中的位置。droptableifexistsattachment;createtableattachment(idintauto_increment......