Your SlideShare is downloading. ×
【Maclean liu技术分享】深入了解oracle asm(一)基础概念
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

【Maclean liu技术分享】深入了解oracle asm(一)基础概念

722
views

Published on

Published in: Technology

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
722
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 【Maclean Liu 技术分享】深入了解 Oracle ASM(一)基础概念 by Maclean.liu liu.maclean@gmail.com www.askmaclean.com
  • 2. About Mel Email:liu.maclean@gmail.coml Blog:www.askmaclean.coml Oracle Employeel Oracle Certified Database Administrator Master 10gand 11gl Over 7 years experience with Oracle DBA technologyl Over 8 years experience with Linux technologyl Member Independent Oracle Users Groupl Member All China Users Groupl Presents for advanced Oracle topics: RAC,DataGuard, Performance Tuning and Oracle Internal.
  • 3. How to Find ME?
  • 4. Automatic Storage Management 是 Oracle 在版本 10g 中率先(对比其他 RDBMS)提出的数据库存储自动解决方案,在版本 11g 中得到进一步升华。ASM 提供了数据库管理所需要的一个简单、有效的存储管理接口,该接口实现了跨服务器和存储平台。 ASM 是文件系统 filesystem 和 volume manager 卷管理软件的一体化,专门为 Oracle 的数据库文件锁设计的; ASM 在保证如文件系统般管理简单的基础上提供高性能的异步 Async IO。ASM 的引入提高了数据库的可扩展容量,同时节约了 DBA 的时间,使其能够更敏捷、更高效地管理一个流动性较大的数据库环境。ASM 的出现是为 RDBMS 管理文件存储 •注意 ASM 不会替代 RDBMS 去实施 IO 读写,很多对这一点存在误解,认为 RDBMS 发送 IO request 给 ASM,ASM 去做真正的 IO 操作,这是错误的。 •真正的 IO 还是由 RDBMS 进程去实施,和不用 ASM 的裸设备一样 •因此 ASM 不是 IO 的中间层,也就不存在因为 ASM 而出现所谓的 IO 瓶颈 •对于 ASM 而言 LUN DISK 可以是裸设备也可以直接是块设备(10.2.0.2 以后) •适合存放在 ASM 中的文件类型包括:数据文件 datafile、控制文件 controlfile、重做日志 redolog、 归档日志 archivelog、闪回日志 flashback log、spfile、RMAN 备份以及 block tracking file、datapump 文件 •从 11gR2 开始,ASM 引入了 ACFS 特性可以存放任何类型的文件; 但是 ACFS 不支持存放数据文 件ASM 基础概念: •ASM 的最小存储单位是一个”allocation unit”(AU),通常为 1MB,在 Exadata 上推荐为 4MB •ASM 的核心是存储文件 •文件被划分为多个文件片,称之为”extent” •11g 之前 extent 的大小总是为一个 AU,11g 之后一个 extent 可以是 1 or 8 or 64 个 AU •ASM 使用 file extent map 维护文件 extent 的位置 •ASM 在 LUN DISK 的头部 header 维护其元数据,而非数据字典 •同时 RDBMS DB 会在 shared pool 中缓存 file extent map,当 server process 处理 IO 时使用 •因为 ASM instance 使用类似于普通 RDBMS 的原理的 instance/crash recovery,所以 ASM instance 奔溃后总是能复原的。ASM 存储以 diskgroups 的概念呈现: •Diskgroup DG 对 RDBMS 实例可见,例如一个 DATA DG,对于 RDBMS 来说就是以’+DATA’表示 的一个存储点, 可以在该 DG 上创建一个 tablespace,例如: create tablespace ONASM datafile ‘+DATA’ size 10M。 •Diskgroup 下面是一个或者多个 failure group (FG) •FG 被定义为一组 Disk •Disk 在这里可以是裸的物理卷、磁盘分区、代表某个磁盘阵列的 LUN,亦或者是 LVM 或者 NAS 设 备 •多个 FG 中的 disk 不应当具备相同的单点故障,否则 ASM 的冗余无效ASM 所提供的高可用性:
  • 5. •ASM 提供数据镜像以便从磁盘失败中恢复 •用户可以选择 EXTERNAL、NORMAL、HIGH 三种冗余镜像 •EXTERNAL 即 ASM 本身不做镜像,而依赖于底层存储阵列资深实现镜像;在 External 下任何的写 错误都会导致 Disk Group 被强制 dismount。在此模式下所有的 ASM DISK 必须都存在健康,否则 Disk Group 将无法 MOUNT •NORMAL 即 ASM 将为每一个 extent 创建一个额外的拷贝以便实现冗余;默认情况下所有的文件都 会被镜像,这样每一个 file extent 都有 2 份拷贝。若写错误发生在 2 个 Disk 上且这 2 个 Disk 是 partners 时将导致 disk Disk Group 被强制 dismount。若发生失败的磁盘不是 partners 则不会引起数 据丢失和不可用。 •HIGH 即 ASM 为每一个 extent 创建两个额外的拷贝以便实现更高的冗余。2 个互为 partners 的 Disk 的失败不会引起数据丢失,当然不能有更多的 partners Disk 失败了。 •数据镜像依赖于 failure group 和 extent partnering 实现。ASM 在 NORMAL 或 HIGH 冗余度下可以 容许丢失一个 failure group 中所有的磁盘。Failure Group 镜像的使用 •ASM 的镜像并不像 RAID 1 那样 •ASM 的镜像基于文件 extent 的粒度,extent 分布在多个磁盘之间,称为 partner •Partner disk 会存放在一个或者多个分离的 failure group 上 •ASM 自动选择 partner 并限制其数量小于 10 个 •若磁盘失败,则 ASM 更新其 extent map 使今后的读取操作指向剩余的健康 partner •在 11g 中,若某个 disk 处于 offline 状态,则对于文件的变更会被追踪记录这样当 disk 被重现 online 时则这些变化得以重新应用,前提是 offline 的时间不超过 DISK_REPAIR_TIME 所指定的时间(默认 为 3.6 个小时). 这种情况常发生在存储控制器故障或者类似的短期磁盘故障: •这种对于文件变更的追踪基于一个发生变化的 file extent 的位图,该位图告诉 ASM 哪些 extents 需 要从健康的 partner 哪里拷贝至需要修复的 disk,该特性称之为 fast mirror resync •在 10g 中没有 fast mirror resync 特性,若 disk 出现 offline 则直接自动被 drop 掉,不存在允许修复 的周期 •对于无法再 online 的 disk,则必须被 drop 掉; 一个新的 disk 会被 ASM 选择并通过 rebalancing 操 作拷贝数据,这些工作是后台自动完成的。重新平衡 Rebalancing •Rebalancing 是在磁盘之间移动文件 extent 以实现 diskgroup 上的 IO 负载均衡的过程 •Rebalancing 在后台异步发生,是可监控的 •在集群环境中,一个 diskgroup 的重平衡只能在一个 ASM instance 上发生,不能通过集群多节点同 时处理以加速 •当 disk 被加入或移除时,ASM 会自动在后台开始数据重新平衡工作 •重平衡的速度和力度可以通过 asm_power_limit 参数控制 •asm_power_limit 参数默认为 1,其范围为 0~11(从 11.2.0.2 开始是 0-1024),该参数控制实施重平 衡后台进程的数量;Level 0 表示不实施重新平衡 •在重新平衡过程中 IO 性能(主要是吞吐量和响应时间)可能受到影响,其影响程度取决于存储本身的 能力和重新平衡的力度,默认的 asm_powner_limit=1 不会造成过度的影响性能方面
  • 6. •ASM 会通过在 DG 中条带化文件 extent 分布以最大化可用的 IO 带宽 •有 2 种可用条带化宽度:coarse 粗糙条带化大小为 1 个 AU,fine 精细条带化为 128K •即便是 fine 精细条带化仍采用普通大小的 file extent,但是条带化以更小的片形式循环式地分布在 多个 extent 上 •ASM 默认不让 RDBMS 去读备用的镜像拷贝 extent,即使这样请放心 IO 还是均衡的 •默认情况下 RDBMS 总是去读取主 primary extent,从 11.1 开始可以通过 PREFERRED_READ_FAILURE_GROUP 参数设置让本地节点优先读取某个 failure group 中的 extent; 该特性主要为 extended distance RAC 设计,不建议在常规 ASM 中使用其他知识 •并非 RAC 才能使用 ASM,单节点同样可以从 ASM 哪里获得好处 •节点上的一个 ASM instance 实例可以为多个 RDBMS DB 实例服务 •RAC 环境中的 ASM 必须也是集群化的,以便能够协调更新元数据 •从 11.2 开始,ASM 从 RDBMS HOME 分离出来,而和 clusterware 一起安装在 GRID HOME 下。Disk Group:Disk Group”磁盘组” 是 ASM 管理的逻辑概念对象,一个 Disk Group 由多个 ASM disk 组成。每一个 DiskGroup 都是子描述的,如同一个标准的文件系统一样。所有关于该 Diskgroup 空间使用信息的元数据均完整地包含在这个磁盘组中。 若 ASM 可以找到所有属于该 ASM diskgroup 的 DISK 则他不需要任何其他额外的元数据。文件空间从 Disk Group 中分配。任何一个 ASM 文件总是完整地包含在一个单独的 Disk Group 中。但是,一个 Disk Group 可能包含了属于多个数据库的文件,一个单独的数据库的文件也可以存放在多个不同的 Disk Group 中。 在大多数实际的部署中,不会创建太多数量的 Disk Groups,一般在 3~4 个。Disk Group 提供三种不同的 redundancy 冗余度,详见上文。ASM Disk一个 ASM Disk 是组成 Disk Group 的基本的持久的存储。 当一个 ASM Disk 加入到 Disk Group 中时,它要么采用管理员指定的 ASM Disk Name 要么采用系统自动分配的 Disk Name。 这不同于 OS 给用于访问该设备的”艺名”。 在一个 Cluster 集群中, 同一个 Disk 可能在不同的节点上显示不同的 Device Name设备名,例如在 Node1 上的 /dev/sdc ,对应于 Node2 上的/dev/sdd。 ASM Disk 必须在所有使用该 DiskGroup 的实例上可用直接磁盘 I/O 访问。实际上对于 RDBMS Oracle 而言访问 ASM disk 和访问普通的文件并没有什么不同,除非使用了ASMLIB(ASMLIB 不是 ASM 必须的,再次强调!)。常规情况下 ASM Disk 是 OS 上可见的 LUN 的partition,该分区覆盖了所有不被操作系统所保留的磁盘的空间。 大多数操作系统需要保留 LUN 的第一个 block 作为分区表(partition table); 由于 ASM 总是会写 ASM Disk 的第一个块,所以要保证 ASM 不会去覆盖前几个 block 上的分区表(partition table),例如在 Solaris 上分区时不要把前几个柱面划给partition。LUN 可以是简单的物理 JBOD,或者是由高级存储阵列管理的虚拟 LUN。既可以是直连的设备也可以是 SAN。ASM Disk 可以是任何被开发系统调用所访问的东西,除了本地文件系统。 甚至于 NFS上的文件都可以被当做一个 ASM Disk 来用,这样便于喜欢 NAS 的用户使用 ASM,当然比起 NFS 来我更建议干脆用 ISCSI。
  • 7. 注意虽然可以使用普通 logical Volume Manager LVM 管理的 logical volume 作为 ASM Disk,但是这并不是推荐组合,除非你想不到其他更好的办法。 即便你一定要这样用,但是注意也不要在 LVM 级别做镜像和条带化。ASM 将任何文件以 AU 大小均匀分布在 Disk Group 的所有 Disk 上。每一个 ASM Disk 均被维护以保持同样的使用比率。这保证同一个 Disk Group 中的所有 Disk 的 IO 负载基本一致。由于 ASM 在一个 DiskGroup 中的磁盘上的负载均衡,所以为同一个物理磁盘的不同区域划分为 2 个 ASM Disk 不会对性能有所影响;而同一个物理磁盘上划分 2 个不同分区置于不同的 2 个 Disk Group 则有效。当 ASM Disk Group 启用冗余时单个 ASM Disk 仅是一个失败单元。对于该 ASM Disk 的写失败在 10g 会自动从该 Disk Group drop 掉该 Disk,前提是该 Disk 的丢失被容许。Allocation Unit每一个 ASM Disk 都被划分为许多个 AU allocation units(单个 AU 的大小在 1MB ~64MB,注意总是 2 的次方 MB)。而且 AU allocation unit 也是 Disk Group 的基本分配单元。一个 ASM Disk 上的可用空间总是整数倍个 AU。在每一个 ASM Disk 的头部均有一个表,该表的每一条记录代表该 ASM Disk 上的一个AU。文件的 extent 指针(pointer)给出了 ASM Disk Number 磁盘号和 AU 号,这就描述了该 extent 的物理位置。由于所有的空间操作都以 AU 为单位,所以不存在所谓 ASM 碎片这样的概念和问题。一个 AU(1M~64M)足够小,以便一个文件总是要包含很多个 AU,这样就可以分布在很多磁盘上,也不会造成热点。一个 AU 又足够大以便能够在一个 IO 操作中访问它,以获得更加的吞吐量,也能提供高效的顺序访问。访问一个 AU 的时间将更多的消耗在磁盘传输速率上而非花在寻找 AU 头上。对于 Disk Group的重新平衡也是对每一个 AU 逐次做的。了解 ASM 后台进程的作用:GMON: ASM Diskgroup 监控进程ASMB: ASM 后台网络进程RBAL: ASM reblance master process 重新平衡主进程ARBx: reblance slave process 实际实施 reblance 的后台进程MARK: AU resync AU 重新同步的指挥家进程了解 ASM 前台进程的作用:ASM 的 client(主要是 RDBMS DB 和 CRSD))在连接 ASM 实例时会产生前台进程,前天进程的名字一般为 oracle+ASM_<process>_<product> (例如: oracle+ASM_DBW0_DB1)。OCR 特有的前台进程 foreground: oracle+ASM1_ocr
  • 8. ASM 相关的 V$和 X$视图视图名 X$基表名 描述V$ASM_DISKGROUP X$KFGRP 实施磁盘发现 disk discovery 和列出磁V$ASM_DISKGROUP_STAT X$KFGRP_STAT 显示 disk group 状态 实施磁盘发现 disk discovery 和列出磁V$ASM_DISK X$KFDSK, X$KFKID 些磁盘的使用度量信息V$ASM_DISK_STAT X$KFDSK_STAT,X$KFKID 列出磁盘和其使用度量信息V$ASM_FILE X$KFFIL 列出 ASM 文件也包括了元数据信息V$ASM_ALIAS X$KFALS 列出了 ASM 的别名,文件和目录V$ASM_TEMPLATE X$KFTMTA 列出可用的模板和其属性V$ASM_CLIENT X$KFNCL 列出链接到 ASM 的 DB 实例V$ASM_OPERATION X$KFGMG 列出 rebalancing 重平衡操作N/A X$KFKLIB 可用的 ASMLIB 路径N/A X$KFDPARTNER 列出 Disk-partners 关系N/A X$KFFXP 所有 ASM 文件的 extent mapN/A X$KFDAT 所有 ASM Disk 的 extent 列表N/A X$KFBH 描述 ASM cacheN/A X$KFCCE ASM block 的链表V$ASM_ATTRIBUTE(new in 11g) X$KFENV(new in 11g) Asm 属性,该 X$基表还显示一些隐V$ASM_DISK_IOSTAT(new in X$KFNSDSKIOST(new in 11g) I/O 统计信息11g)N/A X$KFDFS(new in 11g)N/A X$KFDDD(new in 11g)N/A X$KFGBRB(new in 11g)N/A X$KFMDGRP(new in 11g)N/A X$KFCLLE(new in 11g)N/A X$KFVOL(new in 11g)N/A X$KFVOLSTAT(new in 11g)N/A X$KFVOFS(new in 11g)N/A X$KFVOFSV(new in 11g)
  • 9. X$KFFXP 包含了文件、extent 和 AU 之间的映射关系。 从该 X$视图可以追踪给定文件的 extent 的条带化和镜像情况。注意对于 primary au 和 mirror au 读操作的负载是均衡的, 而写操作要求同时写 2 者到磁盘。以下是 X$KFFXP 视图列的含义X$KFFXP Column Name DescriptionADDR x$ table address/identifierINDX row unique identifierINST_ID instance number (RAC)NUMBER_KFFXP ASM file number. Join with v$asm_file and v$asm_aliasCOMPOUND_KFFXP File identifier. Join with compound_index in v$asm_fileINCARN_KFFXP File incarnation id. Join with incarnation in v$asm_filePXN_KFFXP Progressive file extent numberXNUM_KFFXP ASM file extent number (mirrored extent pairs have the same extent value)GROUP_KFFXP ASM disk group number. Join with v$asm_disk and v$asm_diskgroupDISK_KFFXP Disk number where the extent is allocated. Join with v$asm_disk Relative position of the allocation unit from the beginning of the disk. TheAU_KFFXP allocation unit size (1 MB) in v$asm_diskgroup 0->primary extent, ->mirror extent, 2->2nd mirror copy (high redundancy andLXN_KFFXP metadata)FLAGS_KFFXP N.K.CHK_KFFXP N.K.X$KFDAT 该 X$视图包含了所有 allocation unit AU 的细节,不管是 FREE 的还是 USED。X$KFDAT Column Name DescriptionADDR x$ table address/identifierINDX row unique identifierINST_ID instance number (RAC)
  • 10. GROUP_KFDAT diskgroup number, join with v$asm_diskgroupNUMBER_KFDAT disk number, join with v$asm_diskCOMPOUND_KFDAT disk compund_index, join with v$asm_disk Disk allocation unit (relative position from the beginning of the disk), join withAUNUM_KFDAT x$kffxp.au_kffxpV_KFDAT V=this Allocation Unit is used; F=AU is freeFNUM_KFDAT file number, join with v$asm_fileI_KFDAT N/KXNUM_KFDAT Progressive file extent number join with x$kffxp.pxn_kffxpRAW_KFDAT raw format encoding of the disk,and file extent informationX$KFDPARTNER 这个 X$视图包含了 disk-partner(1-N)的映射关系,在一个给定 ASM Diskgroup,若 2个 Disk 存有同一个 extent 的镜像拷贝,则将 2 个 disk 视作 partners。因此 partners 必须属于同一个diskgroup 下的不同的 failgroup。X$KFDPARTNER Column DescriptionNameADDR x$ table address/identifierINDX row unique identifierINST_ID instance number (RAC)GRP diskgroup number, join with v$asm_diskgroupDISK disk number, join with v$asm_diskCOMPOUND disk identifier. Join with compound_index in v$asm_diskNUMBER_KFDPARTNER partner disk number, i.e. disk-to-partner (1-N) relationshipMIRROR_KFDPARNER if=1 in a healthy normal redundancy configPARITY_KFDPARNER if=1 in a healthy normal redundancy configACTIVE_KFDPARNER if=1 in a healthy normal redundancy config研究 ASM 必要的技巧1)找出 ASM 的镜像 mirror extent,在例子中是 ASM 的 spfile
  • 11. [grid@localhost ~]$ sqlplus / as sysasmSQL*Plus: Release 11.2.0.3.0 Production on Wed Feb 13 11:13:39 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Automatic Storage Management optionINSTANCE_NAME----------------+ASMSQL>SQL> show parameter spfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string +SYSTEMDG/asm/asmparameterfile /registry.253.805993079select GROUP_KFFXP, DISK_KFFXP, AU_KFFXP from x$kffxpwhere number_kffxp = (select file_number from v$asm_alias where name = REGISTRY.253.805993079);GROUP_KFFXP DISK_KFFXP AU_KFFXP----------- ---------- ---------- 3 2 38 3 1 39 3 0 44
  • 12. 也可以这样定位select GROUP_KFDAT, NUMBER_KFDAT, AUNUM_KFDAT from x$kfdatwhere fnum_kfdat = (select file_number from v$asm_alias where name = REGISTRY.253.805993079)GROUP_KFDAT NUMBER_KFDAT AUNUM_KFDAT----------- ------------ ----------- 3 0 44 3 1 39 3 2 38==> 找到该 DISK 对应的路径SQL> select path,DISK_NUMBER from v$asm_disk where GROUP_NUMBER=3 and disk_numberin (0,1,2);PATH DISK_NUMBER-------------------- -----------/dev/asm-diski 2/dev/asm-diskh 1/dev/asm-diskg 0SQL> create pfile=/home/grid/pfile from spfile;File created.SQL> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.3.0- 64bit ProductionWith the Automatic Storage Management option[grid@localhost ~]$ cat pfile+ASM.asm_diskgroups=EXTDG,NORDG#Manual Mount*.asm_diskstring=/dev/asm*
  • 13. *.asm_power_limit=1*.diagnostic_dest=/g01/app/grid*.instance_type=asm*.large_pool_size=12M*.local_listener=LISTENER_+ASM*.remote_login_passwordfile=EXCLUSIVE通过 dd 读取该 AU[grid@localhost ~]$ dd if=/dev/asm-diski of=/tmp/spfile.dmp skip=38 bs=1024kcount=11+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.00328614 seconds, 319 MB/s[grid@localhost ~]$ strings /tmp/spfile.dmp+ASM.asm_diskgroups=EXTDG,NORDG#Manual Mount*.asm_diskstring=/dev/asm**.asm_power_limit=1*.diagnostic_dest=/g01/app/grid*.instance_type=asm*.large_pool_size=12M*.local_listener=LISTENER_+ASM*.remote_login_passwordfile=EXCLUSIVE[grid@localhost ~]$ dd if=/dev/asm-diskh of=/tmp/spfile1.dmp skip=39 bs=1024kcount=11+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.0325114 seconds, 32.3 MB/s[grid@localhost ~]$ strings /tmp/spfile1.dmp+ASM.asm_diskgroups=EXTDG,NORDG#Manual Mount*.asm_diskstring=/dev/asm**.asm_power_limit=1*.diagnostic_dest=/g01/app/grid
  • 14. *.instance_type=asm*.large_pool_size=12M*.local_listener=LISTENER_+ASM*.remote_login_passwordfile=EXCLUSIVE[grid@localhost ~]$ dd if=/dev/asm-diskg of=/tmp/spfile2.dmp skip=44 bs=1024kcount=11+0 records in1+0 records out1048576 bytes (1.0 MB) copied, 0.0298287 seconds, 35.2 MB/s[grid@localhost ~]$ strings /tmp/spfile2.dmp+ASM.asm_diskgroups=EXTDG,NORDG#Manual Mount*.asm_diskstring=/dev/asm**.asm_power_limit=1*.diagnostic_dest=/g01/app/grid*.instance_type=asm*.large_pool_size=12M*.local_listener=LISTENER_+ASM*.remote_login_passwordfile=EXCLUSIVE2) 显示 asm disk failure group 和 disk partners 的映射关系: 1* select DISK_NUMBER,FAILGROUP,path from v$asm_disk where group_number=3SQL> /DISK_NUMBER FAILGROUP PATH----------- ------------------------------ -------------------- 3 SYSTEMDG_0003 /dev/asm-diskj 2 SYSTEMDG_0002 /dev/asm-diski 1 SYSTEMDG_0001 /dev/asm-diskh 0 SYSTEMDG_0000 /dev/asm-diskgSQL> select disk,NUMBER_KFDPARTNER,DISKFGNUM from X$KFDPARTNER where grp=3;
  • 15. DISK NUMBER_KFDPARTNER DISKFGNUM---------- ----------------- ---------- 0 1 1 0 2 1 0 3 1 1 0 2 1 2 2 1 3 2 2 0 3 2 1 3 2 3 3 3 0 4 3 1 4 3 2 412 rows selected.ASM 常见问题, FAQ:Q:ASM 做 rebalance 和 mirror 的基本颗粒是什么?A: ASM 做 mirror 镜像的基本颗粒是 file 的 extent,默认情况下一个 extent 等于一个 AU,11g 之后一个extent 可以是 1 or 8 or 64 个 AUASM 做 rebalance 重新平衡的基本颗粒也是 extent,虽然重新平衡是对每一个 AU 逐次做的。Q:ASMLIB 和 ASM 的关系是什么?A:ASMLIB 是一种种基于 Linux module,专门为 Oracle Automatic Storage Management 特性设计的内核支持库(kernel support library)。简单来说 ASMLIB 是一种 Linux 下的程序包,它不属于 Oracle ASM kernel。 通过 ASMLIb 可以做到设备名绑定,便于 ASM 使用的目的; 但是 Linux 上能实现设备名绑定并便于 ASM 使用的服务有很多,例如udev、mpath 等;所以 ASMLIB 并不是 ASM 必须的组件; 国内的中文文章对于该概念的描述大多不清晰,造成了ASMLIB=ASM 或者 ASM 必须用 ASMLIB 的误解,这是以讹传讹。ASMLIB 的缺点见拙作《Why ASMLIB and why not?》一文Q: ASM 是否是 raid 10 或者 raid 01?A:ASM 的 mirror 是基于 file extent 的,而不是像 raid 那样基于 disk 或者 block。 所以 ASM 既不同于 Raid
  • 16. 10,也不是 Raid 01。 如果硬要说相似点的话,因为 ASM 是先 mirror 镜像后 stripe 条带化,所以在这个特征上更像 Raid 10。 但是注意,再次强调,ASM 既不是 RAID 10 也不是 RAID 01, 重复一千遍。。。。。。。。。。。。。相关文章链接:Asm Instance Parameter Best Practice为什么 RHEL 6 上没有 ASMLIB?Unix 上如何查看文件名开头为”+asm”的 TRACE 文件asm_power_limit 对 IO 的影响针对 11.2 RAC 丢失 OCR 和 Votedisk 所在 ASM Diskgroup 的恢复手段10g ASM lost disk log11gR2 RAC ASM 启动揭秘在 11gR2 RAC 中修改 ASM DISK Path 磁盘路径在 Linux 6 上使用 UDEV 解决 RAC ASM 存储设备名问题Script:找出 ASM 中的 Spfile 参数文件如何诊断 ASMLIB 故障Script:收集 ASM 诊断信息Comparation between ASM note [ID 373242.1] and note [ID 452924.1]Why ASMLIB and why not?ASM file metadata operation 等待事件几个关于 oracle 11g ASM 的问题利用 UDEV 服务解决 RAC ASM 存储设备名Discover Your Missed ASM DisksOracle 内部视图 X$KFFXPFixed X$ Tables in ASM了解 AMDU 工具生成的 MAP 文件使用 AMDU 工具从无法 MOUNT 的 DISKGROUP 中抽取数据文件© 2013, www.askmaclean.com. 版权所有.文章允许转载,但必须以链接方式注明源地址,否则追求法律责任.