学习笔记-EMC VMAX的logical volume概念深入理解

有一段时间没有更新这个blog了,一方面是太忙了,另外一方面,身体有些不适。最近几天搞EMC 的VMAX,还有古老的DMX,涉及到一些逻辑上的概念,和客户沟通起来非常费劲。就把前几年的珍藏版学习笔记翻了出来,也顺便分享给各位看官。

老规矩,欢迎点赞、转发、添加VX: StorageExpert,下次更新不迷路。

VMAX 里"Logical Volume"到底指什么?

Symmetrix Device 被定义为:对物理磁盘的一层逻辑抽象(也就是我们常说的从主机层面看到的"盘""卷""LUN")。它也常被叫作:hyper-volume / slice / split / device / volume,而行业通用词就是 LUN(Logical Unit)。

Logical volume,在 VMAX 语境里通常就是:

  • Symmetrix device(设备号 DEV xxxx)
  • 主机侧看到的 LUN
  • 具备某种"仿真格式"(FBA/CKD等)、大小、保护方式(RAID1/5/6...)的可用存储对象

概括起来,Logical volume = VMAX 向主机呈现的"逻辑磁盘"(LUN),它不是一块物理盘,而是由后端物理盘空间映射出来的逻辑对象。

逻辑卷的"物理布局":为什么它有 Cylinder / Track / Sector 这种概念?

Symmetrix 的 device "仿真物理磁盘",因此也沿用类似磁盘术语:

  • Sector:16 个 512B block
  • Track:8 个 sector
  • Cylinder:15 个 track

并且传统上 卷大小常用 Cylinder 表示(大约 ~0.98MB/ Cyl)。文档给了例子:9000 Cyl ≈ 8.8GB。

VMAX 内部仍然用"柱面/磁道"的方式组织和计算容量与布局(尤其历史原因 + 某些主机仿真需要),虽然现在都直接用 GB/TB 来创建,但是背后其实还是cylinder。

主机看到的两类"逻辑卷格式":FBA vs CKD

A. FBA(开放系统:Linux/Windows/VMware 这类)

  • 主机把 VMAX 逻辑卷当作 SCSI 设备
  • I/O 通过 LBA(Logical Block Address) 寻址:从 LBA0 到 LBA N-1
  • 典型 block size 512B(iSeries 520B)

每个 block 内部会有额外的 DIF/T10 PI(端到端数据完整性字段)

  • 单个 FBA 设备最大约 262,668 Cyl(~240GB),更大要靠 meta device 组合。这个就是说,VMAX分配出去的盘,如果不是meta device,最大就是 240G 一个盘,在主机上看到的。

B. CKD(主机:IBM Mainframe)

  • 采用 Count-Key-Data 记录结构,属于另一套访问/格式体系

logical volume 不只是"容量",它还带着"主机仿真格式 + 寻址方式"的属性。

逻辑卷如何落到物理盘:

"Hyper Volumes -- Slice of a Physical Disk":

  • 早期盘很小:可能"一块物理盘 = 一个逻辑卷"
  • 现在盘很大:一个逻辑卷通常来自物理盘的 一段切片(slice)
  • 这个切片就叫 Hyper(Hyper Volume)
  • 每块物理盘最多可切 1024 个 hypers。"Fewer and larger is better(切得更少、每片更大更好)"

理解下层次关系:

  • Physical Disk(物理盘)
    • 被切成很多 Hyper Volumes(超卷/切片)
      • 在这些 hypers 之上,再通过 RAID/布局形成可用的 Logical Volume / Device / LUN

所以:Hyper 是"后端物理盘空间的切片单位",Logical Volume 是"对外呈现的逻辑磁盘对象"。

逻辑卷不是"单盘":它通常是"跨很多盘的RAID布局",并且要"Spread Wide":

  • 保护在 hyper volume 层面应用(RAID1/RAID5/RAID6)
  • 不论镜像还是奇偶校验,成员会被"spread wide(分布得很分散)"到不同物理盘、不同后端 director/路径上,以提高性能和可靠性

因此在 VMAX 上看到的一个 logical volume,本质上一般意味着:

  • 它的数据条带/镜像/校验分布在一堆盘上
  • 读写不会"直打物理盘",而是先到缓存(global memory/cache),再由后端 director 执行落盘策略

logical volume 的"形态":Thick(传统) vs Thin(Virtual Provisioning)

文档把逻辑卷映射到物理盘的方式分两大类:

A. Hyper-based provisioning(厚置备 / Thick Device)

  • 设备一创建就对应到固定的物理盘位置(persistent locations)
  • 容量"先分配好、先占住"

B. Pool-based Virtual Provisioning(薄置备 / Thin Device:TDEV)

  • TDEV 是呈现给主机的 LUN,但后端不立刻占用物理空间
  • 它必须 bind 到 thin pool
  • thin pool 由很多 **TDAT(data device,提供真实物理空间,但不映射给主机)**组成
  • 关键机制:第一次主机写入某个范围时,才会从 pool 分配 extent
    • extent 大小:768KB = 12 tracks = 1536 个 512B block
  • 读未分配区域不会触发分配,读到的是全 0(文档也提到 NWBH 状态位)

即便是 thin device,主机看到的依旧是完整的 LBA 0...N-1 的连续空间;thin 的变化发生在 VMAX 内部"LBA → extent → TDAT 实体位置"的映射上。

Meta Volume:把多个 logical volume 再组合成"更大的一个"

  • Meta volumes:把多个 standard logical volumes 逻辑组合成一个更大的 volume,对主机呈现为单一 LUN
  • 作用:
    • 突破单个 volume 的容量上限(文档以 FBA 单卷 ~240GB 为例)
    • 更"宽"的并行:把负载摊到更多物理盘/更多资源上,提升性能
  • 两种布局:
    • Concatenated(拼接):按成员顺序用完一个再用下一个
    • Striped(条带):例如每个成员取 4 个 cylinder 轮流分布

"Logical Volume"的重要概念:

Physical disks(含不同 tier)

→ 组成 Disk Group(创建 device 时从某个 disk group 取空间)

→ 盘被切成 Hyper Volumes(slice)

→ 通过 RAID 保护 + Spread Wide 布局形成可用数据结构

→ 对外呈现为 Symmetrix Device / Logical Volume / LUN(FBA/CKD 等 emulation)

→ 如需更大/更宽:用 Meta Volume 组合多个 device

→ 如需更高利用率/更易管理:用 Virtual Provisioning(TDEV/TDAT/Pool/extent)

相关推荐
林鸿群6 小时前
ubuntu 26.04 安装mysql-server
linux·mysql·ubuntu
betazhou6 小时前
rsync使用案例分析
linux·运维·服务器·rsync·同步数据
sycmancia6 小时前
C语言学习07——变量的作用域
c语言·学习
lkbhua莱克瓦247 小时前
JavaScript核心语法
开发语言·前端·javascript·笔记·html·ecmascript·javaweb
SmartBrain7 小时前
Agent 知识总结
服务器·数据库·笔记
杨浦老苏7 小时前
离线优先的自托管笔记应用Anchor
笔记·docker·群晖
安静的技术开发者7 小时前
Linux Ubuntu学习笔记
linux·ubuntu
虾说羊7 小时前
Langchain4j中AIService学习
学习
CryptoPP7 小时前
主流国际股票行情API接口横向对比:如何选择适合你的数据源?
大数据·笔记·金融·区块链
geshifei7 小时前
Sched ext回调1——init_task (linux 6.15.7)
linux·ebpf