Prepare new disk devices for ASM with ASMLib (multipath) - denis-kol4ev/OraDBA GitHub Wiki

Prepare new disk devices for ASM with ASMLib (multipath)

1. Configure ASM for multipath

In order for multipath devices to be presented in asm when loading the OS, you need to check the following settings

$ ls -la /etc/sysconfig/oracleasm
lrwxrwxrwx. 1 root root 24 Mar  9 16:01 /etc/sysconfig/oracleasm -> oracleasm-_dev_oracleasm

$ cat /etc/sysconfig/oracleasm | egrep "ORACLEASM_SCANORDER|ORACLEASM_SCANEXCLUDE"
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER="mpath dm"
# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE="sd"

More details here: How to Convert ASMLib Disks from SD Devices to Multipath Devices (Doc ID 1458768.1)

2. List mpath devices

# lsblk | grep mpath | sort | uniq | sort -k 4
└─mpathc               252:2    0   500G  0 mpath
└─mpathd               252:4    0   500G  0 mpath
└─mpathe               252:5    0   500G  0 mpath
└─mpathf               252:14   0   500G  0 mpath
└─mpathi               252:7    0   500G  0 mpath
└─mpathj               252:15   0   500G  0 mpath
└─mpathk               252:13   0   500G  0 mpath
└─mpathl               252:8    0   500G  0 mpath
└─mpathm               252:16   0   500G  0 mpath
└─mpathn               252:6    0   500G  0 mpath
└─mpatho               252:11   0   500G  0 mpath
└─mpatha               252:3    0    50G  0 mpath
└─mpathb               252:10   0    50G  0 mpath
└─mpathg               252:12   0    50G  0 mpath
└─mpathh               252:9    0    50G  0 mpath

3. Determine disk devices without partition, filesystem and not used in LVM or ASM

# lsblk -f /dev/mapper/mpathc
# lsblk -f /dev/mapper/mpathd
# lsblk -f /dev/mapper/mpathe
# lsblk -f /dev/mapper/mpathf
# lsblk -f /dev/mapper/mpathi
# lsblk -f /dev/mapper/mpathj
# lsblk -f /dev/mapper/mpathk
# lsblk -f /dev/mapper/mpathl
# lsblk -f /dev/mapper/mpathm
# lsblk -f /dev/mapper/mpathn
# lsblk -f /dev/mapper/mpatho
# lsblk -f /dev/mapper/mpatha
# lsblk -f /dev/mapper/mpathb
# lsblk -f /dev/mapper/mpathg
# lsblk -f /dev/mapper/mpathh

4. Create disk partition

# parted -s -a optimal /dev/mapper/mpathc mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathd mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathe mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathf mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathi mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathj mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathk mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathl mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathm mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathn mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpatho mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpatha mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathb mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathg mklabel msdos mkpart primary 0% 100%
# parted -s -a optimal /dev/mapper/mpathh mklabel msdos mkpart primary 0% 100%

5. "partprobe" OS command needs to be executed to make the new partitions available and visible

# partprobe /dev/mapper/mpathc1
# partprobe /dev/mapper/mpathd1
# partprobe /dev/mapper/mpathe1
# partprobe /dev/mapper/mpathf1
# partprobe /dev/mapper/mpathi1
# partprobe /dev/mapper/mpathj1
# partprobe /dev/mapper/mpathk1
# partprobe /dev/mapper/mpathl1
# partprobe /dev/mapper/mpathm1
# partprobe /dev/mapper/mpathn1
# partprobe /dev/mapper/mpatho1
# partprobe /dev/mapper/mpatha1
# partprobe /dev/mapper/mpathb1
# partprobe /dev/mapper/mpathg1
# partprobe /dev/mapper/mpathh1

6. Check new partition

# lsblk -f /dev/mapper/mpathc
# lsblk -f /dev/mapper/mpathd
# lsblk -f /dev/mapper/mpathe
# lsblk -f /dev/mapper/mpathf
# lsblk -f /dev/mapper/mpathi
# lsblk -f /dev/mapper/mpathj
# lsblk -f /dev/mapper/mpathk
# lsblk -f /dev/mapper/mpathl
# lsblk -f /dev/mapper/mpathm
# lsblk -f /dev/mapper/mpathn
# lsblk -f /dev/mapper/mpatho
# lsblk -f /dev/mapper/mpatha
# lsblk -f /dev/mapper/mpathb
# lsblk -f /dev/mapper/mpathg
# lsblk -f /dev/mapper/mpathh

7. Use the oracleasm createdisk <device_name> command to create the ASM disk label for each disk

# oracleasm listdisks
# oracleasm createdisk REDO01 /dev/mapper/mpatha1
# oracleasm createdisk REDO02 /dev/mapper/mpathb1
# oracleasm createdisk REDO03 /dev/mapper/mpathg1
# oracleasm createdisk REDO04 /dev/mapper/mpathh1
# oracleasm createdisk FRA01 /dev/mapper/mpathc1
# oracleasm createdisk FRA02 /dev/mapper/mpathd1
# oracleasm createdisk DATA01 /dev/mapper/mpathe1
# oracleasm createdisk DATA02 /dev/mapper/mpathf1
# oracleasm createdisk DATA03 /dev/mapper/mpathi1
# oracleasm createdisk DATA04 /dev/mapper/mpathj1
# oracleasm createdisk DATA05 /dev/mapper/mpathk1
# oracleasm createdisk DATA06 /dev/mapper/mpathl1
# oracleasm createdisk DATA07 /dev/mapper/mpathm1
# oracleasm createdisk DATA08 /dev/mapper/mpathn1
# oracleasm createdisk DATA09 /dev/mapper/mpatho1
# oracleasm listdisks

7.Check which asm disk maps to which mpath devices partitions

# oracleasm listdisks | xargs oracleasm querydisk -p | grep mpath
/dev/mapper/mpathe1: LABEL="DATA01" TYPE="oracleasm"
/dev/mapper/mpathf1: LABEL="DATA02" TYPE="oracleasm"
/dev/mapper/mpathi1: LABEL="DATA03" TYPE="oracleasm"
/dev/mapper/mpathj1: LABEL="DATA04" TYPE="oracleasm"
/dev/mapper/mpathk1: LABEL="DATA05" TYPE="oracleasm"
/dev/mapper/mpathl1: LABEL="DATA06" TYPE="oracleasm"
/dev/mapper/mpathm1: LABEL="DATA07" TYPE="oracleasm"
/dev/mapper/mpathn1: LABEL="DATA08" TYPE="oracleasm"
/dev/mapper/mpatho1: LABEL="DATA09" TYPE="oracleasm"
/dev/mapper/mpathc1: LABEL="FRA01" TYPE="oracleasm"
/dev/mapper/mpathd1: LABEL="FRA02" TYPE="oracleasm"
/dev/mapper/mpatha1: LABEL="REDO01" TYPE="oracleasm"
/dev/mapper/mpathb1: LABEL="REDO02" TYPE="oracleasm"
/dev/mapper/mpathg1: LABEL="REDO03" TYPE="oracleasm"
/dev/mapper/mpathh1: LABEL="REDO04" TYPE="oracleasm"
⚠️ **GitHub.com Fallback** ⚠️