当前位置: 首页 > news >正文

NetApp高级磁盘分区(ADP)和常用维护命令介绍

写在前面

为什么要写这篇文章,近期越来越多的碰到NetApp FAS存储磁盘配置为ADP的case,很多工程师对ADP没有任何概念,完全套用老的磁盘的概念来处理ADP的配置,所以搞出很多问题。

NetApp高级磁盘分区(Advanced Disk Partitioning, ADP)是ONTAP 9中的一项磁盘管理技术,其实最早在8.3.1版本中就有了,但大规模使用这个技术是在ONTAP 9.0版本以后。通过将物理磁盘划分为逻辑分区来提高存储效率。说直白点,这个技术的引入是为了解决NetApp的“得盘率”低的弱项,尤其是客户配置磁盘比较少的情况下,实际可用空间和物理空间相比友商低很多的问题。这是由于NetApp的每个机头,就是控制器至少需要3个磁盘来做系统盘。可以想象一下,如果客户就配置了12个大容量的磁盘,2个控制器就是6个磁盘拿来做系统了,数据盘只剩下6个,而且这6个里面还要有校验parity磁盘和spare磁盘,最后基本上就没有可用空间了。有了ADP技术,就解决了这个问题,就是把每个物理磁盘中分出一部分来专门做系统盘的分区,剩余部分做数据盘。

本文档介绍了DP的定义、功能,详细说明了ADPv1(根 根-数据分区)和ADPv2(根-数据-数据分区)的规则,包括分区类型、平台支持、RAID类型和备用SPARE磁盘要求,并提供了一些常用维护命令的格式和说明,包括识别分区和备用分区的命令等。

如果还有进一步的问题,可以添加vx: StorageExpert我们来进行进一步的交流和沟通。

ADP概述

高级磁盘分区(Advanced Disk Partitioning, ADP)是NetApp ONTAP 9的一项新功能,允许将物理磁盘划分为逻辑分区,以优化磁盘利用率,特别适用于中小型系统(如12或24 个HDD的FAS系统和全闪存AFF系统)。每个磁盘被分为根分区(用于节点根聚合root aggregate)和一个或多个数据分区(用于用户数据聚合 data aggregate)。ADP支持两种配置:

  • ADPv1(根-数据分区):每个磁盘包含一个数据分区(P1)和一个根分区(P2),主要用于FAS系统。
  • ADPv2(根-数据-数据分区):每个磁盘包含两个数据分区(P1、P2)和一个根分区(P3),适用于初始化为ONTAP 9.0或更高版本的AFF全闪存FAS系统。

ADP关键规则

分区类型与数量

  • ADPv1
    • 1个数据分区(标记为P1)。
    • 1个根分区(标记为P2)。
  • ADPv2
    • 2个等大小的数据分区(标记为P1和P2)。
    • 1个根分区(标记为P3)。

支持的平台与磁盘类型

  • FAS系统(支持ADPv1
    • 磁盘类型:HDD、SSD。
    • 系统初始化时最大分区磁盘数:24。
    • 支持的RAID类型:RAID-TEC、RAID-DP。
  • AFF和全SSD FAS系统(支持ADPv2,需ONTAP 9.0及以上初始化)
    • 磁盘类型:仅SSD。
    • 系统初始化时最大分区磁盘数:每节点24。
    • 支持的RAID类型:RAID-TEC、RAID-DP、RAID4(ONTAP 9.5及以上)。
    • 注意:ADPv2不支持混合SSD/HDD配置。

分区大小

分区大小在系统初始化时确定。

HA对中最大分区磁盘数量

  • ONTAP 9.14.0及以上:每个HA对最多支持480个分区磁盘。
  • 之前版本:每个HA对最多支持240个分区磁盘。

根分区使用

  • ADPv1:根分区仅用于节点根聚合(root aggregate)。
  • ADPv2:根分区仅用于节点根聚合,但两个数据分区可用于同一聚合,前提是每个分区位于不同的RAID组。

分区与container(磁盘)所有权(ownership)

  • ADPv1
    • 同一节点拥有容器(整个磁盘)及其分区(P1和P2)。
  • ADPv2
    • 一个节点拥有容器、根分区(P3)和第一个数据分区(P1)。
    • HA对中的另一个节点拥有第二个数据分区(P2)。

自动分区支持

ONTAP支持自动分区,但新添加的磁盘有可能不会自动分区,这个需要注意,如果没有自动分区,需要手工去处理的。

备用磁盘要求

  • 仅使用分区磁盘的聚合
    • 每个HA对需要1个完整的HDD作为备用磁盘(可分区,但两个分区都需作为备用)。
  • 混合分区和整盘的聚合
    • 每个节点需要2个完整的备用磁盘,确保分区磁盘RAID组和整盘RAID组各有备用。
  • ADPv2特定要求
    • 每个HA对需要1个完整的备用磁盘(可跨节点分区)。
    • 每个节点需要1个完整的备用磁盘,确保分区和整盘RAID组都有备用。

注意事项

  • 不支持的RAID类型更改
    • 尝试更改为不支持的RAID类型(如RAID4)会报错,例如:

        Error: command failed: Failed to modify raidtype of aggregate "aggr0".

Reason: Change to raidtype RAID4 is not supported.

  • 混合配置限制
    • 不支持在同一RAID组中混合分区磁盘和整盘。
    • 不支持ADPv2在混合SSD/HDD配置中运行。

常用维护命令

以下是与ADP相关的常用ONTAP命令,用于查看分区状态、管理分区、检查备用磁盘以及识别分区和备用分区。这些命令在ONTAP命令行界面(CLI)中执行。

1. 查看磁盘分区状态

  • 命令:disk partition show
  • 用途:显示系统中所有磁盘的分区信息,包括分区类型(根分区或数据分区)、所有者和大小。
  • 示例

cluster1::> disk partition show

Disk      Partition  Node        Type      Size       Owner

--------  ---------  ----------  --------  ---------  ------------

1.0.0     P1         node1       data      1.8TB      node1

1.0.0     P2         node1       root      100GB      node1

1.0.1     P1         node1       data      1.8TB      node1

1.0.1     P3         node1       root      100GB      node1

  • 说明:检查ADPv1(P1、P2)或ADPv2(P1、P2、P3)分区的配置是否正确。

2. 检查备用磁盘和分区

  • 命令:storage disk partition show -spare
  • 用途:列出系统中可用的备用分区和磁盘,确保满足ADP的备用磁盘要求。
  • 示例

cluster1::> storage disk partition show -spare

Disk      Partition  Node        Type      Size       Owner

--------  ---------  ----------  --------  ---------  ------------

1.0.2     P1         node1       data      1.8TB      node1

1.0.2     P2         node1       root      100GB      node1

1.0.3     -          node2       spare     1.8TB      node2

  • 说明:显示分区级别的备用状态,适合验证分区磁盘和整盘的备用情况。也可使用disk show -spare查看整盘备用状态。

3. 手动分区新磁盘

  • 命令:disk partition -disk <disk_name> -partition-type <type>
  • 用途:手动对新添加的磁盘进行分区(当自动分区未触发时)。
  • 示例

cluster1::> disk partition -disk 1.0.4 -partition-type data

说明:将磁盘1.0.4分区为数据分区。

4. 修改聚合RAID类型

  • 命令:aggr modify -aggregate <aggr_name> -raidtype <raid_type>
  • 用途:更改聚合的RAID类型(如从RAID-DP到RAID-TEC)。
  • 示例

cluster1::> aggr modify -aggregate aggr0 -raidtype raid_tec

说明:确保目标RAID类型受支持(例如,RAID4仅在ADPv2且ONTAP 9.5及以上支持),否则会报错。

5. 查看聚合中的分区使用情况

  • 命令:aggr show -fields disklist,raidtype
  • 用途:显示聚合中使用的磁盘或分区及其RAID类型。
  • 示例

cluster1::> aggr show -fields disklist,raidtype

aggregate  disklist                raidtype

---------  ----------------------  --------

aggr0      1.0.0.P1, 1.0.1.P1     raid_dp

说明:确认聚合是否正确使用分区磁盘,以及RAID组配置是否符合规则。

6. 从聚合级别查看分区信息

  • 命令:storage aggregate show-status
  • 用途:显示聚合的状态,包括使用的分区磁盘、分区大小和RAID配置。
  • 示例

cluster1::> storage aggregate show-status -node cluster1-01

Owner Node: cluster1-01

Aggregate: aggr0_cluster1_1 (online, raid_dp) (block checksums)

    Plex: /aggr0_root_1b/plex0 (online, normal, active, pool0)

    RAID Group /aggr0_root_1b/plex0/rg0 (normal, block checksums)

    Position  Disk       Pool Type  RPM  Usable Size  Physical Size  Status

    --------  ---------  ---- ----  ---  -----------  -------------  ------

    shared    1.10.6     0    SSD   -    53.88GB      372.6GB        (normal)

    shared    1.10.8     0    SSD   -    53.88GB      372.6GB        (normal)

    Aggregate: aggr1 (online, raid_dp, pool0)

    Position  Disk       Pool Type  RPM  Usable Size  Physical Size  Status

    --------  ---------  ---- ----  ---  -----------  -------------  ------

    shared    1.10.1     0    SSD   -    159.2GB      372.6GB        (normal)

    shared    1.10.3     0    SSD   -    159.2GB      372.6GB        (normal)

  • 说明:Position列中的shared表示磁盘已分区。根聚合和数据聚合的分区大小在Usable Size列中不同(例如,根分区较小,数据分区较大)。

7. 查看整盘和分区备用磁盘

  • 命令:storage aggregate show-spare-disks
  • 用途:显示整盘和分区备用磁盘的状态,区分未分区磁盘(Spare Pool)和分区备用磁盘(Root-Data或Root-Data-Data)。
  • 示例

cluster1::> storage aggregate show-spare-disks -original-owner cluster1-01

Original Owner: cluster1-01

Pool0

Spare Pool Unpartitioned Spares

Disk      Type  Class         RPM  Usable Size  Physical Size  Status

--------  ----  ------------  ---  -----------  -------------  ------

1.10.2    SSD   solid-state   -    372.4GB      372.6GB        zeroed

1.10.7    SSD   solid-state   -    372.4GB      372.6GB        zeroed

Pool0

Root-Data Partitioned Spares

Disk      Type  Class         Local Data  Local Root  Physical Size  Status

--------  ----  ------------  ----------  ----------  -------------  ------

1.10.1    SSD   solid-state   159.2GB     0B          372.6GB        zeroed

1.10.3    SSD   solid-state   159.2GB     0B          372.6GB        zeroed

  • 说明:显示未分区整盘(Spare Pool)和分区备用磁盘(Root-Data或Root-Data-Data),包括数据分区和根分区的大小。

8. 查看磁盘的容器类型和位置

  • 命令:storage disk show -fields container-type,container-name,model,type
  • 用途:显示磁盘的容器类型(整盘或分区)及其所在聚合或备用池。
  • 示例

cluster1::> storage disk show -fields container-type,container-name,model,type

disk    container-type  container-name         model                type

------  --------------  ---------------------  -------------------  ----

1.10.2  spare          Pool0                  X438_1625400MCSG     SSD

1.10.1  shared        aggr1, aggr0_root_1a   X438_1625400MCSG     SSD

1.10.22 shared         -                      X438_1625400MCSG     SSD

  • 说明:container-type为spare表示未分区整盘,为shared表示已分区。container-name显示分区所属的聚合名称,或“-”表示所有分区都在备用池。

9. 确定分区名称

  • 命令:storage disk partition show -container-type spare -node <node_name>
  • 用途:在诊断模式下显示备用分区的详细信息,适用于排查低备用警告。
  • 示例

cluster1::*> storage disk partition show -container-type spare -node cluster1-01

Partition      Usable Size  Container Type  Container Name  Owner

-------------  -----------  --------------  --------------  ------------

1.10.1.P2      159.2GB      spare           Pool0           cluster1-01

1.10.3.P2      159.2GB      spare           Pool0           cluster1-01

1.10.8.P2      159.2GB      spare           Pool0           cluster1-01

  • 说明:用于确认备用分区的名称和所有者,特别是在storage aggregate show-spare-disks显示磁盘可用但仍报低备用警告时。

实际应用注意事项

  • 查询分区大小:分区大小因平台和ONTAP版本而异,具体信息可以查询官网。
  • 错误处理:如尝试更改RAID类型失败,需检查目标RAID类型是否在支持列表中。
  • 备用磁盘规划:规划系统时,需确保足够的备用磁盘,尤其是在混合配置场景中。使用storage disk partition show -spare和storage aggregate show-spare-disks验证备用分区和整盘。
  • 分区识别:使用storage aggregate show-status和storage disk show确认分区使用情况,特别是在添加新磁盘或排查低备用警告时。

写在最后

NetApp ADP通过将磁盘划分为根分区和数据分区,显著提高了存储资源的利用率,特别适合中小型系统或高性能SSD环境。ADPv1适用于传统FAS系统,ADPv2为AFF系统提供了更灵活的分区方案。实施ADP时,需仔细遵循分区数量、RAID类型支持、备用磁盘要求和所有权管理规则,并注意混合配置和版本限制。结合常用维护命令(如分区识别和备用磁盘检查)以及NetApp相关文档的规划,可确保系统性能和可靠性。

http://www.xdnf.cn/news/494821.html

相关文章:

  • Spring Security 集成指南:避免 CORS 跨域问题
  • 精益数据分析(63/126):移情阶段的深度潜入——从用户生活到产品渗透的全链路解析
  • 什么是私有IP地址?如何判断是不是私有ip地址
  • 无需配置光猫,使用网管交换机配合路由器的IPTV功能实现单线复用
  • 前端二进制数据指南:从 ArrayBuffer 到高级流处理
  • Spring AI 本地直接运行 Onnx Embedding 模型,结合 Milvus 实现语义向量的存储和检索
  • 【Linux 学习计划】-- yum
  • 【JavaWeb】MySQL
  • 数据结构day3
  • Flink 数据传输机制
  • 仅需三张照片即可生成沉浸式3D购物体验?谷歌电商3D方案全解析
  • 迁移学习:解锁AI高效学习与泛化能力的密钥
  • AI:人形机器人的应用场景以及商业化落地潜力分析
  • PostgreSQL内幕剖析——结构与架构
  • CSS- 4.2 相对定位(position: relative)
  • 计算机发展的历程
  • turn.js与 PHP 结合使用来实现 PDF 文件的页面切换效果
  • 【React Fiber 架构详解】
  • Android7 Input(七)App与input系统服务建立连接
  • Flask项目实践:构建功能完善的博客系统(含评论与标签功能)
  • 使用Maven部署应用到TongWeb(东方通应用服务器)
  • 我的创作纪念日——《惊变256天》
  • 基于C#的MQTT通信实战:从EMQX搭建到发布订阅全解析
  • OpenResty 深度解析:构建高性能 Web 服务的终极方案
  • C语言_编译全攻略_从原理到实战的深度解析
  • 信息收集+初步漏洞打点
  • 完整卸载 Fabric Manager 的方法
  • JS 高级程序设计 设计模式
  • 【前端基础】10、CSS的伪元素(::first-line、::first-letter、::before、::after)【注:极简描述】
  • 前端面经13 JS设计模式