Oracle ASM那点事儿

随着X86服务器的普及,传统的商业卷文件系统、裸设备开始逐步退出历史舞台,而ASM将成为新版本数据库存储类型的第一选择。今天就来一起复习一下ASM的相关知识。

ASM (自动存储管理) 是 Oracle Database 的一个特性,它为数据库管理员提供了一个在所有服务器和存储平台上统一的存储管理接口。ASM的出现是为RDBMS管理文件存储,注意ASM不会替代RDBMS去实施IO读写,很多人对这一点存在误解,认为RDBMS发送IO request给ASM,ASM负责去做真正的IO操作,这是不对的。实际RDBMS在ASM中获取了对应数据文件extent信息后,自行完成IO调用,和使用裸设备、商业文件系统一样,因此ASM不是IO的中间层,也就不存在因为ASM出现所谓的IO瓶颈,对于ASM而言底层 DISK可以是传统SAN存储裸设备也可以是新分布式存储块设备,这些在ASM层都可以统称为asmdisk。

在ASM中最小存储单位是一个”allocation unit”(AU),通常为4MB。ASM的核心便是存储文件,包含数据文件、控制文件等等,这些文件在ASM中被划成多个文件片,称之为”extent”,ASM使用file extent map来维护文件extent的相关信息,这样RDBMS便可以轻易的获取到相关文件extent信息以便完成IO调用。同RDBMS实例一样,ASM实例也采用instance/crash recovery机制来保证可靠性。

以上说了些ASM底层asmdisk也说了ASM内部将文件拆分为extent,那最终ASM层将以若干块asmdisk组成的DiskGroup为接口对RDBMS呈现,比如一个DATA DG,对于RDBMS来说就是以’+DATA’表示的一个存储点, 可以在该DG上创建表空间进行使用。同样可以建一个ARCH DG,对于RDBMS来说就是以’+ARCH’表示的一个存储点,可以来存放归档文件。
在ASM中DiskGroup提供了EXTERNAL、NORMAL、HIGH三种冗余镜像冗余模式:

  • EXTERNAL 即ASM本身不做镜像,而依赖于底层存储RAID;在External下任何asmdisk错误都会导致Disk Group被强制dismount。因此在此模式下所有的asm disk必须状态正常,否则Disk Group将dismount,其中涉及的文件将无法访问。
  • NORMAL 即ASM将为每一个extent创建一个额外的拷贝以便实现冗余;默认情况下所有的文件都会被镜像,这样每一个file extent都有2份拷贝。当镜像的extent(partner)涉及的磁盘同时故障时也将导致Disk Group被dismount。否则不影响Disk Group的使用。
  • HIGH 即ASM为每一个extent创建额外两个的拷贝以便实现更高的冗余。这样每一个file extent都有3份拷贝。当这3份镜像extent(partner)涉及的磁盘同时故障时Disk Group也将被dismount。否则不影响Disk Group的使用。

注意ASM的镜像和RAID并不一样,ASM的镜像基于文件extent,extent分布在多个磁盘之间,称为partner。当某asmdisk故障时其状态将会成为offline,ASM更新其extent map使之后的读取操作指向剩余的健康partner。在这期间ASM将记录相关extent的变更记录,以便该磁盘重新online后补全故障期间的变更重新恢复镜像冗余。当该故障的asm disk永久无法恢复时,需要人为在ASM中删除该磁盘,以便ASM自动在后台重新生成镜像partner恢复冗余度。当新添加asm disk时,和删除磁盘一样,ASM也会自动在后台开始数据重新平衡工作。重平衡的速度和力度可以通过asm_power_limit参数控制,该参数控制实施重平衡后台进程的数量;Level 0表示不实施重新平衡,在重新平衡过程中IO性能(主要是吞吐量和响应时间)可能会受到影响,其影响程度取决于存储本身的能力和重新平衡涉及的extent量。

以下是一个磁盘异常offline示列:

Oracle ASM那点事儿

由于虚拟机主机层直接删除了asmdisk,所以DATADG出现offline磁盘

Oracle ASM那点事儿

这里可以看到当完成删除磁盘时SQL命令时,REBAL进程任在后台异步重平衡,并输出工作进度,以便观察。

重新给磁盘组加入新的asmdisk

Oracle ASM那点事儿

注意这里v$asm_operation中的数值只能作为参考,实际需要核验alert日志,比如出现SUCCESS: rebalance completed for group 1/0x97f863e8 (DATADG)类似关键字,确认冲平衡进度,才能确认重平衡的实际状态,本文就到此为止。

来源:IT那活儿,本文观点不代表自营销立场,网址:https://www.zyxiao.com/p/127931

发表评论

登录后才能评论
侵权联系 投诉举报
返回顶部