ASM实验手册22-03_Oracle数据库教程_安装和配置ASMLib
[color=rgb(170,170,170)]ASM实验手册22-03_Oracle数据库教程_安装和配置ASMLib[color=rgb(170,170,170)]ASMLIB是一种基于Linux module,专门为Oracle Automatic Storage Management特性设计的内核支持库(kernel support library)。[color=rgb(170,170,170)]长久以来我们对ASMLIB的认识并不全面,这里我们来具体了解一下使用ASMLIB的优缺点。[color=rgb(170,170,170)]理论上我们可以从ASMLIB API中得到的以下益处:[list=1]
[*]总是使用direct,async IO
[*]解决了永久性设备名的问题,即便在重启后设备名已经改变的情况下
[*]解决了文件权限、拥有者的问题
[*]减少了I/O期间从用户模式到内核模式的上下文切换,从而可能降低cpu使用率
[*]减少了文件句柄的使用量
[*]ASMLIB API提供了传递如I/O优先级等元信息到存储设备的可能
[color=rgb(170,170,170)]虽然从理论上我们可以从ASMLIB中得到性能收益,但实践过程中这种优势是几乎可以忽略的,没有任何性能报告显示ASMLIB对比Linux上原生态的udev设备管理服务有任何性能上的优势。在Oracle官方论坛上有一篇[color=#8d8c8c]
[*]对于多路径设备(multipathing)需要在/etc/sysconfig/oracleasm-_dev_oracleasm配置文件中设置ORACLEASM_SCANORDER及ORACLEASM_SCANEXCLUDE,以便ASMLIB能找到正确的设备文件,具体可以参考[color=#8d8c8c]Metalink Note
[*][color=#8d8c8c]Why ASMLIB and why not?
[*]因为ASM INSTANCE使用ASMLIB提供的asm disk,所以增加了额外的层面
[*]每次Linux Kernel更新,都需要替换新的ASMLIB包
[*]增加了因人为错误造成宕机downtime的可能
[*]使用ASMLIB意味着要花费更多时间去创建和维护
[*]因为ASMLIB的存在,可能引入更多的bug,这是我们最不想看到的
[*]使用ASMLIB创建的disk,其disk header并不会和普通的asm disk header有什么不同,仅仅是在头部多出了ASMLIB的属性空间。