2. Pure Storage存储架构与数据保护基础
Pure Storage 的两条主力产品线——FlashArray 与 FlashBlade——虽然都建立在全闪存介质之上,但它们面向的数据形态、访问协议和数据布局逻辑并不相同。理解这种差异,是理解后续快照、克隆、复制与容灾能力的前提。本节先建立架构层面的基本认识,再落到数据保护机制本身。
一、FlashArray:块与文件的统一阵列
FlashArray 面向结构化数据与虚拟化场景,对外提供块级访问(iSCSI、Fibre Channel、NVMe-oF)以及文件访问(SMB、NFS)。其核心是 Purity 操作系统,运行在双控制器(Active-Active)架构上。两个控制器同时处理 I/O,任一控制器故障时,另一控制器接管其卷的读写,主机侧通过多路径软件(如 MPIO)感知路径切换,通常不会中断业务。
FlashArray 的数据布局有几个关键点:
- 卷(Volume)是块访问的基本单位,主机通过 LUN 或命名空间访问;
- 共享卷可同时映射给多台主机,用于集群文件系统或 Oracle RAC 等场景;
- 数据缩减在写入路径上完成,包括去重、压缩与模式消除,缩减后的数据再落盘;
- 元数据独立存放并受保护,元数据损坏不会直接导致用户数据不可读。
对数据保护而言,FlashArray 的卷是快照与克隆的操作对象。快照不复制数据块,而是记录某一时刻卷的元数据映射关系;克隆则基于快照生成一个可独立读写的新卷。这意味着创建一个 1 TB 卷的快照,几乎不消耗额外容量,也不产生明显的性能开销。
二、FlashBlade:面向非结构化数据的横向扩展架构
FlashBlade 面向对象与文件场景,采用横向扩展(Scale-Out)架构。它由多个刀片(Blade)组成,每个刀片包含计算、闪存和网络资源,通过内部高速互联形成统一命名空间。对外提供 NFS、SMB、S3 以及 RapidFile Toolkit 等接口。
FlashBlade 的数据布局与 FlashArray 不同:
- 数据以对象或文件为单位分布到多个刀片,而非绑定到单一卷;
- 元数据与数据共同分布,通过一致性哈希或类似机制定位;
- 扩容时新增刀片自动加入,数据重新均衡,容量与性能线性提升;
- 快照与克隆同样基于元数据,但作用域是文件系统或对象桶。
FlashBlade 的快照对上层表现为文件系统或桶的时间点副本,常用于备份窗口内快速生成一致点,或为数据分析、AI 训练提供只读数据源。克隆则可用于快速拉起一套独立的文件系统,供测试或开发使用。
三、快照与克隆机制对数据保护的意义
Pure Storage 的快照与克隆之所以在数据保护中价值突出,核心在于它们不依赖传统存储的“复制数据”方式。传统阵列做快照时,往往需要预留空间或触发写时复制(Copy-on-Write),在高负载下可能带来性能抖动。而 Pure 的快照本质上是元数据操作,创建速度快、容量开销低,且对生产 I/O 影响极小。
这带来几个实际好处:
- 高频快照成为可能:可以每 15 分钟甚至更短周期创建快照,用于逻辑错误恢复。例如数据库误删表、文件被覆盖,可从最近快照快速恢复,而不必从磁带或远端备份拉取。
- 克隆用于快速验证:从生产快照克隆一套环境,挂载给测试主机,验证补丁、升级或数据修复脚本,验证通过后再决定是否回滚生产。克隆卷与源卷共享数据块,只有发生写入的块才占用新空间。
- 与复制结合形成容灾:快照可复制到远端 FlashArray 或 FlashBlade,形成 RPO 分钟级的容灾能力。复制的是快照对应的元数据与增量数据,而非全量卷。
四、一个可参考的快照与克隆操作示例
以下示例基于 FlashArray 的 Purity 命令行风格,展示从创建快照到克隆验证的典型过程。参数为教学示例,实际使用时需替换为环境中的卷名与目标主机。
# 1. 为生产卷 prod-db-01 创建快照,命名带时间戳
purevol snap --name prod-db-01.snap-20250612-0200 prod-db-01
# 2. 查看快照列表,确认创建成功
purevol list --snap --volume prod-db-01
# 3. 基于快照克隆出一个新卷,用于测试
purevol create --source prod-db-01.snap-20250612-0200 test-db-01
# 4. 将克隆卷映射给测试主机
purevol connect --host test-host-01 test-db-01
# 5. 在测试主机上挂载并验证数据
# Linux 示例:扫描并挂载
rescan-scsi-bus.sh
mount /dev/mapper/mpathX /mnt/testdb
ls -l /mnt/testdb
判断操作是否达到预期,可以观察几个点:快照创建命令返回成功且快照列表中可见;克隆卷容量与源卷一致但实际占用空间远小于源卷;测试主机识别到新 LUN 并能挂载文件系统;数据内容与快照时间点一致。若克隆卷无法挂载,优先检查主机多路径配置与卷映射关系,而不是怀疑快照本身。
五、架构差异对数据保护策略的影响
FlashArray 与 FlashBlade 在数据保护上的侧重点不同。FlashArray 的卷级快照适合数据库、虚拟机等块级工作负载,恢复粒度是卷或 LUN;FlashBlade 的文件系统或桶级快照适合海量文件、对象数据,恢复粒度是目录、文件或对象前缀。制定保护策略时,需要根据数据形态选择对应的快照对象和保留策略。
| 对比维度 | FlashArray | FlashBlade |
|---|---|---|
| 访问协议 | iSCSI、FC、NVMe-oF、SMB、NFS | NFS、SMB、S3 |
| 数据组织 | 卷 / LUN / 命名空间 | 文件系统 / 对象桶 |
| 扩展方式 | 纵向扩展(控制器+盘柜) | 横向扩展(增加刀片) |
| 快照粒度 | 卷级 | 文件系统 / 桶级 |
| 典型保护场景 | 数据库、虚拟机、关键业务卷 | 文件共享、AI 训练数据、备份归档 |