【IT168技术文档】简单介绍一下在今年即将发布的Oracle 11g中存储级别的ASM (Automatic Storage Management)的一些新功能。
1. ASM Fast Mirror Resync
在10g的ASM中如果因为某些硬件故障(比如接口线,比如光纤卡,比如电源)导致Diskgroup中的某些磁盘无法正常读取,这些磁盘将处于offline状态,在offline之后不久ASM就会把这些磁盘从Diskgroup中删除,并且尝试利用冗余的extent来重新在其它磁盘中构建数据,这是一个比较耗时且耗资源的操作。当我们修复了磁盘,再将它们重新加回磁盘组中,又将是另外一次的数据重整操作。如果我们仅仅是例行的维护硬件,因为磁盘中的数据并没有真正的损坏,我们只是将磁盘取出来过一会儿再加回去,那么这样的两次数据重整操作无疑是没有必要的,在11g中ASM的Fast Mirror Resync功能允许我们设置磁盘的repair时间,在repair时间内ASM将不会尝试在磁盘间重新分配extent。
ALTER DISKGROUP dgroup SET ATTRIBUTE 'DISK_REPAIR_TIME'='3H';
上述命令可以设置当磁盘组dgroup中的磁盘失效和重新有效之间的时间在3小时内的话,ASM就不会重新构建extent,当磁盘重新有效之后,ASM需要做的只是将这3小时内更改的extent重新同步到刚才失效的这些磁盘中就可以了。
2. ASM Preferred Mirror Read
我们知道在10g中ASM总是会去读取Primary extent,这样做的目的是为了更好的分散IO,但是在某些环境中,一个ASM磁盘组中的磁盘对于某一个特定的节点来说,有些是Local Disk而有些则是Remote Disk,从Remote Disk中读取数据效率会低于Local Disk,但是在10g中我们无法要求从哪组磁盘中读取数据,在11g中新增的ASM_PREFERRED_READ_FAILURE_GROUPS参数帮助我们完成了这个功能。给每个实例设置优先读取的Failure Group就可以了。
3. ASM扩展性的增强
更详细的数据留待11g正式版出来以后再说吧,目前知道的是对于外部冗余(External redundancy),ASM可以最大支持到140PB了,而在10g中这个数字仅仅是35TB。