7343696
2023/01/05阅读:16主题:默认主题
ASMFD系列一:ASMFD的介绍与常见问题
ASMFD全称ASM Filter Driver,是Oracle在12.1.0.2版本中引入的新功能,是操作系统内核模块,主要的目的是为了简化Oracle的配置、提供统一的磁盘名字和权限的管理、减少Oracle数据库对主机配置的依赖和提升数据库部署的易用性。最近在某个客户那里遇到ASMFD异常的情况,下面通过几篇博客来简单讲解一下ASMFD的功能、常见问题及大家比较关注是否在正常环境中使用它。
ASMFD主要有三个功能:
-
固定磁盘组名字和权限
在Linux平台中,磁盘名字是系统在启动过程中udev根据磁盘扫描的顺序而生成,每次启动时因udev发现磁盘顺序不同,顾生成的磁盘的名字也不固定。在Oracle 10g推出CRS和ASM技术后,要求ASM所有节点的磁盘名字一致,故Oracle推出了对应的磁盘名字固定的解决方案。在10G和11G的Linux平台中,我们常常使用Oracle推出的asmlib解决方案,asmlib具有配置简单、易用的特点,同时还支持多路径环境。但asmlib在一起特殊的情况下存在清空asmlib磁盘标签头的信息,顾asmlib解决方案逐渐被弃用。除asmlib解决方案外,Oracle也兼容操作系统自带的磁盘别名或者多路径解决方案,比如Linux平台的udev、AIX的mpath、软连接等多种方法。由于不同系统平台的技术方案都不一样,需要DBA对不同操作系统的技术都非常熟悉,增加对DBA技术能力的要求和实施数据库的技术复杂性。在12.1.0.2中,Oracle再次推出新的技术:ASMFD,具备原Linux平台asmlib的功能,同时还支持多种操作系统,目前支持Linux和Solaris平台,在代码中也可以看到AIX和Win等关键字,相信不久以后会逐渐的支持这两种平台。
-
过滤非Oracle进程的IO操作
在默认情况下,用户只要有对磁盘的写权限,就可以对磁盘进行写操作,如通过dd命令向磁盘写入数据,此时必将破坏磁盘里面原有数据,如果磁盘用于ASM环境,将导致磁盘组异常无法正常mount或者磁盘组里面的数据文件损坏,导致数据库无法正常打开。ASMFD可实现只允许Oracle的进程通过Oracle的接口才能向AFD的磁盘写入数据,防止非Oracle的进程向ASM磁盘写入数据,破坏ASM磁盘组的数据库,提升ASM磁盘的安全性,提升数据库数据库的可靠性。
-
快速的RAC节点恢复
在Oracle RAC,init.d脚本会在CSS无法正常运行的情况下重启主机,但是重启主机和重启集群、数据库进程都需要时间,从几分钟到几十分钟不等,时间成本很高。ASMFD允许此情况下RAC执行节点级屏蔽,无需重新主机,只重启集群进程。顾使用ASMFD,可以通过重新启动集群 软件而不是重新主机来实现相同的效果,并且可节约主机重启的时间。
关于ASMFD的几个常见问题:
-
ASMFD与系统的兼容性
ASMFD是内核模块,对系统内核是强绑定关系,只有通过认证的系统和内核版本才可以使用,当然常见的系统版本和内核版本都已经得到认证,详细认证列表参考MOS:ACFS Support On OS Platforms (Certification Matrix). (Doc ID 1369107.1)。目前在Linux平台中,切记Oracle未认证Centos平台。
-
ASMFD与udev的兼容性
ASMFD与udev完全兼容,ASMFD可以基于udev生成的磁盘的别名,同时也支持一个磁盘组中同时具有ASMFD与udev的磁盘,但是不建议这样做,这样反而增加了操作的复杂性。
-
ASMFD部署之前有必要部署udev吗
在Oracle RAC安装时,常使用udev来生成统一的磁盘名字和修改磁盘的权限,ASMFD已经具备这两样功能,所以在部署ASMFD之前,不建议再使用udev来固定磁盘名和修改磁盘权限,有画蛇添足的意思。
-
ASMFD与多路径兼容性
ASMFD与多路径完全兼容,多路径的核心功能是链路聚合及对应的高可用性等功能,目前ASMFD还不具备链路聚合的功能,所以在生产环境中,为保证磁盘多条链路的高可用性,ASMFD的磁盘建议是多路径聚合以后生成的磁盘。
-
ASMFD与ASMLIB的兼容性
ASMFD与ASMLIB不兼容,在配置ASMFD时,需要先卸载ASMLIB。
-
推荐在生产环境中使用ASMFD吗
强烈建议在生产环境中使用ASMFD,此技术从12.1.0.2推出到现在已经经过多年技术的发展,技术稳定性已经得到充分的验证。同时Oracle已经向Linux基金会申请将ASMFD直接合并到内核中,目前还在等待Linux基金会审批。在生产环境中,已经遇到多起人为fdisk或者dd命令操作ASM磁盘,导致磁盘损坏,数据库无法打开的案例,利用ASMFD即可完全杜绝这些磁盘误操作的带来的影响。
-
系统内核升级对ASMFD有影响吗,ASMFD需要做操作吗?
ASMFD是内核模块,在升级内核之前确认升级后的内核版本与ASMFD是否兼容,如果兼容,即可升级。升级内核以后,无需手动对ASMFD进行操作,在ASMFD启动时,会自动判断ASMFD的版本与当前系统内核版本,同时选择匹配的ASMFD的版本进行加载。
-
ASMFD功能好用吗
功能并无是否好用,是否好用因人而异,我个人比较推荐使用此技术,即可提供统一的磁盘管理方式,同时操作本身非常简单、不需要依赖系统工程师、也可以提升性能和加速节点的恢复,但是建议在ASMFD中,不要同时采用ASMFD、udev、ln等多次磁盘名字固定和权限修改的技术,虽然技术上支持,但是对后期故障排查来和维护带来复杂性。希望在未来越来越多的生产环境中看到ASMFD技术的广泛使用。
作者介绍