写在前面
给一个客户规划MetroCluster存储架构的扩容,其中涉及到了很多NetApp ONTAP存储系统的基本概念,客户总是搞不清楚,把这些基本概率梳理清楚了,我们才可以探讨设计,否则就是鸡同鸭讲。这个文章就是对NetApp的最底层的一些基本概念做了一个梳理。通俗解释NetApp的关键概念,包括RAID Group、Plex、Aggregate、Volume、LUN和Pool,并探讨它们之间的关系。
码字不易,欢迎点赞、转发、添加v:StorageExpert。下次更新不迷路。
RAID Group:数据保护的基础单元
这个和所有的存储系统一样,就是RAID 组,把一组磁盘按照某种raid来集合在一起。想象一下,你有几块硬盘,需要防止其中一块坏掉导致数据丢失。这就是RAID Group(RAID组)的角色。它是将多块磁盘组合成一个单元,使用RAID技术(如RAID-DP或RAID-TEC)提供冗余保护。RAID Group包括数据盘、奇偶校验盘(parity)和双/三重奇偶校验盘(dparity),当磁盘故障时,能自动重建数据。
- 关键特点:ONTAP推荐RAID Group大小为12-20块HDD或20-28块SSD,以平衡容量和重建时间。 RAID-DP(双奇偶校验)是默认选项,能容忍两个磁盘同时故障,而RAID-TEC(三重奇偶校验)适用于大容量磁盘(≥6TB),容忍三个故障。
这个是NetApp的特点,就是RAID group的宽度width可以随意指定,不像某些存储都是固定死的,比如RAID3+1,7+1等。NetApp是比较灵活的。
还有就是NetApp特有的raid技术,RAID-DP或者RAID-TEC。有机会再讲,你可以理解,就是一种很NB的raid技术。
- 在NetApp中的作用:RAID Group是存储保护的第一道防线,确保无中断数据访问。即使磁盘失败,系统也能从热备盘(hot spare)中自动替换并重建。
例如,一个小型RAID Group可能由3块磁盘组成(2数据+1奇偶),但实际数据聚合体通常有多个RAID Group以提升性能。
Plex:数据的镜像副本
Plex的概念主要用于镜像的场景,本地的mirror或者Metrocluster的场景。是Aggregate数据的物理副本,在未镜像Aggregate中,只有一个Plex(plex0);在镜像Aggregate(如使用SyncMirror)中,有两个Plex(plex0和plex1),实时同步数据。
- 关键特点:在MetroCluster配置中,plex0通常基于本地磁盘池(pool0),plex1基于远程磁盘池(pool1),实现跨站点冗余。如果一个Plex故障,另一个可无缝接管。
- 在NetApp中的作用:增强数据冗余,防止站点级故障。切换(switchover)时,远程Plex上线,确保零数据丢失。
Plex的命令如storage aggregate plex show用于查看状态,在MCC中尤为关键,因为它支持自动愈合(healing)过程。
如果客户没有使用MCC,可以暂时不考虑这个plex的概念。
Aggregate(聚合):物理存储池
Aggregate翻译为聚合,这个是最重要的一个概念,是ONTAP的核心物理存储单元,由一个或多个RAID Group组成,相当于一个大容量存储池。它可以是镜像的(mirrored,提供冗余)或未镜像的(unmirrored,更简单但风险更高)。其实你可以把这个理解为传统存储的pool。aggregate是属于某个node节点的。
- 关键特点:Aggregate类型取决于底层RAID Group,支持混合(hybrid)如SSD+HDD(Flash Pool)。它可以动态扩展,但缩小需移动数据。
- 在NetApp中的作用:为上层Volume提供空间和性能,支持数据分层和高效管理。在MCC中,镜像Aggregate确保跨站点同步,切换后远程Plex保持在线。
例如,一个Aggregate可能包含3个RAID Group,总容量数百TB,用于托管多个Volume。一套存储中可以包含多个aggregate,每个aggregate都是属于某个node的。
Volume(卷):逻辑数据容器
Volume是建立在Aggregate上的逻辑存储单元,用于存放文件或块数据。它支持FlexVol(灵活卷,支持快照、克隆)和FlexGroup(大规模分布式卷)。
- 关键特点:Volume可以厚配置(预分配空间)或薄配置(按需分配),支持NAS(NFS/CIFS)或SAN协议。在MCC中,Volume属于SVM(Storage Virtual Machine),自动镜像到伙伴站点。
- 在NetApp中的作用:Volume是用户可见的存储实体,提供快照、压缩等高级功能,便于数据管理和备份。
一个Aggregate可包含多个Volume,如根卷(root volume)和数据卷。
LUN(逻辑单元号):块存储接口
LUN是Volume内的逻辑块设备,主要用于SAN环境,向主机呈现为虚拟磁盘。它支持iSCSI或FC协议,类似于一个虚拟硬盘。
- 关键特点:LUN可空间预留或薄配置,避免放置在未镜像Aggregate上,以防切换中断>120秒。在ONTAP中,LUN大小上限为64TB。
- 在NetApp中的作用:为虚拟机、数据库等提供块级访问,支持LUN克隆和迁移,确保高性能存储。
一个Volume可包含多个LUN,但需匹配底层Aggregate的保护级别。
Pool(磁盘池):资源分组与热备
这个概念有点上头,aggregate是pool了,怎么又出来一个pool。Pool是物理磁盘的逻辑分组,包括数据盘和热备盘(hot spare)。简单理解一个pool就是flex的数据盘加上spare盘。在MCC中,Pool分为pool0(本地)和pool1(远程),支持SyncMirror镜像。
- 关键特点:Pool包含热备盘,用于自动替换故障磁盘。Flash Pool又是另外的概念,使用SSD池加速HDD Aggregate。搞不懂暂时别理解这个概念了。
- 在NetApp中的作用:提供磁盘分配基础,确保故障恢复。在MCC切换后,Pool所有权变更,支持愈合过程。
这些概念之间的关系:存储层次结构
NetApp存储架构是分层的,从物理到逻辑:
|--------|--------------|---------------------------------------------|
| 层次 | 组件 | 关系 |
| 物理层 | Disks / Pool | 磁盘分组到Pool(含热备),Pool提供资源给RAID Group。 |
| 保护层 | RAID Group | 多磁盘组成RAID Group,提供纠错;多个RAID Group组成Plex。 |
| 冗余层 | Plex | RAID Group形成Plex;镜像Aggregate有2个Plex(本地/远程)。 |
| 存储池层 | Aggregate | Plex组成Aggregate;Aggregate是Volume的基础。 |
| 逻辑层 | Volume | 在Aggregate上创建Volume;Volume存放文件或LUN。 |
| 访问层 | LUN | 在Volume内创建LUN,用于块访问。 |
写到最后
NetApp FAS存储系统ONTAP发展了估计有30年时间了,随时新技术的引入,ONTAP就衍生出新的技术,但是最底层的这些概念基本没有改变过,其实这也是这种存储非常稳定的原因之一。不像某些家的存储系统,每隔10年左右就全部推倒重来一遍,好不容易稳定了,又不要了,再搞一个新的,永远的不不稳定。