重新平衡

“重新平衡”是为了均匀分布磁盘组的 I/O 负载而将文件范围移入或者移出磁盘的过程。

它在后台异步发生并且可以被监控。

在集群环境中,磁盘组的重新平衡仅在单个 ASM 实例中完成,不能跨多个集群节点分布以加快速度。

添加或者删除磁盘时,ASM 会自动重新平衡磁盘上的数据。

重新平衡的速度和努力可以通过 POWER LIMIT 设置进行控制。
POWER LIMIT 控制重新平衡工作中涉及的后台进程的数量,限制为 10(从 11.2.0.2 开始,它可以是从 0 到 1024)。
级别 0 表示不会发生重新平衡。

I/O 性能在重新平衡期间会受到影响,但影响程度因要重新平衡的磁盘以及它们是 I/O 工作负载的一部分而异。
选择默认功率限制是为了不影响应用程序性能。

性能

ASM 将通过在 DG 中的所有磁盘上条带化文件范围来最大化磁盘的可用带宽。

有两种条带宽度可用:粗条带大小为 1 AU,细条带大小为 128K。
细条带化仍然使用正常大小的文件范围,但条带化以循环方式在这些范围内以小块发生。

ASM 不从交替的镜像副本中读取,因为磁盘包含主和镜像扩展区并且 I/O 已经平衡。

默认情况下,RDBMS 将从主盘区读取。
在 11.1 中,这可以通过 PREFERRED_READ_FAILURE_GROUP 参数设置更改,用于从本地节点读取范围导致较低延迟的情况。

ASM 磁盘组

在 ASM 中,存储被组织成“磁盘组”(DG)。
DG 在 ASM 中有一个类似“DATA”的名字,它对于 RDBMS 来说是一个以“+DATA”开头的文件;创建表空间时,它们引用 DG 进行存储,例如“+DATA/.../...”
在磁盘组下面是一个或者多个故障组 (FG)。
FG 是在一组“磁盘”上定义的。
“磁盘”可以基于原始物理卷、磁盘分区、表示磁盘数组的 LUN,甚至是 LVM 或者 NAS 设备。

FG 应定义具有常见故障组件的磁盘,否则 ASM 冗余将无效。

ASM 如何存储数据

写入磁盘的最小存储单元称为“分配单元”(AU),通常为 1MB(建议为 Exadata 使用 4MB)。

很简单,ASM 是围绕存储文件组织的。
文件被分成称为“范围”的部分
范围大小通常等于 1 AU,但在 11.1 和 11.2 中将使用可变范围大小,分别为 1、8、64 个 AU 或者 1、4、16 个 AU。

文件范围位置由 ASM 使用文件范围映射来维护。
ASM 在磁盘头而不是数据字典中维护文件元数据
文件范围映射缓存在 RDBMS 共享池中;当 RDBMS 进程执行 I/O 时会参考这些。

ASM 具有很强的崩溃恢复能力,因为它使用类似于普通 RDBMS 的实例/崩溃恢复(类似于使用撤消和重做日志记录)

其他说明

ASM 可用于 RAC 和非 RAC 数据库。

一个节点上的一个 ASM 实例将为该节点上的任意数量的数据库实例提供服务。

如果将 ASM 用于 RAC,ASM 还必须集群以允许实例在文件映射发生更改时相互更新。

在 11.2 及以后的版本中,ASM 与集群件一起安装在网格主页中,而不是之前版本中的 RDBMS 主页。

on  it road.com

高可用性

ASM 可以执行镜像以从设备故障中恢复。
我们可以选择 EXTERNAL 、 NORMAL 或者 HIGH 冗余镜像。

EXTERNAL 表示允许底层物理磁盘数组进行镜像。
NORMAL 意味着 ASM 将为冗余创建一个另外的扩展区副本。
HIGH 意味着 ASM 将为冗余创建两个另外的扩展区副本。

镜像是通过“故障组”和范围合作实现的。
当实施 NORMAL 或者 HIGH 冗余时,ASM 可以容忍故障组中所有磁盘的完全丢失。

ASM 基础知识

ASM 的存在是为了管理 RDBMS 的文件存储。

ASM 不代表 RDBMS 执行 I/O。
与其他存储类型一样,I/O 由 RDBMS 进程执行。
因此,ASM 不是 I/O 的中介(会成为瓶颈)。

I/O 可以同步或者异步发生,具体取决于 DISK_ASYNCH_IO 参数的值。

磁盘是 ASM 的 RAW 设备。

可以存储在 ASM 中的文件:典型的数据库数据文件、控制文件、重做日志、归档日志、闪回日志、spfile、RMAN 备份和增量跟踪位图、数据泵转储集。

在 11gR2 中,ASM 已扩展为允许使用 Oracle ACFS 功能存储任何类型的文件(它对客户端来说是另一个文件系统)。

注意:ACFS 不支持数据库文件。

Oracle 自动存储管理 (ASM)
日期:2020-09-17 00:11:46 来源:oir作者:oir