团队 / 介绍
我们是光大科技有限公司智能云计算部云计算团队容器云项目组,致力于容器技术在金融行业的落地与实践,以容器云助力金融行业科技转型。我们的团队拥有经验丰富的容器与云原生领域研发工程师和专家,将不定期分享容器和云原生行业的原创技术文章和实践经验,共同探索与见证云原生时代金融领域的前沿技术和发展趋势。
MinIO / 简介
MinIO是一个基于Apache License v2.0开源协议的高性能对象存储服务。它兼容亚马逊S3云存储服务接口,单个对象最大可达5TB,适合存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。
产品 特点
云原生
容器化、基于K8S的编排、多租户支持。
高性能
作为高性能对象存储,在标准硬件条件下它能达到183GB/s的读、171GB/s 的写速率。
高度可用
MinIO服务器可以容忍分布式设置中高达(N/2)-1个节点故障。而且,您 可以配置MinIO服务器在MinIO与任意Amazon S3兼容服务器之间存储数据。
可扩容
不同MinIO集群可以组成联邦,形成一个全局的命名空间,并跨越多个数 据中心。
Amazon S3兼容
MinIO使用Amazon S3 v2/v4 API。可以使用MinIO SDK、MinIO Client、AWS SDK和AWS CLI访问MinIO服务器。
可对接后端存储
除了MinIO自己的文件系统,还支持DAS、 JBODs、NAS、Google云存储和 Azure Blob存储。
Lambda计算
MinIO服务器通过其兼容AWS SNS/SQS的事件通知服务触发Lambda功能。支 持的目标是消息队列,如Kafka、NATS、AMQP、MQTT、Webhooks以及 Elasticsearch、Redis、Postgres和MySQL等数据库。
部署简单
只有一个可执行文件,参数极少,部署非常简单。如只需要一条命令:MinIO server /data,即可启动一个MinIO系统。
无元数据数据库
MinIO在带有本地驱动器的商品服务器上运行,集群中的所有服务器的功能均相同(完全对称的体系结构),没有名称节点或元数据服务器。MinIO将数据和元数据作为对象一起写入,从而无需使用元数据数据库。避免元数据库成为整个系统的性能瓶颈,并将故障限制在单个集群之内,而 不会涉及其他集群。
精细化修复
修复操作可以精细化到单个对象。
S3 Select支持
支持完整的AWS S3 SELECT SQL语法。支持所有运算符。支持所有聚合,条件,类型转换和字符串函数。对于超大的对象,可通过执行SQL语句以加速人工智能与大数据分析处理。
多语言客户端支持
提供JavaScript、Java、Python、Golang、.Net、Haskell多种语言的客户 端开发SDK。
操作系统支持友好
服务器端操作系统支持Linux、Unix、Windows、Max OS等主流操作系统。
高级 特性
MinIO的高级特性主要体现在数据的安全性和完整性。
数据安全
①用户身份管理
支持与OpenID connect规范,支持临时密码,支持高度细化的、可配置的访问策略。
②单写多读(worm)
启用此选项可开启“一次写入多次读取”,默认设置为关闭。该特性一旦开启,MinIO将禁止可能改变对象数据、元数据的所有API。
③加密和防篡改
MinIO为加密数据提供了机密性,完整性和真实性保证,而且性能开销微乎其微。使用AES-256-GCM,ChaCha20-Poly1305和AES-CBC支持服务器端和客户端加密。加密的对象使用AEAD服务器端加密进行防篡改。支持HashiCorp的秘钥管理解决方案。
数据完整
①持续备份
支持快速增量备份到NAS、公有云等。
②支持纠删码
针对CPU进行汇编级优化后的纠删码保护每一个对象。
③比特位保护
用户未知的情况下的静默错误/比特位衰减是磁盘的一个严重的问题。MinIO使用高度优化的HighwayHash算法保证从不读到错误的数据。
MinIO使用纠删码、Checksum来防止硬件错误和静默数据污染。在最高冗余度配置下,即使丢失一半数量(N/2)的磁盘也能恢复数据。
【补充阅读】
应用 场景
对象存储专为解决非结构化数据而来,提供低频存储(如应用与企业数据备份、监控数据、网盘应用)、镜像存储 、日志存储等核心功能及服务。
对象存储的规模大、容量可扩展、对公有云、私有云的兼容性好,另一方面是它更适合云原生的架构。单业务小文件多、容量要求大、大平台架构、混合云等场景可考虑应用对象存储。
此外,影像系统存储、互联网金融业务、归档备份、容器平台、大数据平台、机器学习存储等方面都是对象存储大有可为的场景。
我们的PaaS容器云平台存储使用minIO提供分布式对象存储服务,在minIO的基础上我们做一些改进,MinIO网关使用NAS存储支持Amazon S3。
目前minIO在容器云平台的应用场景包括承接内部离线镜像、yum源、python源,前端流水线更新(如内部安装docker,存放镜像的仓库需要用到minIO、nexus仓库、制品库、命令行下载应用,存放应用使用minIO、主机驱动的存放、harbor镜像仓库使用minIO、etcd的自动备份机制、流水线制品和日志的持久化)。
总 结
本篇文章只是针对对象存储MinIO的产品特点、高级特性、存储机制、应用场景等四个方面进行了初步的探索,如果在工作中使用到MinIO时,还需要对MinIO的运行模式、mc配置与管理、性能测试等方面进行深入的理解和实践。
作者 吴涛
留 言 板
往期回顾
Clickhouse实战之分布式集群方案
统一监控管理平台Prometheus驱动的实现
浅谈Go语言内存管理
设计模式在项目实战中的应用
微信公众号 | EBcloud
快来关注吧!
原创文章,作者:EBCloud,如若转载,请注明出处:https://www.sudun.com/ask/33211.html