Automatic Storage Management
Automatic Storage Management (ASM) 将文件系统与卷管理器纵向集成在一起,这是一项专门为Oracle DB 文件建立的技术。使用ASM 可管理单个对称多处理(SMP) 计算机,或通过管理集群的多个节点来支持Oracle Real Application Clusters (RAC)。
ASM 在所有可用的资源中分布输入/输出(I/O) 负载,以在免除手动I/O 优化的同时优化性能。ASM 帮助DBA 管理动态数据库环境,让DBA 在不关闭数据库的情况下,通过增加数据库的大小来调整存储分配。
ASM 通过提供数据的冗余副本来提供容错能力,ASM 也可以建立在供应商提供的存储机制上。数据管理是通过为数据类选择所需的可靠性和性能特性(而不是逐个文件地进行人为交互)来实现的。
通过自动处理手动存储,ASM 功能节省了DBA 的时间,从而提高了管理员管理更多和更大数据库的能力,而且效率也会更高。
ASM:主要功能和优点
• 对文件而不是逻辑卷进行条带化
• 提供联机磁盘重新配置和动态重新平衡功能
• 允许调整重新平衡速度
• 以每个文件为基础提供冗余
• 只支持Oracle DB 文件
• 可识别集群
• 可自动安装
ASM 将文件划分为区(不同于前面讨论的数据文件区),而且将每个文件的区均匀分布在所有磁盘上。ASM 使用索引技术跟踪每个区的位置。存储容量发生变化时,ASM 不会重新对所有数据进行条带化,而是根据添加或删除的存储量,按比例移动一定数量的数据,以重新平均分配文件,并在磁盘间保持负载平衡。此操作可在数据库处于活动状态时执行。可以提高重新平衡操作的速度,以便更快地完成操作;也可以降低速度,以减少对I/O 子系统的影响。ASM 还提供了镜像保护,因此不必再购买第三方的逻辑卷管理器。
ASM 的一个特有优势是可基于文件而不是卷进行镜像。因此,同一磁盘组可以包含镜像文件或非镜像文件的组合。
ASM 支持数据文件、日志文件、控制文件、归档日志、Recovery Manager (RMAN) 备份集及其它Oracle DB 文件类型。ASM 还支持RAC,这样就不再需要集群逻辑卷管理器或集群文件系统。
ASM:概念
ASM 不会妨碍先前存在的数据库功能。现有数据库能够像平常一样工作。可以将新文件创建为ASM 文件,继续按原有的方式管理现有文件,也可以最终将这些文件移植到ASM。
图表描述了使用ASM 的Oracle DB 中的各种存储组件之间存在的关系。图表的左侧部分和中间部分显示了在以前版本中存在的关系。
右侧部分是ASM 引入的新概念。
数据库文件可以存储为ASM 文件。新层次的顶部是ASM 磁盘组。任何单个ASM 文件只能包含在一个磁盘组中。
不过,一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间。
一个磁盘组由多个ASM 磁盘组成,但每个ASM 磁盘只能属于一个磁盘组。
ASM 文件总是分布在该磁盘组中的所有ASM 磁盘上。
ASM 磁盘按分配单元进行分区。分配单元(AU) 是ASM 分配的最小连续磁盘空间。
创建磁盘组时,可以将ASM AU 大小设置为2 的幂(1、2、4、8、16、32 或64),范围在1 MB 到64 MB 之间。
对于使用大量顺序读取操作的数据仓库应用程序,较大的AU 大小通常会更有优势。
注:图中的图形只显示了一种ASM 文件:数据文件。不过,ASM 也可用于存储其它类型的数据库文件。
ASM 对于管理员的好处
使用ASM 可以免除:
• I/O 性能优化
• 数据文件移动和重新组织
• 文件名管理
• 逻辑卷管理
• 文件系统管理
• 集群文件系统管理
• 裸设备管理
1、使用ASM 可以显著减少:
• 逻辑单元号(LUN) 管理
– 逻辑单元数量较少,大小较大
• 数据库管理员对系统管理员的依赖性
• 手动执行维护任务时可能发生的错误
2、使用ASM 可以免除非ASM 存储环境中许多必不可少的任务。其中包括:
• I/O 性能优化:ASM 采用条带化和镜像所有内容的策略,且执行自动重新平衡操作,这意味着不再需要旨在平衡磁盘使用以及消除磁盘热点的I/O 性能优化。
• 数据文件移动和重新组织:不再需要更改数据文件的位置来满足性能要求和空间约束条件。
• 文件名管理:不再需要定义和强制执行文件命名策略。
• 逻辑卷、文件系统、集群文件系统和裸设备管理:不再需要这些存储元素。
3、使用ASM 可以减少下列重要方面的工作,从而提供更多好处:
• 逻辑单元号(LUN) 管理工作减少,因为ASM 通常需要的逻辑单元较少且大小较大。
• 数据库管理员与系统管理员之间通常存在的依赖性将大大减少。例如,添加新数据文件或将磁盘资源从一个磁盘组移至另一磁盘组时不再需要系统管理员干预。
• 手动执行维护任务时可能发生的错误将大大减少。例如,使用常规文件系统时,新建数据文件时可能不慎违反了文件命名惯例,导致数据库的其余部分不支持该文件。