ASM的争论

作者:八神 | 分类: 大话技术 | 标签: | 日期:2009-07-30

今天下午部门里的几个达人针对ASM发生了激烈的争论,其实观点上大同小异,只是表达上理解的有点偏差

ASM实例其实就是一个LVM,负责对OS一级磁盘的管理,这里把磁盘说成lun更准确点,因为磁盘容易让人理解
为最底层的存储上的铁疙瘩,而ASM只会认识LUN,至于这个LUN下面由多少个小盘组成,怎么做stripe是不关心的,
在这点上几位大牛的观点是一致的,但还是吵了半天

ASM完成的是一个翻译工作,他本身并不负责到LUN上获取数据来返回给oracle用户进程,因为要这么操作的话,
ASM必须针对前面的oracle进程,建立对应的服务进程来服务,而ASM实例启动后,进程数量不会发生大的数量,
如果是以这么少的进程服务于前台所有的IO请求,肯定会成为瓶颈,通过实际的fuser观察,用户进程查询时,
也是自己的进程关联上/dev下的设备,在这个过程中,ASM会将oracle请求的文件号,块号翻译成他所管理的LUN
上的对应地址,转交给oracle用户进程,用户拿了这些地址,再去LUN上做IO请求,这些请求如何到达最末端的
真实磁盘,oracle不关心,也管不着

最后一个问题,既然是由oracle进程自己去请求这些数据块,那ASM的访问就应该是串行的,因为一个进程同时只能做一个
事情,这点上我觉得应该还是并行访问,因为用户进程可以批量的发送IO请求,不会等待这个IO完成了,再发送下一个IO,
一批IO下去,各个磁盘自觉认领,我等你们大家的结果就可以了,最后返回给上层,继续发IO请求,周而复始

3人发表了评论  ↓发表评论↓
  • asm就是一个lvm,asm的进程可以理解为aix 下的 gsclvmd,只不过套了oracle的大马甲

    aix有几个concurrent vg ,就有几个gsclvmd 进程

    lvm的工作其实就是做地址转换,感觉一般瓶颈不会在这里

    hoterran @ August 1, 2009 |

  • ASM 还要做并发IO的协调吧?!
    既然取代了CLVM,必然是要做CLVM一样的事情哦~

    Rain@DNA @ August 12, 2009 |

  • 并发IO的协调,这个应该属于ASM翻译工作的一部分
    clvm这个功能应该是clusterware+ASM来共同完成的,
    cluster负责共享资源的并发控制,锁定排斥等,ASM负责lun的管理,IO的协调控制
    AIX的concurrent vg也是需要HACMP这样的群集软件来配合实施使用,本身的LVM不会带有cluster功能,不过这个东西这边确实没有使用过,呵呵

    八神 @ August 15, 2009 |

表情:<( ̄︶ ̄)> | (⊙ˍ⊙) | >﹏< | b( ̄▽ ̄)d | (─.─||) | (^_-)

[ Ctrl+Enter提交 ]

阿里巴巴DBA出品