How To Setup Partitioned Linux Block Devices Using UDEV (Non-ASMLIB) for ASM

How To Setup Partitioned Linux Block Devices Using UDEV (Non-ASMLIB)

1) This example was performed on an OEL 6.3 configuration:

[grid@asmlnx2 ~]$ uname -a
Linux asmlnx2 2.6.39-200.24.1.el6uek.x86_64 #1 SMP Sat Jun 23 02:39:07 EDT 2012 x86_64 x86_64 x86_64 GNU/Linux

[grid@asmlnx2 ~]$ cat /etc/*release*

Oracle Linux Server release 6.3
Red Hat Enterprise Linux Server release 6.3 (Santiago)
Oracle Linux Server release 6.3

2) Identify the new disk in your Linux configuration (e.g. OEL 6.3 or RedHat 6.3):

[grid@asmlnx2 ~]$ ls -l  /dev/xvdw
brw-rw—- 1 root disk 202, 5376 Feb 11 21:31 /dev/xvdw

3) Create a new disk partition on it:

[root@asmlnx2 ~]#  fdisk  /dev/xvdw
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0xba335ded.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won’t be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
         switch off the mode (command ‘c’) and change display units to
         sectors (command ‘u’).

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-261, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-261, default 261):
Using default value 261

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@asmlnx2 ~]# partprobe  /dev/xvdw

[root@asmlnx2 ~]# partprobe  /dev/xvdw1

[root@asmlnx2 ~]# ls -l  /dev/xvdw
brw-rw—- 1 root disk 202, 5376 Feb 11 21:38 /dev/xvdw

[root@asmlnx2 ~]# ls -l  /dev/xvdw1
brw-rw—- 1 root disk 202, 5377 Feb 11 21:38 /dev/xvdw1

4) Set the new UDEV rules on the new partition (“/dev/xvdv1”) as follows:

[root@asmlnx2 ~]# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL==”xv*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -s %p”, RESULT==”360a98000375331796a3f434a55354474″, NAME=”asmdisk1_udev_p1″, ACTION==”add|change”, OWNER=”grid”, GROUP=”asmadmin”, MODE=”0660″

5) Reload and Restart the udev rules:

[root@asmlnx2 ~]# udevadm control –reload-rules

[root@asmlnx2 ~]# start_udev
Starting udev:

NOTE:Running a “start_udev” will cause the network hotplug action to be applied to every interface configuration file on the host which does not have HOTPLUG=no set.
This will activate any interface which does not have HOTPLUG=no set, regardless of the ONBOOT setting.
If you would like to avoid this then please ensure that each ifcfg file has HOTPLUG=no set.

6) Make sure the new udev partition device is created with the correct ownership (grid & asmadmin) and permissions (brw-rw—-):

[root@asmlnx2 ~]# ls -ltr /dev/asm*
brw-rw—- 1 grid asmadmin 202, 5377 Feb 11 21:47 /dev/asmdisk1_udev_p1   

7) Now you can use it to create a new diskgroup or add it to an existing diskgroup as follows:

[root@asmlnx2 ~]# su – grid
[grid@asmlnx2 ~]$ . oraenv
ORACLE_SID = [grid] ? +ASM
The Oracle base has been set to /u01/app/grid

[grid@asmlnx2 ~]$ sqlplus “/as sysasm”

SQL*Plus: Release 11.2.0.3.0 Production on Mon Feb 11 21:56:31 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 – 64bit Production
With the Automatic Storage Management option

SQL> show parameter asm_diskstring

NAME                                 TYPE        VALUE
———————————— ———– ——————————
asm_diskstring                       string

SQL> alter system set asm_diskstring = ‘/dev/asmdisk1_udev_p1’ scope=both;

System altered.

SQL> show parameter  asm_diskstring

NAME                                 TYPE        VALUE
———————————— ———– ——————————
asm_diskstring                       string       /dev/asmdisk1_udev_p1

SQL> select path from v$asm_disk where path like ‘%udev%’;

PATH
——————————————————————————–
/dev/asmdisk1_udev_p1

SQL> create diskgroup UDEVDG external redundancy disk ‘/dev/asmdisk1_udev_p1’  ;

Diskgroup created.          

  • January 20, 2019 | 23 views
  • Comments