Exadata的磁盘自动管理-3-磁盘自动管理的操作规则

联系:QQ(5163721)

标题:Exadata的磁盘自动管理-3-磁盘自动管理的操作规则

作者:Lunar©版权所有[文章允许转载,但必须以链接方式注明源地址,否则追究法律责任.]

Exadata的磁盘自动管理-1-教你读懂cell alert中的磁盘相关信息
Exadata的磁盘自动管理-2-Cell上各种磁盘相关的概念
Exadata的磁盘自动管理-3-磁盘自动管理的操作规则
磁盘自动管理的一些条件和限制:


1. Griddisk 的状态改变时(OFFLINE/ONLINE):
如果一个griddisk的状态变为临时不可用(temporarily unavailable),那么它会在ASM中被自动的变更为OFFLINED。
如果一个griddisk的状态变成可用的(available),那么它会在ASM中被自动的变更为ONLINED


2. Griddisk的DROP磁盘的操作
如果一个物理盘(physicaldisk)失效了,所有在这个物理盘之上的griddisk都会在ASM中自动的以FORCE选项DROP。
如果一个物理盘(physicaldisk)的状态变为’predictive failure’,所有在这个物理盘之上的griddisk都会在ASM中被自动DROP。
‘predictive failure’的概念参见前面的《Exadata的磁盘自动管理-1-读懂cell alert的磁盘信息》
如果一个flashdisk出现性能降级,相应的griddisk都会在ASM中自动的以FORCE选项DROP。


3. Griddisk的ADD磁盘的操作
如果更换了一个物理盘,该物理盘上对应的celldisk和griddisk都会被重新自动的创建,并且在创建后自动的加入到ASM中。当然,这个是要求换盘之前这个盘是完全自动管理的,也就是之前他是被自动的在ASM中drop的。
如果手工的drop了griddisk(不带force选项),那么就需要手工的将盘加回到ASM中。
如果griddisk是NORMAL状态,并且在ONLINE模式,那么使用FORCE选线drop了磁盘(这个模式通常必须使用FORCE选项),他也会被自动加回到ASM中。


4. 对CELL进行rolling upgrade时,Griddisk 的状态发生改变:OFFLINE/ONLINE
Before the upgrade all griddisks will be inactivated on the storage cell and OFFLINED in ASM. After the upgrade all griddisks will be activated on the storage cell and ONLINED in ASM.


升级前,cell上所有的griddisk会变为inactive状态,且在ASM中变为OFFLINED状态。
升级后,cell上所有的griddisk会变被激活(状态为active),且在ASM中变为ONLINED状态。


5. 手工改变 griddisk 状态:activation/inactivation
如果cell上griddisk的状态为inactivated,他就会在ASM中被自动的变为OFFLINED。
如果cell上griddisk的状态为activated,他就会在ASM中被自动的变为ONLINED。


不能自动完成的磁盘操作包括:
MOUNT ASM 磁盘组
celldisk EXPORT
celldisk IMPORT


Exadata自动管理磁盘的实现,离不开3个主要进程(cellsrv,ms,rs):
CELLSRV是Exadata上存储服务器的主要组成部件,它是一个多线程服务器,主要针对简单的块请求和智能扫描请求(如投影和筛选的表扫描等)提供服务,另外,CELLSRV也与DBRM协同工作来计量各种数据库和客户组在发送IO时所用IO带宽。
CELLSRV收集与操作相关的大力统计信息。Oracle数据库和ASM进程使用LIBCELL和CELLSRV通信,LIBCELL使用iDB协议将IO请求转换为要发送给CELLSRV的消息。


MS(管理服务器),MS提供Exadata cell管理和配置的功能。MS监控cell上硬件的改变(比如插拔磁盘等等)或者告警(比如 disk failure),并通过ioctl系统调用(input/output control)来通知CELLSRV。
ASM实例上跟CELL的CELLSRV通信的进程,在ASM的一段也是通过IOCTL系统调用来检查是否需要有什么相应的行动(比如online或者offline等等)。


自动管理功能对于非计划的事件(unplanned events,例如 disk failure)和计划的活动(例如 cell打patch时’deactivating disks’)都有作用。
磁盘的deactivation是在cell上执行的,但是ASM会响应这一动作,即将相关磁盘OFFLINE。


RS(重启服务器),RS用于启动和关闭CELLSRV和MS服务,并监控这些服务进程的状态,在必要时负责重新启动cellsrv和ms。


在ASM上会有两个进程执行磁盘自动管理的工作,即Exadata Automation Manager (XDMG)和Exadata Automation Manager (XDWK) :


Exadata Automation Manager (XDMG) 监控所有cell配置的状态的改变,比如一个替换一个故障盘后,需要执行此类事件所需的任务。
它的主要任务是监控无法访问的磁盘和cell,当他们重新变为可访问时,发出让ASM将该盘ONLINE的操作。


Exadata Automation Manager (XDWK)执行XDMG所要求的自动任务。
当XDMG进程请求一些异步操作时就会启动这个进程,例如磁盘 ONLINE, DROP 和 ADD。
当该进程空闲5分钟后,就会自行关闭,等待XDMG的下次请求时再被自动启动。


这两个进程都可以被是ASM的“非核心”进程,在某些情况下可以被kill,系统就会自动重启这两个进程。例如,有些老版本中,系统自动在ASM中加盘或者删盘有问题。


在ASM中,有几个跟磁盘自动管理相关参数:
_AUTO_MANAGE_EXADATA_DISKS ,_AUTO_MANAGE_NUM_TRIES ,_AUTO_MANAGE_MAX_ONLINE_TRIES
具体含义,以前ML和月明都曾经讲过,我也没search到他们的blog,有兴趣的,可以自行google和百度。O(∩_∩)O哈哈~。


跟自动管理相关的配置文件:
$OSSCONF/cell_disk_config.xml,包含了IORM plans,cell信息,disk信息等等
$OSSCONF/griddisk.owners.dat,包含了下面的信息:
ASM disk name (normally the same as griddisk name)
ASM diskgroup name
ASM failgroup name (normally the same as cell name)
Cluster identifier (which cluster this disk belongs to)
Requires DROP/ADD (should the disk be dropped from or added to ASM)


常用的磁盘自动管理的trace方法:


启用ASM上的磁盘自动管理的trace:
SQL> alter system set event=’trace[KXDAM] memory highest, disk highest’ scope=spfile sid=’*';

禁用ASM上的磁盘自动管理的trace:
SQL> alter system reset event scope=spfile sid=’*';

在cell上启用磁盘自动管理的trace:
CellCLI> alter cell events=’trace[cellsrv.cellsrv_events_layer] memory=highest,disk=highest’

在cell上禁用磁盘自动管理的trace:
CellCLI> alter cell events=’trace[cellsrv.cellsrv_events_layer] off’

此条目发表在 内部机制 分类目录,贴了 , , , , , 标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>