这篇文件将介绍如何使用 mknod 在 Linux/Unix 上为候选或者成员 ASM 磁盘定义和关联有意义的设备名称。
下面显示的示例是具有 +ASM1 和 +ASM2 实例的 2 节点 RAC 设置。
- 我们在以下两个 +ASM1 和 +ASM2 实例上都安装了:
GROUP_NUMBER NAME STATE TYPE TOTAL_MB FREE_MB ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 CRSDG MOUNTED EXTERN 20480 20052 2 DATADG1 MOUNTED EXTERN 102400 77005 3 DATADG2 MOUNTED EXTERN 102400 85268
- 在 +ASM1 实例上,磁盘组映射到磁盘如下:
GROUP_NUMBER NAME Logical Disk on +ASM1 Physical Disk on +ASM1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 CRSDG CRSDG_0001 /dev/rdisk/disk78 2 DATADG1 DATADG1_0001 /dev/rdisk/disk79 3 DATADG2 DATADG2_0001 /dev/rdisk/disk80
- 在 +ASM2 实例上,磁盘组映射到磁盘如下:
GROUP_NUMBER NAME Logical Disk on +ASM1 Physical Disk on +ASM1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 CRSDG CRSDG_0001 /dev/rdisk/disk85 2 DATADG1 DATADG1_0001 /dev/rdisk/disk86 3 DATADG2 DATADG2_0001 /dev/rdisk/disk87
所以每个节点上的磁盘映射是不同的。
这是正常的,因为每个节点/操作系统可以提供不同的磁盘名称(例如 /dev/rdsk## 以访问相同的物理磁盘)。如果你想在所有节点和ASM实例上使用相同的磁盘名称来访问相同的物理磁盘,那么你需要创建一个别名,物理磁盘上的mknod设备或者符号链接(例如/dev/rdsk## ) 每个节点一个。
假设我们有以下设备:
节点#1:
crw-rw- 1 root sys 118, 40 Apr 2 15:00 /dev/rdsk/disk78 crw-rw- 1 root sys 118, 0 Apr 2 15:00 /dev/rdsk/disk79 crw-rw- 1 root sys 118, 42 Apr 2 15:00 /dev/rdsk/disk80
创建别名:
# mkdir /asmdisks # chown oracle:dba /asmdisks # cd /asmdisks # mknod asmdisk1 c 118 40 # mknod asmdisk2 c 118 0 # mknod asmdisk3 c 118 42
然后我们将拥有下一个别名设备:
/asmdisks/asmdisk1 /asmdisks/asmdisk2 /asmdisks/asmdisk3
我们需要设置正确的所有权:
# chown oracle:dba /asmdisks/asmdisk1 # chown oracle:dba /asmdisks/asmdisk2 # chown oracle:dba /asmdisks/asmdisk3
节点#2:
crw-rw- 1 root sys 118, 40 Apr 2 15:00 /dev/rdsk/disk78 crw-rw- 1 root sys 118, 0 Apr 2 15:00 /dev/rdsk/disk79 crw-rw- 1 root sys 118, 42 Apr 2 15:00 /dev/rdsk/disk80
创建别名:
# mkdir /asmdisks # chown oracle:dba /asmdisks # cd /asmdisks # mknod asmdisk1 c 118 46 # mknod asmdisk2 c 118 49 # mknod asmdisk3 c 118 15
然后我们将拥有下一个别名设备:
/asmdisks/asmdisk1 /asmdisks/asmdisk2 /asmdisks/asmdisk3
我们需要设置正确的所有权:
# chown oracle:dba /asmdisks/asmdisk1 # chown oracle:dba /asmdisks/asmdisk2 # chown oracle:dba /asmdisks/asmdisk3
- 然后更新指向新别名设备的 asm_diskstring 两个 ASM 实例:
+ASM1 实例:
SQL> alter system set asm_diskstring = '/asmdisks/asmdisk*' scope=spfile;
+ASM2 实例:
SQL> alter system set asm_diskstring = '/asmdisks/asmdisk*' scope=spfile;
- 然后,下次重新启动 ASM 实例时,它们将使用位于每个节点上“/asmdisks/asmdisk*”的别名访问物理磁盘。
注意:“mknod”对齐不会在重新启动后保持不变,使用 udev 规则或者添加用于创建别名的“mknod”命令列表作为 init 中的启动脚本,它也应该在 CRS 启动之前加载。
日期:2020-09-17 00:11:40 来源:oir作者:oir