目录
前言
随着数据的不断增长,对于访问、安全性和经济性进行优化的能力成为一项硬性要求,而不是一项附加可选项。这就是生命周期管理出现的原因。MinIO提供了一套独特的功能来保护间机房或跨机房的数据,这其中包括公有云和私有云。
本文将以如何设置对象过期做为切入点,结合数据转移至远程存储层的若干个场景,进一步说明对象生命周期的灵活性。
刚接触数据迁移(生成周期规则的Transition)时,以为设置规则并且达到迁移条件后文件会被迁移到远程存储层,之后的访问都是在远程存储层访问。经过几天的测试发现,迁移到新存储层(MinIO)的数据都是一些不规则命名,那要怎么访问它们呢,并且原存储层界面文件还在。后来通过查看原存储层的meta数据内容发现它保存了指向远程存储层文件的路径,这时我才明白文件迁移只是将原文件流转移到远程存储层,访问仍然是在原来的MinIO。
对象过期
- 数据不必永远存在:MinIO生命周期管理工具可以让我们定义数据被删除之前在磁盘上的保留时间。时间长度由用户定义为特定的天数。
- 生命周期管理规则默认应用到单个桶,并且可以使用前缀和标签过滤器的任意组合来构建。不指定过滤器即整个桶适用,也可以指定多个规则来制作更复杂的过期行为。
- MinIO对象到期规则也适用于版本化的存储桶,可以设置特定的版本规则。例如:我们可以仅对对像的非当前版本指定到期规则,以最大限度地复用对象版本控制的优势,而不会产生长期存储成本。所以,我们可以创建生命周期管理规则来删除历史版本还是当前版本的对象。
- 存储桶过期规则完全符合MinIO 的 WORM锁定和合法保持,处于锁定状态的对象保留在磁盘上,直到锁定过期或明确解除。一旦对象不再受锁定,MinIO就会开始正常应用到期规则。
- MinIO对象到期生命周期管理规则在功能和语法上与AWS 生命周期管理兼容。MinIO还支持以JSON格式导入现有规则,从而轻松迁移现有AWS到期规则。
远程存储层(Tiers)常用分层场景
MinIO可以以编程方式配置对象存储分层,以便对像根据任意数量的变量从一种状态转换到另一种状态,尽管最常用是访问时间和频率,在以下几个场景中可以很好的理解此功能。分层允许用户优化存储成本或功能,以应对不断变化的数据访问模式。分层数据存储一般用于以下场景:
跨存储介质
跨存储介质分层是最著名和最直接的分层场景。这种场景下,MinIO对底层磁盘进行了抽象,并针对性能和成本进行了共同优化。例如:数据可能存储在NVMe协议的SSD磁盘上,用于在乎访问性能的近线业务场景,但在一段时间后转移到HDD磁盘,用于在乎容量扩展但访问及时性没那么重要的业务场景。再之后,这些数据可以进一步迁移到类似于备份的长期存储中。
跨云类型
数据迅速增长的用例涉及使用公有云的廉价存储和计算资源作为私有云的另一层(不太适合公司场景)。在此用例中,使用适当的私有云存储执行以性能为导向的近线工作负载。数据量无关紧要,但数据本身以及性能却很重要。随着数据量的增加和访问频率预期的降低,企业可以使用公共云的低频存储来优化数据保留和数据访问的相关成本。
这是通过像在公有云一样使用私有云MinIO来实现的。启用ILM,MinIo可以将数据移动到廉价的公共云存储,并在必要时通过MinIO安全的访问公有云存储。在这种情况下,公有云存储成为MinIO的哑存储,就像JBOD成为MinIO的哑存储一样,这种方法可以避免自己维护过期的文件存储。
公有云
MinIO充当公有云中的主要应用程序存储层。在这种情况下,与其他场景一样,MinIO是应用程序访问的唯一存储。应用程序(和开发人员)不需要知道存储端点以外的任何东西。MinIO根据管理参数确定哪些数据属于哪里。例如:MinIO可以确定应该将哪些数据移动到对像层以及哪个对象层满足企业的性能和经济目标。
MinIO结合了不同的存储层,并确定了合适的介质,以在不影响性能的情况下提供更好的经济效益。应用程序只需通过MinIO处理对象,MinIO透明地应用策略在层之间移动对象并将该对象的元数据保留在块层中。
文件迁移实例
Tiers配置
关注237M2的远程存储层,它将接收文件迁移到tier02这个bucker,并使用bbb做为前缀,目前为止已经迁移了8个对象
生成周期管理配置
以tiertest为前缀文件保存1天后迁移到237m2远程存储层。
原始桶的tiertest前缀的文件目录
一共8个文件,存的全是meta元信息
远程存储层目录结构
一共8个文件,使用part.1存储了具体的数据信息,其中一个没有part.1 是因为它的文件太小了,在元信息里就可以表达完
原文件元信息内容
内容里保留了远程存的索引