MinIO 中的数据真实性和完整性
组织以巨大的规模和速度摄取、处理和分析数据。在一个典型的场景中,从多个来源收集的数据被推送到一个数据存储,在那里进行分析,用于机器学习训练,用额外的源数据丰富等等。当人们和应用程序使用数据时,数据可能会以多种方式被更改,但至关重要的是,每一方都必须确信他们正在使用真实的数据集。只有在整个数据生命周期中保持数据的真实性和完整性,才能实现这一点。
版本控制是确保数据真实性和完整性的关键组成部分。当团队处理数据时,会创建多个版本的数据文件。每个版本都可能很重要,因为它能够返回到进行特定更改之前的版本。版本可以同时用于不同目的或相互替换。由于数据清理、转换、丰富或为特定项目添加数据,不同版本可能包含不同的数据。
数据要有商业价值,关键是要跟踪不同版本的数据,了解每个版本的内容,确保有用,同时防止未经授权的修改或删除,确保真实。
通过以下机制的组合提供数据真实性和完整性:
纠删码
位腐保护
加密
数据不变性
版本控制
让我们看看其中的每一个,以了解 MinIO 如何将数据作为对象进行保护和版本控制。
纠删码
MinIO 在对象级别使用纠删码来保护数据免于丢失和损坏,这是数据真实性和完整性的两个严重风险。擦除编码将对象分解为数据和奇偶校验块,其中奇偶校验块支持重建丢失或损坏的数据块。数据和奇偶校验块分布在 MinIO 集群中的节点和驱动器上。使用 MinIO 的最高级别保护(8 奇偶校验或 EC:8),您可能会丢失多达一半的驱动器,但仍然可以恢复数据。
擦除编码非常适合典型的对象存储使用模式,即一次写入多次读取的不可变对象。MinIO 使用 Intel AVX512 指令充分利用跨多个节点的主机 CPU 资源进行快速纠删码读写。请参阅我之前的博客文章,对象存储纠删码与块存储 RAID,以更深入地解释 MinIO 如何实现纠删码。
当与 BitRot 保护相结合时,擦除编码可维护存储在 MinIO 驱动器上的对象的完整性和真实性。如果任何对象的任何版本被损坏,MinIO 都会修复它以继续为应用程序和用户提供可以信任的数据。
BitRot 保护
BitRot 或静默数据损坏可能对数据真实性构成严重威胁。BitRot可能由多种因素引起,例如电源电流尖峰、驱动器固件错误或其他驱动器错误。这些错误会造成严重的问题,因为它们是在用户不知情的情况下发生的。当确定数据已被泄露时,修复或重新生成数据可能为时已晚。
MinIO 使用HighwayHash 算法的优化实现即时捕获和修复损坏的对象。哈希在读取时计算并在应用程序写入时验证,以确保对象完整性,消除 BitRot 对数据真实性的风险。
加密
加密是数据真实性武器库的中流砥柱。当数据通过网络传输和存储在驱动器上时,MinIO 采用多层方法对数据进行加密。在数据通过网络传输时对其进行加密可保持数据在外部应用程序和 MinIO 之间以及 MinIO 集群内的节点之间发送时的机密性、真实性和完整性。MinIO 支持无处不在的传输层安全性 (TLS) v 1.2+来加密所有网络流量,维护端到端的安全性。
在向驱动器写入对象和从驱动器读取对象时,MinIO 使用经过身份验证的关联数据加密 (AEAD)来维护数据的机密性和真实性。AEAD 对纯文本数据进行加密和验证以生成密文和验证码。如果未经授权的访问破坏了数据,即使只是更改一位,解密和验证程序也会使用验证代码检测到修改。
MinIO AEAD 加密支持 AES-256-GCM 和 ChaCha20-Poly1305 等行业标准加密协议来保护对象数据。组织可以启用自动存储桶级加密,以便在对象存储写入或读取对象时加密/解密对象。结合 TLS,AEAD 加密可维护外部应用程序和 MinIO 之间、MinIO 集群内部和之间以及写入驱动器时的数据真实性。
不变性和防篡改
维护数据真实性的下一步是使用对象锁定、保留、合法保留、治理和合规性的组合来保护保存到 MinIO 的数据不被删除或修改。对象锁定与版本控制(下文)相结合,以确保数据不变性并完全消除数据篡改的风险。这些功能不仅可以保护数据完整性,还可以协同工作以建立证明数据真实性的审计跟踪。
对象存储保留规则保证对象在定义的时间段内受到 WORM 保护。对象存储保留策略可以在单个对象上设置,也可以通过存储桶默认设置继承。持续时间以天或年为单位设置,定义了对象版本及其相关元数据受到保护不被删除的时间长度。
此外,对象和存储桶受到额外的控制,这些控制结合在一起以确保数据的真实性。治理模式保护对象不被标准用户删除,并且需要提升权限才能更改保留策略或删除对象。合规模式更具限制性,可确保包括根用户在内的任何人都无法在对象保留期内删除对象。最后,Legal Hold 使用 WORM 保护无限期地保护对象,并且只能由授权用户删除。
MinIO 的对象存储保留和数据不变性已获得Cohasset Associates 的积极评估,特别是关于 SEC 规则 17a-4(f)、FINRA 规则 4511 和 CFTC 法规 1.31。规则 17a-4 对电子数据存储有具体要求,包括记录管理的许多方面,例如经纪交易商记录保留的持续时间、格式、质量、可用性和责任制。
版本控制
对象级版本控制是 MinIO 用来确保数据真实性的最后一个组件。版本控制提供数据保护,因为对象针对 Amazon 的 S3 结构和实施进行独立版本控制。MinIO 跟踪元数据中的版本,使用给定对象的每个版本的唯一 ID。通过指定版本 ID,应用程序可以访问给定对象的时间点快照。在较早的博客文章中,我解释了 MinIO 如何使用版本控制提供持续的数据保护。
版本控制将一个对象的多个变体保留在同一个存储桶中,并提供一种机制来保存、读取和恢复存储在存储桶中的每个对象的每个版本。这可以防止意外覆盖或删除,同时确保在对象的整个生命周期中保持数据真实性。
MinIO 的深度版本控制功能使多个用户和应用程序可以在不中断其他用户和应用程序的情况下使用数据对象。随着数据的转换、丰富和修改,每个版本都保持不变,并且可以证明真实性。
在我们信任的数据中
依靠数据做出明智决策的组织必须能够相信它是准确和及时的。数据真实性和版本控制确保每个数据集都是真实的并且具有可追溯的血统。MinIO 依靠功能组合来确保数据团队可以信任他们正在使用并输入模型的数据。
下载 MinIO并开始构建您的对象存储云。它简单明了,软件定义具有最大的灵活性,并且与 S3 API 兼容,因此它已为您的工作负载做好准备。任何问题?加入我们的Slack 频道或给我们留言:sales@minio.org.cn。