学习笔记-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)

相关推荐
wdfk_prog3 分钟前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
VekiSon13 分钟前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
盐焗西兰花14 分钟前
鸿蒙学习实战之路-Reader Kit自定义字体最佳实践
学习·华为·harmonyos
Y1rong25 分钟前
linux之网络
linux
寄存器漫游者43 分钟前
Linux 软件编程 - IO 编程
linux·运维·spring
觉醒大王1 小时前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
_别来无恙_1 小时前
TFTP的使用Linux
linux·服务器
近津薪荼1 小时前
dfs专题5——(二叉搜索树中第 K 小的元素)
c++·学习·算法·深度优先
Zaralike1 小时前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
方安乐1 小时前
科普:股票 vs 债券的区别
笔记