`

ASM的元数据(原创)

 
阅读更多

概述

ASM Filesystem是建立在ASM Diskgroup上的,并且有元数据描述其内容布局,并且这些元数据也是记录在磁盘组上的,故ASM Diskgroup是自描述的。

ASM的元数据分成两类:Physical Metadata和Virtual Metadata

Physical Metadata:这类数据位于磁盘的固定位置,用于描述Diksgroup的信息

Virtual Metadata:我们知道RDBMS是通过在ASM磁盘组中创建文件的方式来使用ASM磁盘组的,这些文件叫ASM File,包括控制文件,spfile,数据文件,联机日志,归档日志,备份集等;这些文件在ASM Diskgroup上如何布局就是通过Virtual Metadata来记录的。Virtual Metadata本身也是以ASM File的形式保存在ASM Diskgroup上,为了与数据库的数据文件、控制文件这些通常意义上的ASM File相区别,对于Virual Metadata的ASM File有一个特殊的名称,File Directory。大概是因为这些文件的功能非常类似普通文件系统中的目录,是文件容器的原因吧。

Physical Metadata

Physical Metadata不是以ASM File形式存在的,而是固定存放于每个磁盘的头两个Allocation Unit。Physical Metadata包含了Disk Header、Allocation Table、Free Space Table和PST。

Disk Header

每个ASM Disk都有一个Disk Header,占据第一个AU的第一个数据块。这个数据块的内容提供ASM Discovery使用。Disk Header记录的是每个磁盘的专有数据(Disk-Specific),因此没有必要在其他磁盘上镜像。Disk Header包含如下内容

disk name
disk number
diskgroup name
failure group name
disk size
allocation unit (AU) size
creation time
mount time
ASM compatibility
RDBMS compatibility
file directory pointer
ASMLIB reserved block

Allocation Table

Allocation Table相当于一个表,ASM磁盘上的每一个AU都会在这个中有记录(Allocation Table Entry),如果这个AU分配给了某个数据文件,ATE中将包含对应的File number和Extent number。如果磁盘空间很大,这个Allocation Table不能存放所有的AU条目,就会有第二个Allocation Table出现,不过第二个Allocation Table是存放在第一个Allocation Table锁覆盖的最后一个AU的下一个AU。比如第一个Allocation Table存放在AU0上,假设这个Allocation Table有1000项,覆盖了AU2-AU1001;则第二个Allocation Table会被放在AU 1002上。

Free Space Table

Free Space Table也是一个表格,用于记录没有被使用的AU。每个Allocation Table的第二个Block(Block 1)用于存放Free Allocation Unit。在需要空间时,ASM不用再扫描AT,从这个表即可立即获得。

PST
PST用来跟踪Diskgroup的成员关系,每个磁盘的第二个AU用于保存PST内容。PST的数量取决于磁盘组的冗余状态和磁盘故障组的数据量,详细关系如下
External redundancy diskgroups:只有一份PST

Normal-redundancy diskgroups :当故障组数量大于等于3时,有3份PST。当故障组数量小于3时,每个故障组保存一份PST。

High-redundancy diskgroups :当故障组数量大于等于5时,有3份PST。当故障组数量小于5时,每个故障组保存一份PST。

每个AU1都会保存两份PST,其中一份作为另一份更新PST时的快照。当需要更新PST时,只更改其中的一份,更新完毕后再更新另一份PST

PST包含的内容如下

=====自身的描述信息=====

version number
timestamp
PST size (number of disks)
number of PST copies
list of disks containing the PST
value of compatible.asm (if  COMPATIBLE.ASM >= 11.1)

=====用于成员之间跟踪的信息=====

disk status (for example, whether it is online or offline)
number of partners
list of partners

最后一个Block用于磁盘组的Heartbeat

Virtual Metadata

说明:如无特别说明,以下所指的文件号均为ASM File的文件号

Virtual Metadata记录了ASM File如何在磁盘组上分布的,也叫File Directory,根据记录的不同又可分为几种不同的File Directory。这些File Directory和普通的ASM File一样也是根据磁盘组的冗余策略进行镜像的:如果磁盘组采用External的冗余策略,则这些文件也不会被镜像;如果磁盘组采用的是Normal或High-Redundancy策略,这些文件都被做3份镜像。Virtual Metadata包含以下项目:

File Directory
Disk Directory
Active Change Directory (ACD)
Continuing Operations Directory (COD)
Template Directory
Alias Directory
Attribute Directory

File Directory

这个文件记录了ASM File的元数据,每个ASM File有一条记录,并使用文件号进行索引。File Directory位于每个磁盘组的第一个文件。具体包含如下内容Incarnation number、File size、File block size、File type、Redundancy (none, normal, or high)、Striping (coarse or fine-grained)、File creation time、File modification time (the time that the file was last opened for writing)和File layout

其中Incarnation number是根据创建文件的时间戳生成的,以确保唯一性。File block size根据文件类型的不同而不同。每个ASM元数据的块大小为4k,数据文件的块大小根据创建表空间时指定的大小从2k~32k不等,联机日志文件的块大小为512字节。file creation time即为ASM File的创建时间。File modification time记录了用于修改ASM File内容而打开ASM File的时间。这也意味着,File modification time记录的时间往往会早于最后一次修改的时间,该记录精确度为小时。File Layout,这部分内容记录了文件的Extent Pointer,并且是采用多级方式的记录,这里的Extent Pointer记录的是RDBMS中Extent所对应的Disk Number与AU Number。文件的头60个Extent Pointer叫做Direct Extents pointer,意味着通过这些指针可以直接访问到Extent。第61个Extent开始并不指向Extent,而是指向Indirect Extent,叫做Indirect Extents pointer。最多可有300个Indirect Extents pointer。Indirect Extent是一个二级列表,其中记录着真正的Extent Pointer,这部分内容并不包含于File Layout中。下图为包含1个包含10个ASM磁盘的磁盘组的File Layout信息

File Layout和Allocation Table关系可参见下图

 

File Layout信息也就是Extent Map,RDBMS需要从ASM获得这个Extent Map之后才能进行数据读写;在10g中,RDBMS必须获得Direct Extent和Indirect Extent才能打开文件;到11g后,只需要获得Direct Extent即可打开文件,而Indirect Extent部分按需请求。

Disk Directory

用于记录组成ASM磁盘组的ASM磁盘信息,和Physical Metadata中的PST类似,但内容更详细。包含Disk name、Failure group name、Disk size、Disk free space和Disk creation time。Disk Directory位于第2号文件

Active Change Directory (ACD)

ACD在ASM实例的作用和联机日志文件在RDBMS中的作用非常类似。每个实例会分配42MB的ACD空间,其中第一个数据块用于记录文件的Open/Close状态和检查点,这部分信息每3秒更新一次。而其他的空间采用循环的方式记录ACD Change Record。ASM利用ACD中的内容执行Instance Recover和Crash Recovery,以确保ASM的一致性。Active Change Directory位于第3号文件

Continuing Operations Directory (COD)

这部分内容用于跟踪运行时间长的操作,比如创建文件、Rebalance,用于操作失败后的恢复。COD相当于RDBMS中的UNDO Tablespace的功能。Continuing Operations Directory位于第4号文件

Template Directory

记录磁盘组所有ASM模板信息,模板记录包含:Template name、File redundancy、File striping policy和System flag。Template Directory位于第5号文件中

Alias Directory

用于记录磁盘组所有ASM别名(ASM alias)信息,别名记录包含:Alias name (or directory name)、Alias incarnation number、File number、File incarnation number、Parent directory和System flag Alias Directory位于第6号文件中

Attributes Directory

记录了磁盘组的属性信息,只有当ASM版本高于或等于11.1时才会有这个元数据。Attributes Directory位于第9号文件中。


参考至:《Oracle Automatic Storage Management: Under-the-Hood & Practical Deployment Guide》

             《大话Oracle Rac》张晓明著
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

0
1
分享到:
评论

相关推荐

    IMU芯片ASM330LHH的数据手册

    IMU芯片ASM330LHH的数据手册

    ASM9260T数据手册

    ASM9260T的中文数据手册,使用ASM9260T芯片的首选

    ASM9128T数据手册

    压缩包里有:ASM9128T数据手册精简版 V1.0.3.pdf 、ASM9260T SIP176 EVK Rev.B 和 2014.03.01.pdf ASM9260T数据手册V1.2 20141201.pdf

    add.asm调试数据详解.docx

    详细讲解了asm调试数据,图片加文字双重保险。用r 查看寄存器、用T单步执行指令等

    asm.jar各个版本

    asm-1.3.3.jar, asm-1.3.4.jar, asm-1.3.5.jar, asm-1.4.1.jar, asm-1.4.2.jar, asm-1.4.3.jar, asm-1.4.jar, asm-1.5.1.jar, asm-1.5.2.jar, asm-1.5.3.jar, asm-2.0.jar, asm-2.1.jar, asm-2.2.1-sources.jar, asm...

    ASM1166datasheet.pdf

    ASM1166datasheet.pdf

    ASM1153 datasheet

    ASM1153 USB转sata芯片datasheet

    ASM1053芯片数据手册

    ASM1053芯片数据手册 ASM1053-datasheet.pdf SATA转USB桥接控制器的手册

    ASM入门笔记

    Oracle ASM 元数据是Oracle ASM用来控制磁盘组并且元数据驻留在磁盘组中的信息

    汇编工具ASM汇编工具ASM汇编工具ASM汇编工具ASM

    汇编工具ASM汇编工具ASM汇编工具ASM汇编工具ASM汇编工具ASM

    asm的搜索图片数据

    是用于asm训练或搜索图片时的数据,是位图格式

    ASM1061_Data Sheet_R1_8

    ASM1061_Data Sheet_R1_8

    asm4-guide.pdf

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

    各种oracleasm rpm包(Linux下配置ASM使用)

    包含如下oracleasm包: kmod-oracleasm-2.0.6.rh1-3.el6.x86_64.rpm oracleasm-2.0.8-4.el6_6.src.rpm oracleasm-2.0.8-6.el6_7.src.rpm oracleasm-2.0.8-8.el7.src.rpm oracleasm-2.0.8-15.el7.centos.src.rpm ...

    ASM4使用指南 ASM GUIDE

    ASM4使用指南 ASM GUIDE

    EditPlus(附asm.acp,asm.stx)

    EditPlus是很好用的编辑软件 但网上下的很多EP版本需要自己添加asm.acp,asm.stx,不是很方便 这个里面附带了asm.acp,asm.stx

    asm 最新版手册

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

    开发工具 asm-5.1

    开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具 asm-5.1开发工具...

    ASM1061原理图

    ASM1061 原理图 PCIE转2 port Sata芯片 ASM1061 原理图 PCIE转2 port Sata芯片

    asm5.0 源码+demo+doc

    Java class 被存储在严格格式定义的 .class 文件里,这些类文件拥有足够的元数据来解析类中的所有元素:类名称、方法、属性以及 Java 字节码(指令)。ASM 从类文件中读入信息后,能够改变类行为,分析类信息,甚至...

Global site tag (gtag.js) - Google Analytics