iSCSI + Multipath + ASM:Oracle RAC 共享存储技术链详解

在 Oracle RAC(Real Application Clusters)架构中,实现多节点并发访问同一套存储是核心技术难点。iSCSI、Multipath、ASM​ 构成了这一体系的"铁三角",分别负责网络接入、链路冗余和集群存储管理。

以下是这四个组件如何协同工作的深度解析:

一、 第一层:iSCSI ------ 把"远端硬盘"拉进服务器

iSCSI(Internet Small Computer Systems Interface)​ 是一种基于 TCP/IP 网络的存储协议。它的核心作用是将 SCSI 协议的块设备命令封装在 IP 包中传输。

•角色分工:

•Target(目标端):通常位于专用的存储服务器(或存储阵列)上。它对外暴露一个或多个 LUN(Logical Unit Number),相当于在网络上挂了一块"虚拟硬盘"。在 Linux 中,Target 通过 targetcli工具配置。

•Initiator(发起端):位于数据库服务器(RAC 节点)上。它是一个客户端软件(如 iscsi-initiator-utils),负责发现网络上的 Target 并建立会话。

•核心效果:

一旦 Initiator 登录成功,远端的 LUN 就会像插在本地主板上的硬盘一样,在操作系统里显示为标准的块设备文件(如 /dev/sdb)。

一句话总结:iSCSI 负责打破物理距离限制,让服务器以为数据盘就在本地,但实际上数据是通过网线传输的。

二、 第二层:Multipath(多路径)------ 给网络通道加"双保险"

虽然 iSCSI 让服务器看到了共享盘,但它引入了一个致命的单点故障风险:网络链路。如果服务器只有一根网线连接存储,这根网线一旦断开,RAC 集群就会立刻崩溃。

Multipath(多路径软件)​ 就是为了解决这个问题的。

•工作原理:

•在 RAC 环境中,服务器到存储阵列通常会配置冗余的物理链路(比如双网卡、双交换机)。

•Multipath 软件(Linux 下通常是 device-mapper-multipath)会在底层将这两条(或多条)网络路径聚合成一条逻辑路径。

•核心价值:

1.冗余容灾:当其中一条网线断开时,Multipath 能在毫秒级内自动切换到另一条健康的网线上继续传输数据,应用层几乎无感知。

2.负载均衡:读写请求可以被分发到不同的物理网线上,提升整体吞吐量。

•设备命名:

Multipath 聚合后的设备通常命名为 /dev/mapper/mpatha或类似名称,取代了原本的物理设备名(/dev/sdb),成为更稳定、更具辨识度的逻辑盘符。

三、 第三层:ASM(Automatic Storage Management)------ RAC 的"私有管家"

有了 Multipath 提供的稳定逻辑盘(/dev/mapper/mpatha),Oracle 还需要一种机制来管理这些磁盘,尤其是在多节点并发的场景下。这就是 ASM(自动存储管理)​ 的职责。

•角色定位:ASM 是 Oracle 开发的一款专为 RAC 设计的集群文件系统/卷管理器。

•核心功能:

1.屏蔽底层差异:DBA 不需要关心底层的 /dev/mapper/mpatha是哪个品牌的存储,也不需要管它是 iSCSI 还是光纤通道。在 ASM 眼里,这些都是"磁盘组(Disk Group)"。

2.提供真正共享:ASM 确保两个 RAC 节点看到的是同一份数据镜像。它内置了分布式锁机制(Locking),当一个节点写入数据时,它能通知其他节点同步状态,防止数据错乱。

3.数据冗余:除了依靠存储硬件的 RAID,ASM 自身也提供镜像功能(Normal/HIGH 冗余级别),即使底层磁盘物理损坏,数据依然安全。

四、 全景流程图解

这四个组件共同构成了一个完整的 RAC 存储数据流闭环:

text

存储阵列 (SAN)

|

| (1) 网络暴露 LUN

Target (targetcli) ←--------- 被 Initiator (iscsi-initiator) 发现并登录

|

| (2) 映射为本地块设备

OS Device (/dev/sdX)

|

| (3) 多路径聚合 (Multipath)

Logical Device (/dev/mapper/mpatha)

|

| (4) Oracle 接管

ASM Disk Group (DATA/FRA)

|

| (5) 挂载为数据库存储

Oracle RAC Instance

总结:

•iSCSI​ 解决了"能不能连"的问题(网络化存储)。

•Multipath​ 解决了"稳不稳定"的问题(链路冗余)。

•ASM​ 解决了"能不能共享"的问题(集群并发控制)。

这三者缺一不可,共同支撑了 Oracle RAC 的高可用和高并发特性。

相关推荐
白帽小丑3 小时前
# 一次 MySQL DELETE 误操作的数据恢复尝试实录
数据库·mysql
Quincy_Freak6 小时前
信创内网数据规范实践:银河麒麟下SQLite本地数据安全管理方案
数据库·sqlite·arm·数据库管理·大数据分析·银河麒麟·aarch64
2601_962683898 小时前
治理遗留系统中的“生肉 SQL”:一次用多模型协作优化慢查询的实战复盘
数据库·人工智能·sql
酱学编程8 小时前
【从零到一实现一个 AI Agent 框架 · 第四篇】04. 任务规划:拆解复杂目标 -
服务器·网络·数据库·人工智能
shushangyun_9 小时前
2026智能采购商城系统选型指南:如何引领企业数字化采购升级
java·大数据·数据库·人工智能·机器学习
华山令狐虫10 小时前
DBAPI AI 写 SQL:支持动态 SQL 与参数占位符,自然语言一键生成
数据库·人工智能·sql·dbapi
IvorySQL11 小时前
PG 技术日报|2026-07-04
数据库·人工智能·postgresql·开源
Hoxy.R11 小时前
KingbaseES读写分离高可用集群扩容、备库重建与故障切换实战
运维·数据库
IvorySQL11 小时前
IvorySQL HTAP 实时湖仓接入引擎
数据库·postgresql·开源·htap·ivorysql
忧郁的紫菜11 小时前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json