暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle ASM Filter Driver 简介和基本操作

IT那活儿 2022-05-07
3464

 

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!

1

什么是 Oracle ASM Filter Driver (ASMFD)

 

ASMFD从Oracle Grid Infrastructure 12.1 (12.1.0.2)之后默认随 Oracle Grid Infrastructure一起安装,在12.2中,ASMFD在系统已经安装了ASMLIB的情况下无法安装,如果要安装和配置Oracle ASMFD,必须先卸载Oracle ASMLIB。也不支持扩展分区表,自18c起,AFD支持扩展分区表。
如上图,ASMFD是一个内核模块,位于Oracle ASM磁盘的I/O路径中。从逻辑上讲,ASMFD在Oracle二进制文件和包括存储硬件接口的底层操作环境之间提供了一个接口。
以下是ASMFD主要功能的描述:

1)拒绝非Oracle I/O

ASMFD仅允许使用特定于Oracle的接口进行写入,并防止非Oracle应用程序写入ASM磁盘。这可以保护ASM免受意外损坏。

2)减少操作系统资源使用

ASMFD公开了一个门户设备,可用于特定主机上的所有I/O。与多个数据库实例关联的所有进程都可以共享同一个门户设备。结果是使用ASMFD,所需的打开文件描述符数量大大减少。

3)启用设备名称持久性

ASMFD不需要额外的配置来通过使用udev规则或第三方存储驱动程序来确保设备名称的持久性。

4)更快的节点恢复

ASMFD允许Oracle集群件在不重新启动的情况下执行节点级别的防护。因此,使用ASMFD可以通过重新启动Oracle软件堆栈而不是重新启动整个节点来实现相同的结果。这个过程同样有效,但要快得多。

2

ASMFD基本操作

2.1 安装GRID软件前配置存储

1)以root用户来设置环境变量$ORACLE_HOME为Grid Home目录,设置环境变量$ORACLE_BASE为临时目录。

注意:设置环境变量$ORACLE_BASE为临时目录,避免安装前产生diagnostic或trace files,影响GRID软件安装。
$su root#export ORACLE_HOME=/oracle/app/19.0.0/grid/#export ORACLE_BASE=/tmp
2)使用ASMCMD afd_label命令来为Oracle ASM Filter Driver来准备磁盘。
绑定成功后会在/dev路径下,产生一个oracleafd/disk的路径,路径下的磁盘名都是AFD的标签名。
#/oracle/app/19.0.0/grid/bin/asmcmd afd_label DATA01 dev/sdc --init#/oracle/app/19.0.0/grid/bin/asmcmd afd_label DATA02 dev/sdd --init#/oracle/app/19.0.0/grid/bin/asmcmd afd_label DATA03 dev/sde --init
3)使用ASMCMD afd_lslbl命令来验证磁盘是否已经被标记可以为Oracle ASMFD所使用。
如果去查看/dev/oracleafd,就会发现新的盘了,权限也已配置完成。
#/oracle/app/19.0.0/grid/bin/asmcmd afd_lslbl dev/sdc#/oracle/app/19.0.0/grid/bin/asmcmd afd_lslbl dev/sdd#/oracle/app/19.0.0/grid/bin/asmcmd afd_lslbl dev/sde#ls -ltr dev/oracleafd/disks

4)当为Oracle ASMFD准备完磁盘后清除变量ORACLE_BASE。

#unset ORACLE_BASE
5)在安装脚本( gridSetup.sh)中的Create ASM Disk Group向导页面。
选择:/dev/sdc;/dev/sdd;/dev/sde,选中Configure ASM Filter Driver框以启用 Oracle ASM Filter Driver 的配置。

2.2 已安装GRID软件后使用ASMFD

1)更新Oracle ASM磁盘发现字符串以使Oracle ASMFD能够被发现设备。

查询当前发现路径:
#su - grid$asmcmd dsget
新增发现路径:
$asmcmd dsset '/dev/mapper','AFD:*'$asmcmd dsget

2)确认目前ASMFD模块(以下简称AFD)的状态,未加载。

$su - grid$asmcmd afd_state

3)加载ASMFD模块(以下简称 AFD)。

所有节点设置环境变量:
$su -#export ORACLE_BASE=/oracle/app/grid#export ORACLE_HOME=/oracle/app/19.0.0/grid
停止所有节点CRS集群:
#/oracle/app/19.0.0/grid/bin/crsctl stop cluster -all

[root@rac19c1 ~]# oracle/app/19.0.0/grid/bin/crsctl stop crsCRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'rac19c1'CRS-2673: Attempting to stop 'ora.crsd' on 'rac19c1'CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on server 'rac19c1'CRS-2673: Attempting to stop 'ora.qosmserver' on 'rac19c1'CRS-2673: Attempting to stop 'ora.chad' on 'rac19c1'CRS-2677: Stop of 'ora.qosmserver' on 'rac19c1' succeededCRS-2677: Stop of 'ora.chad' on 'rac19c1' succeededCRS-2673: Attempting to stop 'ora.rac19c.db' on 'rac19c1'CRS-2677: Stop of 'ora.rac19c.db' on 'rac19c1' succeededCRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'rac19c1'CRS-2673: Attempting to stop 'ora.LISTENER_DG.lsnr' on 'rac19c1'CRS-2673: Attempting to stop 'ora.LISTENER_SCAN1.lsnr' on 'rac19c1'CRS-2673: Attempting to stop 'ora.cvu' on 'rac19c1'CRS-2673: Attempting to stop 'ora.rac19c1.vip' on 'rac19c1'CRS-2673: Attempting to stop 'ora.rac19c1_2.vip' on 'rac19c1'CRS-2677: Stop of 'ora.rac19c1_2.vip' on 'rac19c1' succeededCRS-2677: Stop of 'ora.LISTENER.lsnr' on 'rac19c1' succeededCRS-2677: Stop of 'ora.rac19c1.vip' on 'rac19c1' succeededCRS-2673: Attempting to stop 'ora.rac19c2.vip' on 'rac19c1'CRS-2677: Stop of 'ora.LISTENER_SCAN1.lsnr' on 'rac19c1' succeededCRS-2673: Attempting to stop 'ora.scan1.vip' on 'rac19c1'… …CRS-2677: Stop of 'ora.cssd' on 'rac19c1' succeededCRS-2673: Attempting to stop 'ora.gipcd' on 'rac19c1'CRS-2673: Attempting to stop 'ora.gpnpd' on 'rac19c1'CRS-2677: Stop of 'ora.gipcd' on 'rac19c1' succeededCRS-2677: Stop of 'ora.gpnpd' on 'rac19c1' succeededCRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'rac19c1' has completedCRS-4133: Oracle High Availability Services has been stopped.
AFD Configure安装,并加载Driver:
# /oracle/app/19.0.0/grid/bin/asmcmd afd_configure

4)如果遇到如下错误,因为ASMFD在系统已经安装了ASMLIB的情况下无法安装AFD。

5)检查AFD状态,如下显示已加载。

#/oracle/app/19.0.0/grid/bin/asmcmd afd_state

6)使用 Oracle ASMFD标签标记所有Oracle ASM磁盘。

#/oracle/app/19.0.0/grid/bin/asmcmd afd_label ocrdata01 dev/sdf --migrate#/oracle/app/19.0.0/grid/bin/asmcmd afd_label ocrdata02 /dev/sdg --migrate#/oracle/app/19.0.0/grid/bin/asmcmd afd_label ocrdata03 /dev/sdh --migrate#/oracle/app/19.0.0/grid/bin/asmcmd afd_lsdsk

7)如果报错ASMCMD-9513: ASM disk label set operation failed,请尝试修改/etc/oracleafd.conf,重新设置磁盘路径。

8)其他节点刷新afd磁盘标签信息。

# /oracle/app/19.0.0/grid/bin/asmcmd afd_refresh# /oracle/app/19.0.0/grid/bin/asmcmd afd_lsdsk

9)启动CRS集群。

#/oracle/app/19.0.0/grid/bin/crsctl start cluster -all
10)检查Oracle ASM磁盘磁盘发现路径是否正确,不正确再次设置。
#su - grid$asmcmd dsget

11)查看当前磁盘组磁盘,AFD已管理。

2.3 新增磁盘组

1)设置磁盘发现路径

$su - grid$ asmcmd afd_dsset '/dev/sd*'$ asmcmd afd_dsget

2)查询当前标记磁盘

$asmcmd afd_lsdsk

3)标签新的磁盘

su -#/oracle/app/19.0.0/grid/bin/asmcmd afd_label DATA04 /dev/sde#/oracle/app/19.0.0/grid/bin/asmcmd afd_lsdsk

4)如果不需要该磁盘,可以清除标签

#/oracle/app/19.0.0/grid/bin/asmcmd afd_unlabel DATA04#/oracle/app/19.0.0/grid/bin/asmcmd afd_lsdsk

5)创建新的磁盘组

6)查询当前磁盘

7)查询当前磁盘组

 


END




本文作者:付青启

本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论