Unity Storage中的FAST VP:如何工作

今天,我们将讨论在Unity / Unity XT存储系统中实现的一项有趣的技术-FAST VP。如果您是第一个听说过Unity的人,那么本文结尾处的链接将使您熟悉该系统的特性。作为Dell EMC项目团队的一部分,我从事FAST VP已有一年多的时间。今天,我想更多地谈论这项技术,并揭示其实施的一些细节。当然,只有那些被允许透露的内容。如果您对有效数据存储的问题感兴趣,或者还没有完全弄清楚文档,那么本文无疑将是有用和有趣的。



我必须马上说说材料中不会出现的内容。不会寻找竞争对手并与他们进行比较。我也不打算谈论来自开源的类似技术,因为好奇的读者已经知道它们。而且,当然,我不会做任何广告。

存储分层。FAST VP的目标


FAST VP代表虚拟池的全自动存储分层。复杂吗?没什么,现在我们来解决。分层是一种组织数据存储的方式,其中存储了多个级别(层)的数据。每个都有自己的特点。最重要的:信息单元的性能,数量和价格。当然,它们之间有关系。

分层的一个重要特征是,无论数据当前处于什么存储级别,都统一提供对数据的访问,并且池大小等于其中包含的资源大小的总和。这是与缓存的区别:缓存的大小未添加到资源的总量(在这种情况下为池),并且缓存数据将在主介质上复制一些数据(或者如果尚未写入缓存中的数据则将复制)。而且,按级别分布的数据对用户是隐藏的。也就是说,尽管他可以通过设置策略(稍后再讨论)来间接影响数据,但他看不到每个级别上的数据类型。

现在让我们看一下Unity中存储分层实现的功能。Unity区分3个级别,即“ tiera”:

  • 极限性能(SSD)
  • 性能(SAS HDD 10k / 15k RPM)
  • 容量(NL-SAS HDD 7200 RPM)

它们以性能和价格的降序排列。出色的性能仅包括固态驱动器(SSD)。在另外两个层-磁盘驱动器中,其转速和性能有所不同。

一种级别和一种大小的存储介质被组合到一个RAID阵列中,形成一个RAID组(简称RAID组-RG);可用和推荐的RAID级别可在官方文档中找到。从一个或多个级别的RAID组中,形成存储池,然后从中分配可用空间。并且已经从池空间中为文件系统和LUN分配了空间。



为什么需要分层?


简而言之:使用最少的资源即可取得更大的效果。更具体地说,通常将结果理解为存储系统的一组特性-速度和访问时间,存储成本等。最少的资源意味着最少的成本:金钱,能源等。 FAST VP只是在Unity / Unity XT存储系统中的不同级别上实现数据重新分配机制。如果您相信我,则可以跳过下一段。其余的我会告诉你更多。

按存储级别正确分配数据,可以通过牺牲对一些很少使用的信息的访问速度来节省总的存储成本,并可以通过将常用数据移动到更快的存储介质来提高生产率。在这里,有人可能会争辩说,即使不进行分层,普通管理员也知道在哪里放置什么数据,任务所需的存储特性等。毫无疑问,这是正确的,但是手动数据分发有其缺点:

  • 这需要管理员花费时间和精力;
  • 并非总是可以“重绘”存储资源以适应不断变化的情况;
  • 一个重要的优势消失了:统一访问位于不同存储级别的资源。

为了使存储管理员不必担心工作安全性,我还要补充说,有必要进行有效的资源规划。现在,简要概述了分层的任务,让我们看看您对FAST VP的期望。现在是时候返回定义了。前两个词-完全自动化-字面翻译为“完全自动化”,表示级别的分布是自动发生的。嗯,虚拟池是一个数据池,其中包含来自不同存储级别的资源。看起来是这样的:

图片

展望未来,我将说FAST VP仅在一个池中而不是在多个池之间移动数据。

FAST VP解决的任务


首先让我们抽象地讨论。我们有一个池和一些可以在此池内重新分发数据的机制。记住我们的任务是实现最高性能,我们问自己:以什么方式可以实现?可以有几种,FAST VP在这里可以为用户提供一些东西,因为该技术不仅仅是存储分层。以下是FAST VP可以提高池性能的一些方法:

  • 按不同类型的磁盘,级别分配数据
  • 在相同类型的驱动器之间分配数据
  • 池扩展数据分发

在分析如何解决这些任务之前,我们需要了解有关FAST VP工作的一些必要事实。 FAST VP使用一定大小的块-256 MB进行操作。这是可以移动的最小连续数据块。在文档中称为:切片。从FAST VP的角度来看,所有RAID组都由一组这样的“部分”组成。因此,将为此类数据块累积所有I / O统计信息。为什么选择此块大小并将其减小?块足够大,但这是数据粒度(较小的块大小-更确切地说是分布)和可用的计算资源之间的折衷:在对RAM和大量块的现有严格限制下,这些统计信息可能占用过多的空间,并且计算数量将成比例增加。

FAST VP如何将数据放入池中。政客


要控制启用了FAST VP的池中的数据放置,存在以下策略:

  • 最高可用层
  • 自动层
  • 从高开始然后是自动分层(默认)
  • 最低可用层

它们会影响块的初始位置(首先记录数据)和随后的重新分配。当数据已经位于磁盘上时,将根据计划或手动启动重新分配。

最高可用层试图将新块置于最高生产力水平。由于空间不足-在下一个性能级别,但是可以将数据移到更高的生产率级别(如果有空间或排挤其他数据)。 Auto-Tier根据可用空间的大小将新数据放置在不同的级别,然后根据需求和可用空间重新分配它们。从“高”开始,然后“自动分层”是默认策略,也建议使用。在最初放置时,它用作最高可用层,然后根据其使用情况统计信息移动数据。最低可用层策略旨在将数据置于生产效率最低的级别。

数据传输以低优先级执行,以免干扰存储系统的有用工作,但是有一个“数据重定位速率”设置可以更改优先级。有一个特点:并非所有数据块都具有相同的重新分配顺序。例如,标记为元数据的块将首先移至更快的级别。可以说,元数据是“关于数据的数据”,不是用户数据而是存储其描述的一些附加信息。例如,文件系统中有关特定文件所在块的信息。这意味着对数据的访问速度取决于对元数据的访问速度。鉴于元数据的大小通常要小得多,因此转移到生产效率更高的磁盘中有望获得更多收益。

Fast VP在工作中使用的标准


每个块的主要标准(如果非常粗糙的话)是数据“需求”的特征,它取决于数据片段的读写操作数。该特性称为“温度”。有比未声明的要热的热门数据。它是定期计算的,默认间隔为一小时。

温度计算功能具有以下特性:

  • 在没有I / O的情况下,数据会随着时间“冷却”。
  • 在时间上大致相同的负载下,温度首先升高,然后稳定在一定范围内。

此外,还要考虑上述策略和每层的可用空间。为了清楚起见,我将提供文档中的图片。在这里,红色,黄色和蓝色分别表示高温,中温和低温的块。

图片

但是回到任务。因此,我们可以开始分析解决FAST VP问题所采取的措施。

A.按不同类型的磁盘,级别分配数据


实际上,这是FAST VP的主要任务。从某种意义上讲,其余都是从中衍生出来的。根据选择的策略,数据将分布在不同的存储层中。首先,考虑放置策略,然后考虑块温度和RAID组的大小/速度。

对于最高/最低可用层策略,一切都非常简单。对于其他两个,就是这种情况。在不同的级别上,数据的分配要考虑到RAID组的大小和性能:因此,块的总“温度”与每个RAID组的“有条件的最大性能”之比大致相同。因此,负载或多或少均匀地分布。需求更多的数据将传输到很少使用的快速载波,而传输到速度较慢的载波。理想情况下,分布应该是这样的:

图片

B.在相同类型的磁盘之间分配数据


还记得最初写的时候,一个或多个级别的信息载体被合并到一个池中吗?对于FAST VP的单个级别,也可以进行工作。为了在任何级别上最大化性能,建议在磁盘之间平均分配数据。从理论上讲,这将允许获得最大数量的IOPS。可以将RAID组内的数据视为均匀分布在磁盘之间,但是在RAID组之间却并非总是如此。如果出现不平衡情况,FAST VP将根据RAID组的大小和“条件性能”(以数字形式)成比例地在RAID组之间移动数据。为了清楚起见,我将显示三个RAID组之间的重新平衡方案:

图片

B.池扩展期间的数据分发


此任务是上一个任务的特殊情况,是在将RAID组添加到池中时执行的。为了使新添加的RAID组不处于空闲状态,部分数据将被传输到其中,这意味着将重新分配所有RAID组上的负载。

SSD磨损均衡


通过损耗均衡,FAST VP可以延长SSD的寿命,尽管此功能与存储分层没有直接关系。由于已经存在温度数据,因此还考虑了写入操作的数量,因此我们可以移动数据块,FAST VP解决此问题将是合乎逻辑的。

如果一个RAID组中的记录数大大超过了另一个RAID组中的记录数,则FAST VP将根据写操作数重新分配数据。一方面,这消除了负载并节省了某些磁盘的资源;另一方面,它为负载较少的磁盘添加了“工作”,从而提高了整体性能。

因此,FAST VP承担了存储分层的传统任务,并且做得更多。所有这些使您可以有效地将数据存储在Unity存储系统系列中。


  1. . best practices, . , , , . .
  2. FAST VP, . , . .
  3. . , Unity .
  4. , . , FAST VP . , . , 2.
  5. FAST VP, . RAID- , . «» . , «» , . , , , , . , FAST VP, .

如果您仔细看一下该产品,则可以通过下载Unity VSA虚拟设备免费试用Unity。



在本文的结尾,我分享了一些有用的链接:


结论


我想写很多东西,但是我知道并不是所有的细节都会引起读者的兴趣。例如,您可以更详细地说明FAST VP决定传输数据的标准以及有关分析I / O统计信息的过程。而且,与动态池进行交互的主题完全不会受到影响,这引出了另一篇文章。您甚至可以梦想该技术的发展。我希望这不会很无聊,我也不会让你无聊。再见!

All Articles