在小网站上做点击广告,怎么给网站创建二维码,小程序定制开发公司推荐,手机排行榜2020前十名文章目录 什么是minio核心特点#xff1a;使用场景#xff1a;开发者工具#xff1a;社区和支持#xff1a; 核心概念什么是对象存储#xff1f;MinIO 如何确定对对象的访问权限#xff1f;我可以在存储桶内按文件夹结构组织对象吗#xff1f;如何备份和恢复 MinIO 上的… 文章目录 什么是minio核心特点使用场景开发者工具社区和支持 核心概念什么是对象存储MinIO 如何确定对对象的访问权限我可以在存储桶内按文件夹结构组织对象吗如何备份和恢复 MinIO 上的对象MinIO 提供哪些工具来根据访问速度和频率管理对象MinIO 如何保护对象免遭意外覆盖或删除锁定版本控制 架构解析分布式架构存储机制高可用性和扩展性兼容性安全性管理和监控 minio扩容扩容前的准备添加新节点扩展存储数据迁移测试和验证示例命令在新节点上安装并启动MinIO服务更新集群配置如果有需要使用mc工具测试数据迁移 注意事项 命令行基本配置设置环境变量 基本命令连接到MinIO服务器列出所有存储桶创建新的存储桶删除存储桶切换当前工作目录到指定存储桶 文件操作上传文件到存储桶下载文件到本地复制存储桶内的文件删除存储桶内的文件 目录操作上传整个目录到存储桶下载整个目录到本地删除存储桶内的目录 更多命令列出存储桶中的所有对象查看特定对象的信息设置对象的元数据获取对象的元数据生成共享链接启动MinIO服务器如果安装了MinIO服务端 相关文献 什么是minio
MinIO是一个开源的对象存储服务器它旨在提供高性能、高可扩展性的存储解决方案。以下是关于MinIO的一些详细介绍
核心特点
高性能MinIO设计用于提供高速的数据访问速度在标准硬件上也能达到非常高的吞吐量。云原生MinIO支持Kubernetes并且适合在云环境中运行特别是对于微服务架构的应用。可扩展性MinIO支持水平扩展可以通过增加更多的节点来扩展存储容量和性能。API兼容性MinIO与Amazon S3 API兼容这使得现有的S3应用程序可以轻松迁移或与MinIO集成。跨平台MinIO可以在Linux、Windows和macOS等多个操作系统上运行。安全性MinIO支持加密、身份验证和授权等功能确保数据的安全性。
使用场景
大数据存储适合存储海量的数据如日志文件、分析数据等。备份与归档可以用来备份重要的数据同时也支持长期的数据归档。Web应用可以作为Web应用的静态资源存储库如图片、视频等。容器化应用非常适合云原生应用的数据持久化需求。IoT应用可以存储从物联网设备收集的数据。
开发者工具
MinIO支持多种编程语言的SDK包括Java、Python、Go等方便开发者快速集成MinIO到自己的应用中。它还提供了命令行界面CLI使得终端用户可以方便地管理和操作存储在MinIO中的对象。
社区和支持
MinIO有一个活跃的开源社区提供了丰富的文档和技术支持帮助用户更好地理解和使用这个工具。 由于MinIO的这些特点它成为了许多组织和个人在构建需要高性能、可扩展存储解决方案的应用和服务时的选择。
核心概念
什么是对象存储
对象是二进制数据有时也称为二进制大对象 (BLOB)。Blob 可以是图像、音频文件、电子表格甚至是二进制可执行代码。MinIO 等对象存储平台提供专用工具和功能来存储、检索和搜索 Blob 。
MinIO 对象存储使用存储桶来组织对象。存储桶类似于文件系统中的文件夹或目录每个存储桶可以容纳任意数量的对象。MinIO 存储桶提供与 AWS S3 存储桶相同的功能。
例如假设有一个托管网络博客的应用程序。该应用程序需要存储各种 blob包括视频和图像等丰富的多媒体。
MinIO 通过功能支持多级嵌套目录prefixing 以支持最动态的对象存储工作负载。
MinIO 如何确定对对象的访问权限
MinIO 要求客户端对每个新操作执行身份验证和授权。 因此身份和访问管理 (IAM)是 MinIO 配置的关键组件。
身份验证可验证连接客户端的身份。MinIO 要求客户端使用AWS 签名版本 4 协议进行身份验证并支持已弃用的签名版本 2 协议。具体来说客户端必须提供有效的访问密钥和密钥才能访问任何 S3 或 MinIO 管理 API例如PUT、GET和DELETE操作。
然后MinIO 检查经过身份验证的用户或客户端是否有权在部署上执行操作或使用资源。MinIO 使用基于策略的访问控制 (PBAC)其中每个策略描述一个或多个规则这些规则概述了用户或用户组的权限。MinIO在创建策略时支持特定于 S3 的操作和条件。
默认情况下MinIO拒绝访问用户分配或继承的策略中未明确引用的操作或资源。
MinIO 提供了访问管理功能作为软件的一部分。或者您可以将 MinIO 配置为使用Active Directory/LDAP或OpenID/OIDC与多个外部 IAM 提供程序之一进行身份验证。
MinIO 如何保护数据安全 MinIO 支持在驱动器上对对象进行编码静态加密以及在从一个位置转换到另一个位置时进行编码传输中加密或“动态加密”的方法。启用后MinIO 会利用服务器端加密以加密状态写入对象。要检索和读取加密对象用户必须具有适当的访问权限并提供对象的解密密钥。
MinIO 支持传输层安全性(TLS) 版本 1.2 和 1.3 加密对象。TLS 取代了以前使用的安全套接字层 (SSL) 方法该方法现已弃用。由互联网工程任务组 (IETF) 维护的 TLS 标准提供了互联网通信用于支持加密、身份验证和数据完整性的标准。
验证用户和验证对象访问权限的过程称为TLS 握手。验证完成后TLS 提供密码来加密和解密从服务器到请求客户端的信息传输。
MinIO 支持多种服务器端加密方法。
我可以在存储桶内按文件夹结构组织对象吗
MinIO 为每个对象使用前缀方法模仿传统文件系统的文件夹结构。前缀涉及在对象名称前面添加固定字符串。
使用前缀您无需手动创建文件夹和子文件夹。相反MinIO 会查找/对象名称前缀中的字符。每个字符都/表示一个新文件夹或子文件夹。
MinIO 使用对象的名称和前缀自动生成一系列用于存储对象的文件夹和子文件夹。当你在多个对象上使用相同的前缀字符串时MinIO 会将它们识别为相似或分组的对象。
例如名为 的对象/articles/john.doe/2022-01-02-MinIO-Object-Storage.md最终会存放在articles存储桶中标有 的文件夹中john.doe。
MinIO 对象存储可能类似于以下结构具有三个存储桶。MinIO 会articles根据这些对象的前缀自动在存储桶中生成两个文件夹。
/ #root
/images/2022-01-02-MinIO-Diagram.png2022-01-03-MinIO-Advanced-Deployment.pngMinIO-Logo.png
/videos/2022-01-04-MinIO-Interview.mp4
/articles//john.doe/2022-01-02-MinIO-Object-Storage.md2022-01-02-MinIO-Object-Storage-comments.json/jane.doe/2022-01-03-MinIO-Advanced-Deployment.png2022-01-02-MinIO-Advanced-Deployment-comments.json2022-01-04-MinIO-Interview.mdMinIO 本身不限制任何特定前缀可以包含的对象数量。但是硬件和网络条件可能会因前缀较大而对性能产生影响。
使用中等或预算有限的硬件进行部署时应将其工作负载设计为以每个前缀 10,000 个对象为基准。根据基准测试和对实际工作负载的监控将此目标提高到硬件可以有效处理的水平。
使用高性能或企业级硬件的部署通常可以处理具有数百万个或更多对象的前缀。
MinIO SUBNET企业账户可以利用年度架构审查作为部署和维护策略的一部分以确保依赖 MinIO 的项目的长期性能和成功。
有关限制前缀内容的好处的更深入讨论请参阅有关优化 S3 性能的文章。
如何备份和恢复 MinIO 上的对象
MinIO 提供两种类型的复制用于将对象、其版本及其元数据从一个位置复制到另一个位置。您可以在存储桶级别或站点级别配置复制。
存储桶级别复制既可以作为单向、主动-被动复制例如用于存档目的也可以作为双向、主动-主动复制以使两个存储桶彼此保持同步。
站点级复制功能作为双向、主动-主动复制以使多个数据位置例如不同的地理数据中心彼此同步。
除了复制之外MinIO 还提供镜像服务。 仅将实际对象复制到任何其他 S3 兼容数据存储包括其他 MinIO 存储。但是版本和元数据不会使用该命令备份。mc mirrormc mirror 独家访问驱动器 MinIO需要 对用于对象存储的驱动器或卷具有独占访问权限。任何其他流程、软件、脚本或人员都不得直接对提供给 MinIO 的驱动器或卷或 MinIO 放置在其上的对象或文件执行任何操作。 除非得到 MinIO 工程部门的指示否则请勿使用脚本或工具直接修改、删除或移动所提供驱动器上的任何数据分片、奇偶校验分片或元数据文件包括从一个驱动器或节点移动到另一个驱动器或节点。此类操作很可能会导致大面积损坏和数据丢失超出 MinIO 的修复能力。 MinIO 提供哪些工具来根据访问速度和频率管理对象
分层规则允许将经常访问的对象存储在热存储或温存储中这通常更昂贵但提供更好的性能。
访问频率较低的对象可以移至冷存储。冷存储通常会以较低的性能换取较低的价格。
MinIO 如何保护对象免遭意外覆盖或删除
锁定
锁定是一种一次写入多次读取 (WORM) 机制可防止删除或修改对象。锁定后MinIO 会无限期地保留对象直到有人移除锁定或锁定过期。
MinIO 提供 法律保留锁供所有用户无限期保留 对所有用户实施基于时间的限制 为非特权用户制定基于时间的锁规则
版本控制
默认情况下使用相同名称包括前缀写入的对象会覆盖现有的同名对象。MinIO 提供了一个配置选项来创建启用了版本控制的存储桶。 版本控制可让您访问随时间变化的唯一命名对象的各个迭代。启用后MinIO 会将变异对象写入与原始对象不同的版本从而允许访问原始对象和更新的已更改对象。
MinIO 存储桶上的附加配置决定了存储桶中每个对象的旧版本保留多长时间。
架构解析
MinIO的架构设计是为了实现高性能、可扩展性以及简单易用性。以下是对MinIO架构的一些关键特性的解析
分布式架构 无中心化设计MinIO采用了一种去中心化的架构其中对象数据被分散存储在集群的不同节点上。这种设计避免了单点故障并提高了系统的可靠性。负载均衡MinIO可以使用Web负载均衡器或DNS轮询DNS round-robin来平衡请求负载从而提高系统的整体性能。
存储机制 Bucket和Object在MinIO中数据被组织成Buckets桶每个Bucket类似于传统文件系统中的目录。Bucket中的数据则被进一步划分为Objects对象每个对象都有一个唯一的键来标识。本地文件系统每个Bucket在本地文件系统中表示为一个目录而对象则是该目录下的文件。这种设计简化了数据的管理和存储。
高可用性和扩展性
水平扩展MinIO支持水平扩展即通过增加更多的节点来增加存储容量和性能。这种扩展性使得MinIO能够处理大量数据和高并发请求。多租户支持MinIO支持多租户架构允许多个用户或服务共享相同的存储基础设施同时保持数据隔离。
兼容性
S3兼容APIMinIO完全兼容Amazon S3 API这使得现有的S3应用程序可以直接与MinIO交互无需修改代码。
安全性
认证和授权MinIO支持多种认证机制如IAMIdentity and Access Management用户认证以及通过证书或其他方式对数据进行加密传输。数据加密支持在传输过程中和静止状态下的数据加密以保证数据的安全性。
管理和监控
命令行工具CLI提供了强大的命令行工具使得用户可以方便地管理存储在MinIO中的对象。API和SDKs除了S3兼容的API之外MinIO还提供了多种编程语言的SDK以便开发者能够更容易地集成MinIO到他们的应用中。可视化界面虽然MinIO本身主要是一个命令行和API驱动的服务但它也支持通过第三方工具或插件提供图形化的管理界面。
minio扩容
MinIO的设计允许通过水平扩展来增加存储容量和提升性能。扩容通常意味着添加更多的节点到现有的MinIO集群中。以下是进行MinIO扩容的一般步骤
扩容前的准备
评估需求确定需要增加多少存储容量或者提高多少性能。规划布局根据需求确定需要添加的新节点数量以及它们将如何分配存储空间。备份数据在进行任何可能影响数据的操作之前最好先备份数据。
添加新节点
安装MinIO在新的服务器上安装MinIO。确保新服务器上的MinIO版本与现有集群版本相匹配。配置新节点设置新节点上的MinIO服务包括配置端点、访问密钥和秘密密钥等信息。
扩展存储
调整存储路径将新节点上的存储路径加入到MinIO集群中。如果是单机模式只需确保有足够的磁盘空间如果是分布式模式则需要将新的磁盘或服务器加入集群。更新集群配置如果使用的是MinIO的分布式模式那么需要更新集群配置来反映新的节点信息。
数据迁移
手动迁移数据如果是在同一个数据中心内可以通过直接复制文件的方式将数据迁移到新的存储位置。使用工具迁移数据可以使用mc命令行工具或者通过API调用来迁移数据。
测试和验证
测试新配置确保所有节点都能正常工作并且数据可以正确读写。监控性能检查扩容后的集群是否达到了预期的性能指标如IOPS、吞吐量等。
示例命令
假设你要在一个已经存在的MinIO集群中添加一个新的节点可以通过如下步骤
在新节点上安装并启动MinIO服务
minio server /path/to/new/data/folder --address :9000 --config-dir /etc/minio这里--address :9000指定了监听端口--config-dir /etc/minio指定了配置目录。
更新集群配置如果有需要
如果使用的是分布式模式可能需要编辑集群配置文件将新节点的信息添加进去。
使用mc工具测试数据迁移
mc cp -r /path/to/local/folder miniocloud/bucket/newpath这里miniocloud是一个预设的别名指向你的MinIO集群。
注意事项
一致性检查扩容后建议进行一致性检查确保所有副本都同步并且数据完整。监控工具使用监控工具来持续监控集群的健康状况和性能。安全性确保新加入的节点遵循相同的安全策略如身份验证、数据加密等。
扩容MinIO集群是一项技术要求较高的操作尤其是在生产环境中。务必谨慎行事并确保有详细的计划和应急措施。如果不确定如何操作可以参考MinIO官方文档或寻求专业的技术支持。
命令行
MinIO提供了命令行界面CLI使得用户可以方便地执行各种对象存储相关的任务如创建和删除存储桶buckets、上传和下载对象等。下面是MinIO CLI的一些常用命令及其简要说明。
基本配置
首先你需要配置MinIO客户端以连接到你的MinIO服务器。你可以设置环境变量或者直接在命令行中指定端点、访问密钥和秘密密钥。
设置环境变量
export MINIO_ACCESS_KEYyour_access_key
export MINIO_SECRET_KEYyour_secret_key
export MINIO_ENDPOINTminio_server_endpoint:port基本命令
连接到MinIO服务器
mc alias set myminio http://minio_server_endpoint:port your_access_key your_secret_key列出所有存储桶
mc ls myminio创建新的存储桶
mc mb myminio/mybucket删除存储桶
mc rb myminio/mybucket切换当前工作目录到指定存储桶
mc cd myminio/mybucket文件操作
上传文件到存储桶
mc cp /path/to/local/file myminio/mybucket/remote/path下载文件到本地
mc cp myminio/mybucket/remote/path /path/to/local/directory复制存储桶内的文件
mc cp myminio/mybucket/oldpath myminio/mybucket/newpath删除存储桶内的文件
mc rm myminio/mybucket/path/to/object目录操作
上传整个目录到存储桶
mc cp -r /path/to/local/directory myminio/mybucket/remote/path下载整个目录到本地
mc cp -r myminio/mybucket/remote/path /path/to/local/directory删除存储桶内的目录
mc rm -r myminio/mybucket/path/to/directory更多命令
列出存储桶中的所有对象
mc ls myminio/mybucket查看特定对象的信息
mc stat myminio/mybucket/path/to/object设置对象的元数据
mc setmeta myminio/mybucket/path/to/object --header X-Amz-Meta-Custom-Header: custom value获取对象的元数据
mc getmeta myminio/mybucket/path/to/object生成共享链接
mc presign myminio/mybucket/path/to/object启动MinIO服务器如果安装了MinIO服务端
minio server /path/to/data/folder --address :9000以上是一些基本的MinIO CLI命令示例。通过这些命令你可以执行大部分日常的对象存储操作。如果你需要更详细的功能介绍或者有特定的需求建议查阅官方文档获取最新的命令列表和参数选项。
相关文献
Mino对象存储系统官网