1 背景
Netapp存储初始化时要做“分盘”,也就是对物理磁盘如何编组以及如何交由控制器管理做方案做规划。
其中控制器也可称为节点,是一个物理设备,也是存储的核心部件。正常情况下,一台存储由两个组成HA的控制器,以及若干盘柜组成。两台控制器均能识别到所有的盘柜中的磁盘,如下图所示。
Netapp存储空间交付前端主机使用之前,大致会经过磁盘初始化,磁盘做Raid,做聚合,从聚合中划分Volume,设定Volume的属性信息等几个步骤。
本文主要介绍存储底层配置部分——配置Raid和Aggregate。
2 目标
Netapp存储划分磁盘的关键特点是磁盘有归属,聚合及组成聚合的磁盘是归节点01管理,还是归节点02管理,是需要定义清楚的。
这样就形成了一个现象,那就是:即便是构成同一台存储中的两个HA(High Availability)控制器,平时也像是独立的设备一样各管各的盘,各做各的事,只有故障时才会出现一台控制器接管另一台的业务。
2.1 确认资产
确认待配置的存储有多少控制器、磁盘柜和磁盘。
无论是哪种架构,要处理的是同一个问题——每个单独控制器管理哪些磁盘。
2.2 完成范例
假设现在我们有一台2节点的存储,和一些磁盘,分配好的例子如下图:
表中的重要信息有:聚合名称、聚合和节点的对应关系,每个聚合包含的磁盘数等。
2.3 基本规则
- 聚合必须分配给唯一控制器(节点)管理。
- 控制器管理聚合时才有负载。不管理聚合则没有负载。
- 聚合中业务读写的繁忙程度决定控制器负载大小。
因此来说,我们分盘的时候,总是希望能把两个节点都用起来。同时负载尽量均衡,包括读写操作的均衡,以及空间占用的均衡。
下面我们具体来看一下有哪些需要考虑的因素。
4 考虑因素
4.1 磁盘类型
如果存储中有多种规格的磁盘,需按规格区分。区分标准是类型和转速,不是容量。因此,相同转速的SAS盘或SATA盘、SSD盘分别构成一类,不同类别的磁盘不能混搭组合。
磁盘IOPS参考数值如下。
2.5" 10,000 rpm SAS 113 IOPS
2.5" 15,000 rpm SAS 156 IOPS
3.5" 15,000 rpm SAS 146 IOPS
2.5" 5,400 rpm SATA 71 IOPS
3.5" 7,200 rpm SATA 65 IOPS
4.2 Raid
磁盘不能直接分配给聚合,因此需要先把磁盘组成Raid Group。再把一个或多个Raid Group组成聚合。如果聚合由多个Raid组组成,每个Raid组的盘数最好相同,或者是相近,这样能达到性能最优。
上图中,我们能看到一个磁盘聚合——aggr_data2,它由92块磁盘组成,Raid模式为RAID_DP。
点到磁盘信息,图中共列出了三块磁盘,最后一列显示它们的RAID组。均属于rg0(即Raid Group0),其实继续下拉,还会出现rg1、rg2、rg3的磁盘。这个聚合中共有4个Raid Group,每个Raid Group由23块磁盘组成。
Netapp存储能配置的Raid模式有三种。分别是Raid-DP、Raid4、Raid-TEC。
磁盘绝大多数情况下都做成Raid-DP的。Raid-DP是Netapp所开发的非标准的Raid等级技术,包含两块校验盘。做系统盘的时候最少只需要3块盘,做数据盘的时候最少7块左右,最大可支持28块磁盘(26+2)。
我遇到过的Raid-DP通常由18-23块磁盘组成。
4.3 系统盘
Netapp存储是需要安装操作系统的。系统盘是否需要占用单独磁盘,会影响到磁盘划分方案。
传统方法是在专门的Raid Group中部署操作系统。这样就会有一部分磁盘分配给系统使用。
现在了解到,Netapp推出了 ADP(Advanced Disk Partition)高级磁盘分区功能对这种情况进行了改进。启用这种功能后,不再需要占用专属磁盘来安装系统。它的做法是选取一个Raid Group,把其中所有磁盘做切片,从切片后的磁盘中,选取一定数量来装系统。剩下的空间仍然可以作为数据空间使用,如下图所示。
右边启用了采用ADP功能,RaidGoup1中的每块磁盘都做了切片,被分成大小不同的两片。取多块小的切片来做系统,剩下的切片仍可存储数据,资源利用率最优。
举个具体的例子。把24块450GB的磁盘切片,每个磁盘的实际可用空间分为两部分,一部分是23.39G大小,用于系统,一部分是395.61G大小,用于数据,如下图。
Aggr 名称 | Aggr类型 | Raid size | Disk count | Disk type | Size |
---|---|---|---|---|---|
aggr0_FAS8300_01 | node root | 10*1 | 10 | 23.39G(切片) | 159.9GB |
aggr0_FAS8300_02 | node root | 10*1 | 10 | 23.39G(切片) | 159.9GB |
注意,目前ADP功能除了可以用于单台存储,还可以用于IP方式的MCC(MetroCluster)双活架构,但仅限于AFF全闪型号。
4.4 热备盘
当Raid Group中有磁盘损坏时,如果节点中配置了热备盘,那么可以立即顶替损坏的磁盘同步数据,降低业务风险。运维人员后续只要更换损坏的磁盘,再把它设置为热备盘就可以了。
热备盘平时不承载业务,它的数量除了影响系统健壮性,还会影响到最终可用空间,因此也是分盘时的考虑点。
关于热备盘,还有几个规则值得注意:
- 热备盘作用范围是全局,即:单个节点内,不同的聚合可以共享热备盘。
- 可以在控制台或命令行将热备盘手动更改节点,以提供更高的灵活性。
- 只能大顶小,不能小顶大。450G的热备盘不能顶替损坏了的600G磁盘。同理,做过ADP的磁盘实际空间变小,不能顶替和它原始大小相同的磁盘。
- 大顶小有空间损失。600G磁盘如果顶替损坏的450G磁盘,可用空间就只有450G。系统默认以相同规格的热备盘顶替。
下图是一个例子,可以看到,节点01上有6块不同大小的热备盘,分别是,600G磁盘、450G磁盘、450G切片磁盘。
4.5 业务需求
业务需求会影响到分盘方案。常见思路是把业务的IOPS、空间需求等,和Aggr的性能容量做匹配。
4.6 存储技术方案
采用不同的存储技术方案也可能会产生影响,有些方案会要求两个节点协同,这样会对分盘规则提出要求或制约。
5 规划案例
5.1 案例一
综合上面介绍的所有考虑点形成的一个规划案例如下图。(其中淡色表示热备盘)。
简单说明一下。在这套存储中,我们使用了ADP切片技术,24块小切片,两个存储节点各用10片做系统,以及2片做热备。
Aggr1和Aggr2均由4个大小相同的Raid Group组成,使用了23块盘的Raid-DP。混搭450G和600G的10K转速SAS盘。每聚合配置2块450G热备,2块600G热备。
节点01上,还有一个单独的Aggr3聚合,使用450G磁盘ADP切片后的磁盘构建,22块盘构成RAID-DP,2块做热备。
可能会产生一个疑问,既然存储节点都是独立的,为什么需要有Aggr3呢,把这些盘合并到Aggr1中不行吗?这是因为在这个项目中计划使用FlexGroup技术,它就要求两个节点有对称的Aggr。关于这项技术,以后会专门介绍。
5.2 案例二
在MCC双活场景下,会多一个概念叫Plex,现在中文管理界面内翻译为丛。
简单理解,在双活存储中,聚合有启用和备用两种状态,分别对应plex0和plex1。plex0位于本地站点,plex1位于对端站点,它们都需要有相应的聚合和磁盘承载,且完全相同。
分盘时的考虑内容和单存储情形下是相似的。简单描述一下差异部分。
通常会把业务在两个站点进行分配。不会有站点全是跑Plex0,而另一个业务全是Plex1。
假设每个站点有两个节点,那么分盘情况可能是这样。
其中,aggr1和aggr3可能是等量的相同SSD盘,aggr2和aggr4可能是等量的相同SAS盘。如果结合业务,SSD和SAS 的压力不相同,SAS压力很大,那么还可以进一步切分。如下图。
当然,这种情况下,聚合数量变多,会造成管理复杂度提升。另外,聚合中盘数减少,也会使读写能力下降,好处则是控制器更均衡。