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

Prepare new disk devices for ASM with ASMLib

1. Determine disk devices without partitions, filesystems and not used by LVM or ASM

# lsblk -f
# lsblk -f /dev/sdm

2. Create disk partition (use fdisk or parted)

fdisk

# fdisk -l /dev/sdm
# fdisk /dev/sdm

Enter following answers for fdisk:

n - p - 1 - enter - enter - w

parted

# parted -s -a optimal /dev/sde mklabel gpt mkpart primary 0% 100%
What partition table should use?

В зависимости от типа таблицы разделов (partition table) размер создаваемой партиции на диске может отличаться. Поэтому в ASM группе на всех устройствах необходимо создавать таблицы разделов одинакового типа.

parted -s -a optimal /dev/sdl mklabel msdos mkpart primary 0% 100%
parted -s -a optimal /dev/sdl mklabel gpt mkpart primary 0% 100%

Пример

[root@angel ~]# lsblk -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/sdl
NAME SIZE TYPE FSTYPE LABEL MOUNTPOINT
sdl   20G disk
[root@angel ~]# lsblk -b -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/sdl
NAME        SIZE TYPE FSTYPE LABEL MOUNTPOINT
sdl  21474836480 disk
[root@angel ~]# parted -s -a optimal /dev/sdl mklabel msdos mkpart primary 0% 100%
[root@angel ~]# lsblk -b -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/sdl
NAME          SIZE TYPE FSTYPE LABEL MOUNTPOINT
sdl    21474836480 disk
└─sdl1 21473787904 part
[root@angel ~]# parted /dev/sdl rm 1
Information: You may need to update /etc/fstab.

[root@angel ~]# lsblk -b -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/sdl
NAME        SIZE TYPE FSTYPE LABEL MOUNTPOINT
sdl  21474836480 disk
[root@angel ~]#
[root@angel ~]# parted -s -a optimal /dev/sdl mklabel gpt mkpart primary 0% 100%
[root@angel ~]# lsblk -b -o NAME,SIZE,TYPE,FSTYPE,LABEL,MOUNTPOINT /dev/sdl
NAME          SIZE TYPE FSTYPE LABEL MOUNTPOINT
sdl    21474836480 disk
└─sdl1 21472739328 part
[root@angel ~]#

Итоговая разница в размере партиций 21473787904 - 21472739328 = 1048576 / 1024 / 1024 = 1mb

Узнать какой тип таблицы разделов на диске

[root@angel ~]# parted /dev/sdl print | grep "Partition"
Partition Table: gpt

NOTE

Script for steps 1 and 2, it's check that disk device is not used and print command for parted

# for i in $(lsblk -sdo NAME,FSTYPE,TYPE | awk '{if ($0 ~ /disk/) {print $1}}'); do lsblk -f /dev/$i; lsblk -o NAME,SIZE,TYPE,MOUNTPOINT /dev/$i; printf "%s\n%s\n\n" "CREATE PARTITION COMMAND" "parted -s -a optimal /dev/$i mklabel gpt mkpart primary 0% 100%"; done

for multipath devices

for i in $(lsblk -sdo NAME,FSTYPE,TYPE | egrep "mpath$" | awk '{if ($0 ~ /mpath/) {print $1}}'); do lsblk -f /dev/mapper/$i; lsblk -o NAME,SIZE,TYPE,MOUNTPOINT /dev/mapper/$i; printf "%s\n%s\n\n" "CREATE PARTITION COMMAND" "parted -s -a optimal /dev/mapper/$i mklabel gpt mkpart primary 0% 100%"; done

3. Check new partition (use fdisk or parted)

fdisk

# fdisk -l /dev/sdm
# lsblk -f /dev/sdm

parted

# parted /dev/sde unit gib print
# lsblk -f /dev/sde

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

# oracleasm listdisks
# oracleasm createdisk DATA10 /dev/sdm1

5. Verify ASM disk label

# oracleasm querydisk /dev/sdm1

6. Check that disks are mounted in the oracleasm filesystem

# ls -l /dev/oracleasm/disks

7. Check that disks are visible

# oracleasm listdisks
⚠️ **GitHub.com Fallback** ⚠️