微信号:dellemc_tech

介绍:为戴尔易安信客户提供技术支持服务,为广大IT行业用户分享技术文章与行业信息。

SmartPools:数据位置,池相关性和用户定义的属性

2017-03-31 17:27 EMC中国技术社区

接下来的几篇系列文章中,我们将介绍SmartPools在数据位置,池相关性和用户定义属性方面的内容。

 

当SmartPools作业运行时,SmartPools会检查所有文件属性,并根据SmartPools策略列表进行检查。为了最大限度地提高效率,SmartPools的工作尽可能利用高效的并行元数据扫描(逻辑inode或LIN,树形扫描),而不是更昂贵的目录和文件遍历树。当部署SmartPools SSD元数据加速策略时,这更为有效。

 

SmartPools LIN树将扫描为每个节点分解的并行工作范围的元数据。然后,每个节点上的作业引擎管理器可以启动多个线程,以在其分配的范围上执行扫描。

 

SmartPools文件池策略引擎属于作业引擎的控制和管理。此过程的默认计划是每天下午10点,影响力低的政策。可以根据特定环境和工作负载手动配置和定制计划,优先级和影响策略。

 

OneFS按顺序将所有文件与文件池策略进行比较。当SmartPools文件池策略引擎找到文件和策略之间的匹配时,它将停止对该文件的处理策略,因为第一个策略匹配确定该文件将会发生什么。对于匹配的自定义策略未指定的任何属性,将应用默认策略中的值。显然,这使得File Pool策略的顺序很重要。如果两个或多个文件池策略与同一个文件匹配,则重要的是确保列表中所需的策略排序较高。因此,文件池策略可以轻松重新排序。

 

例如,以下CLI命令将“archive_old”这个文件池策略提升到列表的顶部:

 

#isi filepool policies modify archive_old --apply-order 1

 

与文件池策略发生文件匹配后,系统将使用匹配策略中的设置来存储和保护文件。

 

但是,匹配策略可能不会指定匹配文件的所有设置。在这种情况下,默认策略用于自定义策略中未指定的那些设置。对于存储在群集上的每个文件,系统需要确定以下内容:

 

  • 请求保护等级

  • 本地数据缓存的数据存储目标

  • SSD元数据和数据的策略

  • 本地数据缓存的保护级别

  • 快照配置

  • SmartCache设置

  • L3缓存设置

  • 数据访问模式

  • CloudPools动作(如果有)

 

如果没有文件池策略与文件匹配,默认策略将指定文件的所有存储设置。默认策略实际上匹配所有与其他SmartPools策略不匹配的文件。因此,默认策略是文件池策略列表中的最后一个策略,因此,始终是SmartPools应用的最后一个策略。

 

接下来,SmartPools将根据策略将分配的文件的当前设置来识别那些不匹配的设置。一旦SmartPools具有需要应用于该文件的设置的完整列表,它将同时设置它们,并移动以重新生成该文件,以反映对Node Pool,保护,SmartCache使用,布局等的任何和所有更改。

 

用户定义的属性可以在需要比使用标准文件属性选项(文件名,路径,文件类型,文件大小,修改时间,创建时间,元数据更改时间,访问时间)可以实现的更精细控制时使用。用户属性使用键值对来标记带有附加识别条件的文件,然后SmartPools可以使用它们来应用文件池策略。虽然SmartPools没有设置文件属性的实用程序,但可以通过使用'setextattr'命令轻松实现。

 

用户定义的文件属性通常用于指定所有权或创建项目亲和性。一旦设置,它们就被SmartPools所利用,就像文件名,文件类型或任何其他文件属性一样,用于指定匹配文件组的位置,保护和性能访问。

 

例如,以下CLI命令可用于在文件“attrib.txt”上设置和验证值为“val1”的属性“key1”的存在:

 

#setextattr user key1 val1 attrib.txt

#getextattr user key1 attrib.txt

file val1

 

可以从WebUI或CLI制作文件池策略,以匹配并对特定自定义属性和/或值执行操作。

 

例如,下面的文件策略将与自定义属性“key1 = val1”匹配文件,并将其移动到“Archive_1”层:

 

 

一旦集群的文件的一个子集已经用自定义属性标记,手动或作为自定义应用程序或工作流的一部分,则在下一次成功运行SmartPools作业时,它们将被移动到Archive_1层。

 

'isi get'CLI命令和WebUI的文件系统资源管理器都提供了SmartPools管理的数据和元数据在任何时候由实际的节点池位置,目标位置和管理文件池策略的详细视图。例如:

 

# isi get -D attrib.txt | grep -i pools

*  Disk pools:    

          policy any pool group ID -> data target s210_26tb_1.6tb-ssd_256gb:15(15),

          metadata target s210_26tb_1.6tb-ssd_256gb:15(15)

 

将数据写入集群时,SmartPools将其写入单个节点池。这意味着,在几乎所有情况下,文件的数据完整存在于节点池中,而不是跨节点池。

 

请记住,在OneFS下,数据和元数据单独存储。文件的inode将会在池的元数据策略所指定的地方生活。

 

SmartPools根据以下两种情况之一确定要写入的池:

 

  • 如果一个文件与基于目录路径的文件池策略匹配,则该文件将立即被文件池策略写入节点池。

  • 如果文件与基于除路径名称之外的任何其他条件的文件池策略匹配,SmartPools将将该文件写入具有最多可用容量的节点池。

 

如果文件与将文件池策略放在不同于最高容量节点池的节点池上的文件池策略匹配,则在下一个计划的SmartPools作业运行时将移动该文件池策略。

 

 

对于性能,收费,所有权或安全目的,有时在某个特定时间内确切了解特定文件或文件组在磁盘上的位置有时很重要。虽然SmartPools环境中的任何文件通常完全存在于一个存储池中,但是一次只能跨两个或多个节点池拆分单个文件(通常仅在临时的情况下),则有异常。

 

SmartPools通常只允许文件驻留在一个节点池中。但是,在某些情况下,文件可能暂时跨越多个节点池。鉴于此,值得一提的是,SmartPools提供数据分离,但不保证数据隔离。这有时可能是多租户背景下的重要区别。

 

当文件池策略规定文件从一个节点池移动到另一个节点池时,该文件将部分存在于源节点池上,部分存在于目标节点池上,直到移动完成。如果节点池配置已更改(例如,将节点池分为两个节点池),则可能会在这两个新池之间分割文件,直到下一个计划的SmartPools作业运行。如果节点池填满并且数据溢出到另一个节点池,以便集群可以继续接受写入,则可能会将文件拆分到预期的节点池和默认溢出节点池上。文件可能跨越多个节点池的最后情况是典型的重新启动活动,如跨节点池重新平衡或重建

 

原文作者:

Mohi Muhammed

Sr. Director, Enterprise Integration Services, Dell IT



更多精彩内容,请点击阅读原文”进行查看!

如何每天都能收到如此精彩的文章?

①点击右上角点击查看官方账号”→点击关注

②长按并识别下图中的二维码,直接访问EMC中文支持论坛


 
戴尔易安信技术支持 更多文章 这部看哭无数人的电影让小编想到一个词——Unity 老板让我干完这个月就辞职 特大号这篇文章让万千售前沸腾啦 VxRail打好基础,未来6000个VDI也毫不惧怕 三位20多年的IT老兵在聊存储,干货多,速来!
猜您喜欢 从容器到微服务,技术架构、网络和生态详解 Linux学习笔记:文件的权限 Subjects(一):Subject 概念和 RxJava 中的标准实现 技术大牛养成指南:吃的草够多,你也能成为大牛(附思维导图) ​IBM、Google、Oracle三巨头的公有云之殇(下)