MinIO 介绍(1)--简介及安装
MinIO 是一种高性能、S3 兼容的对象存储。本文主要包括 MinIO 简介和安装;文中所使用到的软件版本:MinIO RELEASE.2025-07-23T15-54-02Z、Centos 8.5.2111。1、简介
1.1、MinIO 的特性
1.1.1、主动,主动复制
对象存储的主动、多站点复制是任务关键型生产环境的关键要求。MinIO是目前唯一提供它的供应商。MinIO 提供存储桶级粒度,并支持同步和近同步复制,具体取决于架构选择和数据变化率。
1.1.2、加密
在对象存储领域,需要强大的加密才能在谈判桌上占有一席之地。MinIO 通过最高级别的加密以及广泛的优化提供更多功能,几乎消除了通常与存储加密操作相关的开销。
1.1.3、自动化数据管理界面
数据是企业最关键的资产,因此必须在整个组织中轻松安全地使用,以便为每个人实现最大价值。因此,企业必须根据受众的需求采用一系列数据接口方法。MinIO提供了一套选项来涵盖数据驱动型企业中的每个角色,例如图形用户界面(GUI),命令行界面(CLI)和应用程序编程接口(API)。MinIO 的数据管理接口可互换运行,以提供精细、高性能和可扩展的对象存储管理。
1.1.4、存储桶和对象不变性
保护数据不被删除(意外或故意)是涉及每个行业的关键合规性组件。MinIO 支持完整的功能范围,包括对象锁定、保留、法律保留、治理和合规性。MinIO 的存储桶和对象不变性已通过 Veeam 认证和验证,可根据 SEC 规则 17a-4(f)、FINRA 规则 4511 和 CFTC 规则 1.31 使用。
1.1.5、亚马逊云 S3 兼容性
S3兼容性是云原生应用程序的硬性要求。MinIO 毫不妥协地坚持 API,拥有数以万计的用户(包括商业用户和社区用户),MinIO 的 S3 实施是世界上测试和实施最广泛的 AWS S3 替代方案。
MinIO是S3 API(V2和V4)的最早采用者之一,也是仅有的专注于S3的存储公司之一,其庞大的社区确保了没有其他AWS替代品比它更兼容。MinIO也是少数几家支持S3 Select的公司之一。
1.1.6、数据生命周期管理和分层
随着数据的持续增长,针对访问、安全性和经济性进行共同优化的能力成为一项硬性要求,而不是可有可无。这就是生命周期数据管理的作用。MinIO 提供了一套独特的功能来保护云内部和跨云的数据 - 包括公共云和私有云。
MinIO的企业数据生命周期管理工具,包括版本控制、对象锁定和各种衍生组件,满足多种用例。
1.1.7、可扩展性
缩放是一个维度概念,但它有一个真理:简单缩放。MinIO 通过称为服务器池的概念进行水平扩展(横向扩展)。服务器池是一种结合了多个技术组件的方法。每个服务器池都是一组独立的节点,具有自己的计算、网络和存储资源。
1.1.8、身份和访问管理
MinIO IAM 以 AWS 身份和访问管理 (IAM) 兼容性为核心构建,无论环境如何,都可以向应用程序和用户提供该框架 - 在不同的公共云、私有云和边缘提供相同的功能。MinIO 通过支持流行的外部身份提供商(如 ActiveDirectory/LDAP、Okta 和 Keycloak)扩展了 AWS IAM 兼容性,允许管理员将身份管理卸载到其组织的首选 SSO 解决方案。
1.2、对象管理
MinIO 对象存储使用 buckets 来组织对象。 存储桶类似于文件系统中的顶级驱动器、文件夹或目录 ( /mnt/data or C:\ ) ,其中每个存储桶可以容纳任意数量的对象。
MinIO 服务器上的对象结构可能类似于以下内容:
/ #root
/images/
2020-01-02-MinIO-Diagram.png
2020-01-03-MinIO-Advanced-Deployment.png
MinIO-Logo.png
/videos/
2020-01-04-MinIO-Interview.mp4
/articles/
/john.doe/
2020-01-02-MinIO-Object-Storage.md
2020-01-02-MinIO-Object-Storage-comments.json
/jane.doe/
2020-01-03-MinIO-Advanced-Deployment.png
2020-01-02-MinIO-Advanced-Deployment-comments.json
2020-01-04-MinIO-Interview.md如示例结构,将创建 /images , /videos 和 /articles 存储桶。 客户端应用程序使用该对象的完整 “路径” 将对象写入这些存储桶,包括所有中间前缀。
MinIO 使用前缀支持多层嵌套目录和对象,甚至可以支持最动态的对象存储工作负载。 MinIO 使用 / 作为分隔符自动从完整对象路径推断出中间前缀,例如 /articles/john.doe 。
客户端和管理员不应手动创建这些前缀,因为 MinIO 会自动从对象名称中推断出它们。
2、安装
这里主要介绍 MinIO 在 Linux 环境下的部署;可通过如下地址下载 MinIO 二进制包:
https://dl.minio.org.cn/server/minio/release/linux-amd64/minio
https://dl.min.io/server/minio/release/linux-amd64/minio --这个地址下载的版本比较新2.1、单节点单硬盘部署(SNSD)
SNSD 部署使用零奇偶校验的纠删码后端,这提供的可靠性或可用性与底层存储卷实现的一致,没有额外的可靠性或可用性。 这些部署最适合用于本地测试和评估,或者用于没有可用性或性能要求的小规模数据工作负载。
2.1.1、预先存在的数据
MinIO 的启动行为取决于指定的存储卷或路径的内容。 服务器会检查 MinIO 内部的后端数据以及现有文件夹和文件的结构。 以下表格列出了可能的存储卷状态和 MinIO 的行为:
存储容量状态行为不包含 任何文件、文件夹MinIO 以 SNSD 模式启动并创建零冗余后端存在 SNSD 零冗余对象和 MinIO 后端数据MinIO 以 SNSD 模式恢复存在文件系统文件夹、文件,但没有 MinIO 后端数据MinIO 返回错误并且不启动存在文件系统文件夹、文件和传统的“FS模式”后端数据MinIO 返回错误并且不启动2.1.2、存储要求
A、使用本地存储
直接连接存储(DAS)在性能和一致性方面显著优于网络存储( NAS, SAN, NFS)。 MinIO 强烈建议使用闪存存储(NVMe、SSD)作为主要或 “热” 数据。
B、对驱动器使用 XFS 格式化
MinIO 强烈建议存储为格式化 XFS 文件系统的驱动器。 MinIO 在其内部测试和验证套件中使用 XFS,这增加了对所有规模下的性能和行为表现的额外信心。
C、持久化驱动器挂载和映射跨重启
为了确保在节点重启后驱动器到挂载点的映射一致,请使用 /etc/fstab 文件。
2.1.3、启动
nohup ./minio server ./data--console-address :9090 &2.2、单节点多硬盘部署(SNMD)
SNMD 部署提供了驱动器级别的可靠性以及故障转移/恢复功能,但由于单个节点的限制,会对性能和扩展性产生限制。
2.2.1、存储要求
A、使用本地存储
直接连接存储(DAS)在性能和一致性方面比网络存储( 网络附加存储(NAS)、 存储区域网络(SAN)、 网络文件存储(NFS))有显著优势。 MinIO 强烈建议使用闪存存储(NVMe,SSD)作为主要或 “热” 数据。
B、使用 XFS 格式化驱动器
MinIO 强烈建议为存储提供 XFS 格式化的驱动器。 MinIO 在内部测试和验证套件中使用 XFS,以提供对性能和行为在所有规模上的额外信心。
MinIO 并不测试也不推荐其他文件系统,如 EXT4、BTRFS 或 ZFS。
C、使用一致类型的驱动器
MinIO 不区分驱动器类型,并且不从混合存储类型中受益。 每个 :term:`pool`(池)必须使用相同类型(NVMe,SSD)的驱动器。
例如,部署一个仅由 NVMe 驱动器组成的池。 如果您将一些驱动器作为 SSD 或 HDD 部署,MinIO 会将与 NVMe 驱动器相同的方式来处理这些驱动器。 这可能会导致性能问题,因为一些驱动器具有不同的或更差的读/写特性,并且不能像 NVMe 驱动器那样以相同的速率响应。
D、使用一致大小的驱动器
MinIO 将每个硬盘使用的大小限制为池中最小的硬盘。
例如,部署一个由容量相同的 7.68TiB NVMe驱动器组成的数据池。 如果您部署了一个容量为 3.84TiB 的驱动器,MinIO会将池中的所有驱动器都视为具有那个较小的容量。
E、配置顺序挂载驱动器
MinIO 使用 Go 扩展表示法 {x...y} 来表示在创建新 deployment 时驱动器的顺序系列,其中 deployment 中的所有节点都具有相同的一组挂载驱动器。 将驱动器挂载路径配置为顺序系列,以最佳支持这种表示法。 例如,使用模式 /mnt/drive-n 挂载您的驱动器,其中 n 从 1 开始,每增加一个驱动器就递增 1 。
F、在重新启动后保持驱动器挂载和映射不变
使用 /etc/fstab 确保在节点重新启动后驱动器到挂载点的映射一致。
2.2.2、启动
nohup ./minio server /minio-data/data-{2...4} --console-address :9090 &/minio-data/data-n 为单独的挂载盘:
/dev/nvme0n2 /minio-data/data-2 xfs defaults 0 0
/dev/nvme0n3 /minio-data/data-3 xfs defaults 0 0
/dev/nvme0n4 /minio-data/data-4 xfs defaults 0 02.3、多节点多硬盘部署(MNMD)
MNMD 部署提供企业级性能、可用性和可扩展性,并且是所有生产工作负载的推荐拓扑结构。MNMD 部署支持 Erasure Coding(纠删码) 配置,可以容忍部署中多达一半的节点或驱动器的丢失,同时继续提供读操作。
2.3.1、存储要求
A、使用本地存储
直接连接存储(DAS)在性能和一致性方面比网络存储( 网络附加存储(NAS)、 存储区域网络(SAN)、 网络文件存储(NFS))有显著优势。 MinIO 强烈建议使用闪存存储(NVMe,SSD)作为主要或 “热” 数据。
B、使用 XFS 格式化驱动器
MinIO 强烈建议为存储提供 XFS 格式化的驱动器。 MinIO 在内部测试和验证套件中使用 XFS,以提供对性能和行为在所有规模上的额外信心。
MinIO 并不测试也不推荐其他文件系统,如 EXT4、BTRFS 或 ZFS。
C、使用一致类型的驱动器
MinIO 不区分驱动器类型,并且不从混合存储类型中受益。 每个 :term:`pool`(池)必须使用相同类型(NVMe,SSD)的驱动器。
例如,部署一个仅由 NVMe 驱动器组成的池。 如果您将一些驱动器作为 SSD 或 HDD 部署,MinIO 会将与 NVMe 驱动器相同的方式来处理这些驱动器。 这可能会导致性能问题,因为一些驱动器具有不同的或更差的读/写特性,并且不能像 NVMe 驱动器那样以相同的速率响应。
D、使用一致大小的驱动器
MinIO 将每个硬盘使用的大小限制为池中最小的硬盘。
例如,部署一个由容量相同的 7.68TiB NVMe驱动器组成的数据池。 如果您部署了一个容量为 3.84TiB 的驱动器,MinIO会将池中的所有驱动器都视为具有那个较小的容量。
E、配置顺序挂载驱动器
MinIO 使用 Go 扩展表示法 {x...y} 来表示在创建新 deployment 时驱动器的顺序系列,其中 deployment 中的所有节点都具有相同的一组挂载驱动器。 将驱动器挂载路径配置为顺序系列,以最佳支持这种表示法。 例如,使用模式 /mnt/drive-n 挂载您的驱动器,其中 n 从 1 开始,每增加一个驱动器就递增 1 。
F、在重新启动后保持驱动器挂载和映射不变
使用 /etc/fstab 确保在节点重新启动后驱动器到挂载点的映射一致。
2.3.2、部署规划
主机磁盘10.49.196.33/minio-data/data-2
/minio-data/data-3
/minio-data/data-4
10.49.196.34/minio-data/data-2
/minio-data/data-3
/minio-data/data-4
10.49.196.35/minio-data/data-2
/minio-data/data-3
/minio-data/data-4
2.3.3、启动
在每台机器上执行:
nohup ./minio server http://10.49.196.3{3...5}:9000/minio-data/data-{2...4} --console-address :9090 &3、控制台
控制台端口通过 --console-address 参数指定,如:http://10.49.196.35:9090;用户名/密码默认为 minioadmin/minioadmin,可以通过环境变量 MINIO_ROOT_USER 和 MINIO_ROOT_PASSWORD 来调整用户名/密码。
该版本的控制台功能较简单,MinIO 想让用户转向企业版;2025.4.22 及之前版本的控制台功能丰富:
参考:https://min-io.cn/docs/minio/linux/operations/installation.html。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]