🌻 Oracle ASM配置及官方架构图解析
本篇重点在针对官方提供的Oracle Automatic Storage Management(ASM)配置架构图,对ASM的不同配置模式,分别从架构,技术和工程角度进行容易理解的梳理和总结。
一、官方ASM配置架构图
](https://www.oame2024.cn/content/uploadfile/202607/9fa91784769302.png)
简释
- 官方ASM配置架构图,展示三种不同的ASM部署模式
-
传统Standalone ASM(本地ASM实例)
- Flex ASM Client(客户端模式)
- ASM via IO Server(IOServer模式/Indirect IO)
1.1 传统Standalone ASM(本地ASM实例)
-
架构角度
-
图中的位置:Server 1
](https://www.oame2024.cn/content/uploadfile/202607/dea21784769397.png)ng) -
意义
- 最简单的形式
- 每节点运行ASM服务
- 略显资源浪费在大型环境
-
简易理解
](https://www.oame2024.cn/content/uploadfile/202607/70711784769166.png)
-
-
技术角度
-
特征
-
ASM与DB同节点、强绑定
-
metadata+data均本地访问
-
ASM实例
-
负责metadata/协调data block访问
-
所有I/O
-
都发生在本地节点
-
-
边界
- 每个节点:必须有ASM
- ASM扩展性:与节点数强耦合
-
-
工程角度
-
价值
- 架构最简单/无网络依赖
- 出问题最好定位
- 心智成本最低
-
代价
-
节点越多
-
ASM实例越多
-
运维线性膨胀
-
-
结论
- 小集群最优解,大集群负担
-
1.2 Flex ASM Client(客户端模式)
-
架构角度
-
图中的位置:Server 2/Server 3
](https://www.oame2024.cn/content/uploadfile/202607/55ba1784769204.png)
-
-
意义
- 将ASM服务集中
- 数据库节点不必承担ASM实例
- 仍坚持data直接访问存储
- Oracle推荐在中大型RAC环境中使用的模式
-
简易理解
](https://www.oame2024.cn/content/uploadfile/202607/8efb1784769242.png)
- 技术角度
-
特征
- 属于Oracle Flex ASM模式
- 数据库实例不在本机运行ASM实例
- 使用另一个节点(Server 3)上运行的ASM服务来访问metadata
- 数据块I/O仍然直接访问ASM存储
-
工作流程
- DB (ASM客户端)-【元数据请求】→另一个节点上的ASM实例→数据I/O→共享ASM磁盘
-
优点
-
不需要在所有节点上运行ASM
-
官方资料明确
-
Flex ASM将ASM实例数量与数据库节点解耦,支持集群内集中式ASM管理(Cardinality可以配置)
-
但,仍然要求
-
数据库节点仍可直接访问共同ASM存储
-
- 工程角度
-
解决的问题
- 减少ASM实例数量
- 允许DB节点弹性增减
- 集中管理ASM资源
-
代价
-
引入
-
网络依赖
-
ASM Pool管理复杂度
-
-
判断
- 当规模上来,Flex ASM的复杂度 \< Local ASM的运维成本
1.3 ASM via IO Server(IO Server模式/Indirect IO)
-
架构角度
-
图中的位置:Server 4+Server 5
](https://www.oame2024.cn/content/uploadfile/202607/87ae1784769481.png)
-
-
解释
- Server 4上运行IO Server(IOServer)进程
- Server 5的数据库节点没有直接访问ASM存储
- 所有I/O均通过IOServer网络中介
-
简单理解
](https://www.oame2024.cn/content/uploadfile/202607/f19b1784769497.png)
-
技术角度
- 支持节点完全
- 无共享存储直连环境
- 数据访问通过网络到中间服务
- 可用于云环境/无共享存储架构
- 利用dNFS和自动发现机制,简化客户端配置
-
访问流程
- DB节点(没有存储空间)-【网络上的 dNFS】→dNFS over network→IOServer实例(接受IO)→在ASM磁盘上执行实际IO
-
官方说明
- Server 5无法直接访问ASM磁盘存储,而是通过Server 4上的IO Server获取所有数据
-
关键特点
- 客户端节点无需配置 ASM 访问
- IOServer支持dNFS作为客户端协议
- IOServer被Grid Infrastructure 12.2引入
- 工程角度
-
IOServer解决的问题是
- DB节点,根本无法访问共享存储
-
结论
- IOServer不是RAC的“升级选项”,而是某些环境下的唯一选项
二、dNFS与自动发现
-
技术角度
-
客户端使用dNFS协议
- 但,不需要手工配置IP/mount/endpoint
-
原因
- IOServer通过Clusterware自动发现
-
本质
- ASM+IOServer是“受控的、Oracle内部的NFS”,运维复杂度被隐藏在GI内部
-
-
工程角度
-
如果没有自动发现会怎样
-
客户端要配置
-
IP/Endpoint/Failover
-
运维复杂度直接爆炸
-
-
Oracle的工程哲学
- 把复杂度,压进Clusterware;换取,客户端“无感使用”
-
三、ASM Disk/Disk Group的抽象
-
技术角度
-
模型
-
ASM管理单位
-
Disk Group
-
Disk Group成员(可以是)
-
磁盘
-
分区
-
LVM
-
NFS文件
-
-
含义
- ASM对“底层介质”是弱感知、强抽象
-
-
工程角度
-
好处
- 存储来源可替换
- 迁移/升级更平滑
- 屏蔽底层变化
- ASM能从物理机时代,一路活到云时代
-
四、核心模式差异对比总结
| 模式 | 是否需要本地ASM实例 | 数据访问方式 | ASM metadata访问 | 适用场景 |
|---|---|---|---|---|
| Standalone ASM | 是 | 本地直连 | 本地 | 传统RAC/简单架构 |
| Flex ASM Client | 否 | 本地直连 | 远程访问通过ASM network | 大规模RAC/减少 ASM footprint |
| IO Server (Indirect) | 否 | 网络访问(dNFS) | 网络通过IOServer | 无直接存储访问节点/云分离 |
- Oracle ASM Configuration演进
-
原因
- 早期RAC:节点少,SAN 稳定
- 中期RAC:节点多,ASM 实例爆炸
- 云/平台:节点根本没存储
-
目标
-
从每个节点必有本地ASM→
-
集中管理ASM metadata→
-
支持无存储直连架构(IO Server)
-