跳至主要內容

MinIO | MinIO 基础

Kevin 吴嘉文大约 5 分钟知识笔记大数据NLP

MinIO

Storage 概念

块存储(Block Storage)

  • 基础 :块存储将数据视为固定块大小的序列,每个文件分布在多个块上。
  • 调整和优化 :块大小可根据存储需求调整,以优化数据库等应用的性能。
  • 结构和一致性 :块存储具有高度结构化和强一致性,但对元数据的处理能力有限。
  • 用途
  • 作为物理或虚拟机磁盘,用于引导卷和服务器的额外本地存储。
  • 共享卷:一个写入卷挂载到一个服务器,其他服务器进行只读挂载,适用于数据处理和数据库。
  • 备份:将多个高容量廉价磁盘聚合作为备份目标,利用 SSD 和 NVMe 等快速本地存储。

文件存储(File Storage)

  • 整体存储和访问 :文件以整体形式存储,并按原始格式通过文件路径访问。
  • 元数据和锁定 :提供有限的元数据,支持文件锁定以防止多个写入者同时操作导致数据损坏。
  • 上层协议 :通常建立在块存储或对象存储之上,通过特定协议(如 SMB 或 NFS)访问。
  • 用途
  • 企业文件共享:大规模文件共享,存储 PDF、Word 文档等。
  • 媒体存储:存储图片、视频等媒体文件,方便从 PC 或服务器访问。
  • 网页内容管理:作为管理网页内容的共享位置,后续发送到前端服务器。

对象存储(Object Storage)

  • 分布式和元数据 :文件存储在分布式分片上,附带丰富的元数据和对象 ID。
  • 版本控制和无限扩展 :不支持文件锁定,但通过版本控制保持数据完整性。支持无限扩展性。
  • 访问方式 :通过 REST API 和通用 HTTP 协议访问,适用于客户端工作站、服务器、云节点等。
  • 用途
  • 文档和文件共享:代替传统 Windows 主机的文件存储,如 Box 或 Dropbox。
  • 静态网站托管:托管无数据库后端的 HTML 网站。
  • 备份和磁带替代:用于大规模数据备份和存档。
  • 数据分析、AI 和 ML:利用其丰富的元数据功能,适用于大规模数据分析。

提高存储性能的关键

在讨论存储性能之前,我们需要先理解一些影响所有存储类型的基本概念。存储速度主要由硬件介质决定,包括硬盘、固态硬盘和 NVMe 设备。

  1. 硬件基础 : 存储介质的性能限制了整体的速度。
  2. 磁盘阵列 : 通过组合多个磁盘,汇总它们的吞吐量,从而提升读写速度。
  3. 网络速度 : 如果存储不是直接连接到系统,网络速度会成为性能瓶颈。

不同存储类型的性能和可用性

  1. 块存储 : 需要在其上应用文件系统(如 NTFS、XFS、ZFS),继承文件系统的特点。
  2. 文件存储 : 受所选文件存储系统的影响,如 NFS 或 SMB。处理大量非结构化数据时,搜索速度会降低。
  3. 对象存储 : 利用元数据来提升大规模非结构化数据集的扩展性和搜索能力。REST API 访问极低开销,使数据几乎可以以网络速度访问。对象存储通常不受 CPU 和内存的限制,而是受网络能力的限制。

不同储存类型的成本

在存储领域,成本包含多个因素:

  1. 协议速度 :涉及 TCP、SMB、NFS 等。
  2. 存储介质成本 :考虑提供冗余所需的额外存储,这在企业级应用中尤为重要。
  3. 系统要求 :支持 CPU、RAM 和 RAID 卡的成本,以及各系统的管理开销。

块存储成本

块存储为保证冗余,通常需要昂贵的硬件和网络连接。常用 RAID(廉价磁盘的冗余阵列)来实现高可用性和数据保护。这类存储通常伴随着额外硬件成本,且易受硬件限制,扩展成本高。

文件存储成本

文件存储通常依赖于块存储,因此也继承了类似的硬件和网络成本。由于依赖于块存储的约束,其可扩展性受限,还需要额外的硬件和管理成本。

对象存储成本

对象存储的优势在于可以使用标准硬件,并通过擦除编码实现高效冗余,无需昂贵的 RAID 硬件。它依赖于高效的 REST API 协议,通过简单增加后端就能轻松扩展,无需用户了解后端详情。对象存储的全球扩展成本较低,因为可以在不同地理位置放置端点,并实现自动复制。

存储应用场景对比

  • 对象存储 :适用于云应用,任何类型和数量的数据,通过 REST API 访问。用例包括视频流、图像、数据分析、备份等。
  • 块存储 :通常本地或局域网附加,适用于物理服务器或 VM 操作。用例包括服务器磁盘、数据库存储、媒体渲染等
  • 文件存储 :本地 NAS 或云存储,通过特定协议共享至多个设备。用于传统文件共享、媒体存储、轻量数据分析等。
imagenew
imagenew

结论

  • 块存储适合基本存储和备份需求,文件存储侧重于企业文件和媒体共享。
  • 对象存储以其弹性、可扩展性和多架构支持,适用于现代化的大规模数据处理、备份、网站托管和数据分析。
  • 组织正将传统工作负载迁移到对象存储,利用其在云计算和大数据场景中的优势。

参考

Python Client API Referenceopen in new window

官方 trainingopen in new window

https://github.com/minio/minio

https://www.escapelife.site/posts/919f2125.html

分布式 minio(failure 策略)open in new window

上次编辑于:
贡献者: kevinng77