ASM 故障组
• 共享需要容错的一项公用资源的一组磁盘
• 镜像的区副本存储在不同的故障组中
• 存储硬件指示故障组边界
– 分离磁盘控制器的示例:

在磁盘组内,可以将一些磁盘归到故障组中。故障组是存储或数据库管理员指定ASM 镜像操作的硬件边界的一种方式。
例如,可以将连接到一个磁盘控制器的所有磁盘指定为某个公用故障组的磁盘。这样,将在连接到不同控制器的磁盘上镜像文件区。另外,管理员可以配置ASM 来选择默认故障组策略。默认策略是每个磁盘位于自己的故障组中。
你可以使用所需的任何标准将磁盘归到故障组中。故障组可以用于避免单个磁盘、磁盘控制器、I/O 网络组件以及甚至整个存储系统的故障。通常,管理员将分析其存储环境并对故障组进行组织来消除特定故障情况。
由数据库或存储管理员确定其安装的最佳故障组配置。
条带化和镜像示例
一个共含八个磁盘的正常冗余磁盘组,其中的磁盘分布在两个故障组中。

条带化和镜像示例
本页中的图显示了一个正常冗余磁盘组中条带化和镜像的示例。红块表示一个包含五个区的文件,这些区在条带化后,分布在磁盘组(共八个磁盘)的五个磁盘中。蓝块表示文件区的镜像副本。请注意,无论区在各个磁盘和故障组中如何分布,每个区在一个故障组中仅有一个副本。
分配文件时,主区的分配用于保证性能,辅助副本的分配用于保证完整性。因此,默认情况下,所有数据库读取都针对主区进行。
ASM如何处理磁盘故障
ASM中的磁盘组可分成两类,普通磁盘组和failure磁盘组,后者又与ASM的荣誉方式有所关联。
普通磁盘组就是标准的存储单元,ASM可以向其可访问的磁盘组中读写数据,failure磁盘组是为了提高数据的高可用性。
ASM中的磁盘荣誉策略分成三类,外部冗余,标准冗余和高度冗余,其中外部冗余与failure磁盘组无关,如果设置了标准冗余和高度冗余,那么该磁盘组就必须拥有failure磁盘组。
标准冗余,ASM要求改磁盘组至少要拥有两个failure磁盘组,即提供双倍镜像保护,对于同一份数据(ASM中镜像单位不是磁盘,也不是块,而是一种AU的单位,该单位大小默认是1M)将有主从两份镜像,并且ASM通过算法来自动确保主、从镜像不会存在于同一份failure 磁盘组,这样就保障了就算整个failure 磁盘组都损坏,数据也不会丢失。至于高度冗余(High Redundancy)就更安全了,它至少需要三个failure 磁盘组,也就是一份AU有一主多从的镜像,理论上将更加安全。
如果磁盘发生损坏,那么损坏的磁盘默认自动offlice并被drop掉,不过该磁盘所在的磁盘组仍将保持MOUNT状态,如果该盘有镜像的话,那么应用不会有影响,镜像盘将自动实现接管--只要不是所有failure磁盘组都损坏掉,否则的话,该磁盘组将自动DISMOUNT。
故障示例
如果磁盘H 发生故障,则将根据正常镜像在正常磁盘上重新创建该磁盘包含的区。

此处扩展了上一页中的示例,假设磁盘H 发生故障,无法再访问其包含的数据。该故障要求恢复故障磁盘上的所有区并将这些区复制到另一磁盘。
区3 和5 的正常副本将复制到同一故障组中另一磁盘的空闲区域。在此示例中,区5 将从磁盘B 复制到磁盘F,区3 将从磁盘C 复制到磁盘G。
磁盘发生故障后的最后一步是ASM 从磁盘组中删除故障磁盘。
删除磁盘基本上会触发相同的过程;不过,在删除磁盘时,要被删除的磁盘上的区首先会复制到可用替代位置。
ASM 扩展性
• 最多支持63个磁盘组;
•最多支持10000个磁盘;
•最大支持4pb/磁盘;
•最大支持40 exabyte/ASM存储;
•最大支持1百W个文件/磁盘组;
•外部冗余时单个文件最大35tb,标准冗余时单个文件最大5.8tb,高冗余度时单个文件最大3.9tb。
