原图来自:数据库IO链路访问图 – OracleBlog 由于很复杂,为了加深理解自己重新画了一次,另外参考其他文档补充了各部分的插图和介绍。

从物理磁盘到数据库 —— 存储IO链路访问图_访问链路

一、 存储服务器

1. 物理磁盘

从物理磁盘到数据库 —— 存储IO链路访问图_操作系统_02

从物理磁盘到数据库 —— 存储IO链路访问图_数据库_03

外层的壳子称为硬盘笼 cage

从物理磁盘到数据库 —— 存储IO链路访问图_访问链路_04

2. chunklet

从物理磁盘到数据库 —— 存储IO链路访问图_数据库_05

       Chunklet 是一个虚拟概念而不是实际硬件,由存储OS自动创建(不一定都会有,视存储而定),用于创建逻辑磁盘。一个存储块仅分配给一个逻辑磁盘。物理磁盘分为多个存储块,每个存储块的大小相同,占用物理磁盘上的连续空间,不能跨越其他磁盘。

3. 逻辑磁盘 与 通用配置组 CPG

       逻辑磁盘本质上是一组Chunklet,可以做成RAID,逻辑磁盘将确保RAID中的每个Chunklet位于不同的物理磁盘上。我们不会直接在存储上创建 LD – 它们是在创建CPG期间生成的。

       通用配置组(CPG)本质就是逻辑磁盘池。

从物理磁盘到数据库 —— 存储IO链路访问图_存储_06

4. 虚拟卷

从物理磁盘到数据库 —— 存储IO链路访问图_存储_07

从物理磁盘到数据库 —— 存储IO链路访问图_存储_08

例如,在酒店办酒席:

  • 厚置备延迟置零:先腾出一层楼面来摆酒席,等客人来的时候再摆桌子摆椅子。
  • 厚置备置零:腾出一层楼面,桌子椅子全部摆好,客人来了可以直接就座。
  • 精简置备:来了多少客人就开多少桌酒席,每次来了新客人就需要重新划分空间,摆桌子摆椅子什么的。

优缺点也很明显:

  • 厚置备:预先占用存储,且置零需要更长的处理时间。如果实际占用很少,这部分存储和时间就被浪费了(因此有一种居中的延迟置零)。
  • 精简置备:用多少分多少,不会浪费;不提前置零,分配速度快。

VMware vSphere中三种磁盘:精简置备/厚置备置零/厚置备延迟置零-51CTO.COM

5. 逻辑单元号 LUN

从物理磁盘到数据库 —— 存储IO链路访问图_操作系统_09

       LUN的全称是Logical Unit Number,也就是逻辑单元号。我们知道SCSI总线上可挂接的设备数量是有限的,一般为6个或者15个,可以用Target ID(SCSI ID)来描述这些设备,设备只要一加入系统,就有一个ID,在区别设备时,只要说几号几号ID就ok了。

LUN ID的作用就是扩充了Target ID。每个Target下都可以有多个LUN,这样设备的描述由Target x变成Target x LUN y,显而易见的,可以描述更多的设备了。

       LUN ID不等于某个设备,只是个号码而已,不代表任何实体属性,在我们的实际环境里,我们碰到的LUN可能是磁盘空间,可能是磁带机,或者是media changer等等。

【存储】存储基本概念(lun,volume,HBA,DAS,NAS,SAN,iSCSI,IPSAN、存储池和存储卷)LUN (Target ID不够用,用LUN扩充)_51CTO博客_存储的基本概念

6. VMFS与RDM

从物理磁盘到数据库 —— 存储IO链路访问图_数据库_10

对数据库来说:

  • vmfs适用于绝大多数数据库场景
  • 裸磁盘映射一般用于oracle rac,运维非常复杂,而性能又不如直接用物理机,不太推荐

实际上映射方式还可以再细分:

从物理磁盘到数据库 —— 存储IO链路访问图_数据库_11

争议 | 在虚拟化平台上搭建 RAC,RDM 裸磁盘映射和 VMFS 哪种方式更好?_mob604756f19185的技术博客_51CTO博客

VMFS vs. RDM Storage - Part I Introduction - Storage Types and Tooling - House of Brick

7. 存储控制器

从物理磁盘到数据库 —— 存储IO链路访问图_数据库_12

从物理磁盘到数据库 —— 存储IO链路访问图_IO_13

从物理磁盘到数据库 —— 存储IO链路访问图_存储_14

What is a Storage Controller? | StorageSwiss.com - The Home of Storage Switzerland

数据存储小知识:什么是存储控制器?_读取