配置单机ASM磁盘组
一、Linux逻辑卷方式配置
1.查看磁盘
[root@server ~]# fdisk -l |grep /dev/sd
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 104857599 52120576 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sde: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdf: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
└─sda2 8:2 0 49.7G 0 part
├─centos_server-root 253:0 0 41.7G 0 lvm /
└─centos_server-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
2.创建物理卷
此步也可以使用fdisk将磁盘分区,如: /dev/sdb1
[root@server grid]# pvcreate /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
[root@server ~]# pvdisplay |grep PV
PV Name /dev/sdb
PV Size 10.00 GiB / not usable 4.00 MiB
PV UUID bY1DCd-NKmw-xmHV-0rrh-HO2Q-d12u-u9eaB1
PV Name /dev/sdc
PV Size 10.00 GiB / not usable 4.00 MiB
PV UUID HPm39S-64x0-jSw6-y8k0-SQFN-JBYA-iAe3eN
PV Name /dev/sdd
PV Size 10.00 GiB / not usable 4.00 MiB
PV UUID aQFhTX-NWqV-Br6u-C3YU-KlOj-PyGG-zqu9wT
PV Name /dev/sde
PV Size 10.00 GiB / not usable 4.00 MiB
PV UUID 81OSPj-XWbE-13vz-AMVF-c47c-ioTM-e00jT8
PV Name /dev/sdf
PV Size 10.00 GiB / not usable 4.00 MiB
PV UUID 89rNGC-3y1G-B0aH-Vzsy-li0X-yIjC-jp9Tks
PV Name /dev/sda2
PV Size <49.71 GiB / not usable 3.00 MiB
PV UUID c5eudr-rbZU-npau-RjcT-ZOL7-8ObP-ZpIqCb
[root@server ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos_server lvm2 a-- 49.70g 0
/dev/sdb oracle_vg lvm2 a-- <10.00g 0
/dev/sdc oracle_vg lvm2 a-- <10.00g <9.99g
/dev/sdd oracle_vg lvm2 a-- <10.00g 0
/dev/sde oracle_vg lvm2 a-- <10.00g <10.00g
/dev/sdf oracle_vg lvm2 a-- <10.00g <10.00g
3.创建卷组
[root@server grid]# vgcreate oracle_vg /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf
[root@server ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos_server 1 2 0 wz--n- 49.70g 0
oracle_vg 5 2 0 wz--n- 49.98g 29.98g
[root@server ~]# vgdisplay |grep VG
VG Name oracle_vg
VG Access read/write
VG Status resizable
VG Size 49.98 GiB
VG UUID rpZagO-wVLq-gLLW-iKdv-gp4H-ucXV-uLoXiF
VG Name centos_server
VG Access read/write
VG Status resizable
VG Size 49.70 GiB
VG UUID 087pLX-20XM-8Ysz-rZPv-wfQ2-Ipnc-WUUdL6
4.创建逻辑卷
[root@server grid]# lvcreate -L 10g -n lv_asmdisk1 oracle_vg
[root@server grid]# lvcreate -L 10g -n lv_asmdisk2 oracle_vg
[root@server ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos_server -wi-ao---- 41.70g
swap centos_server -wi-ao---- 8.00g
lv_asmdisk1 oracle_vg -wi-ao---- 10.00g
lv_asmdisk2 oracle_vg -wi-ao---- 10.00g
[root@server ~]# lvdisplay |grep LV
LV Path /dev/oracle_vg/lv_asmdisk1
LV Name lv_asmdisk1
LV UUID JzZ3L0-6ctU-i8aM-zEYM-vEX0-6VZx-xeUWih
LV Write Access read/write
LV Creation host, time server, 2023-03-20 21:04:53 +0800
LV Status available
LV Size 10.00 GiB
LV Path /dev/oracle_vg/lv_asmdisk2
LV Name lv_asmdisk2
LV UUID QFlTbg-dvrt-KrMO-QASy-dYoZ-gzCS-0xsLdI
LV Write Access read/write
LV Creation host, time server, 2023-03-20 21:04:57 +0800
LV Status available
LV Size 10.00 GiB
LV Path /dev/centos_server/swap
LV Name swap
LV UUID AYgdgq-hUCe-GHWA-gK2e-7eZF-1kmI-om5dBz
LV Write Access read/write
LV Creation host, time server, 2021-03-04 19:31:48 +0800
LV Status available
LV Size 8.00 GiB
LV Path /dev/centos_server/root
LV Name root
LV UUID J6hfYa-BFnT-Ioah-zGr0-0XSE-o6UF-hhmvix
LV Write Access read/write
LV Creation host, time server, 2021-03-04 19:31:48 +0800
LV Status available
LV Size 41.70 GiB
5.查看磁盘
[root@server ~]# ll /dev/mapper/
total 0
lrwxrwxrwx 1 root root 7 Mar 21 08:22 centos_server-root -> ../dm-0
lrwxrwxrwx 1 root root 7 Mar 21 08:22 centos_server-swap -> ../dm-1
crw------- 1 root root 10, 236 Mar 21 08:22 control
lrwxrwxrwx 1 root root 7 Mar 21 08:22 oracle_vg-lv_asmdisk1 -> ../dm-2
lrwxrwxrwx 1 root root 7 Mar 21 08:22 oracle_vg-lv_asmdisk2 -> ../dm-3
[root@server ~]# ll /dev/dm*
brw-rw---- 1 root disk 253, 0 Mar 21 08:22 /dev/dm-0
brw-rw---- 1 root disk 253, 1 Mar 21 08:22 /dev/dm-1
brw-rw---- 1 root disk 253, 2 Mar 21 08:42 /dev/dm-2
brw-rw---- 1 root disk 253, 3 Mar 21 08:42 /dev/dm-3
crw-rw----+ 1 root audio 14, 9 Mar 21 08:22 /dev/dmmidi
6.设置权限
由于lv的权限在服务器重启后又会变回root权限,因此需要将权限添加至开机启动脚本,从CentOS7.0开始,/etc/rc.d/rc.local文件的初始权限变成了644,默认是不使用/etc/rc.local 文件作为开机启动,授予x权限给/etc/rc.d/rc.local即可
[root@server ~]# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.
[root@server ~]# vi /etc/rc.d/rc.local
chown grid:asmadmin /dev/mapper/oracle_vg-lv_asmdisk*
[root@server ~]# chmod +x /etc/rc.d/rc.local
[root@server ~]# systemctl status rc-local.service
● rc-local.service - /etc/rc.d/rc.local Compatibility
Loaded: loaded (/usr/lib/systemd/system/rc-local.service; static; vendor preset: disabled)
Active: active (exited) since Tue 2023-03-21 08:55:33 CST; 6min ago
Process: 1218 ExecStart=/etc/rc.d/rc.local start (code=exited, status=0/SUCCESS)
Tasks: 0
[root@server ~]# cat /usr/lib/systemd/system/rc-local.service
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.d/rc.local is executable.
[Unit]
Description=/etc/rc.d/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.d/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local start
TimeoutSec=0
RemainAfterExit=yes
7.创建磁盘组
二、UDEV方式配置
1.查看磁盘
[root@server ~]# fdisk -l |grep /dev/sd
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 104857599 52120576 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdd: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sde: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdf: 10.7 GB, 10737418240 bytes, 20971520 sectors
Disk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 300M 0 part /boot
└─sda2 8:2 0 49.7G 0 part
├─centos_server-root 253:0 0 41.7G 0 lvm /
└─centos_server-swap 253:1 0 8G 0 lvm [SWAP]
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sde 8:64 0 10G 0 disk
sdf 8:80 0 10G 0 disk
sr0 11:0 1 1024M 0 rom
2.查看磁盘UUID
[root@server ~]# blkid
/dev/sda1: UUID="09c5e1e9-d1e5-4a5e-a4c4-c5073c3755d3" TYPE="xfs"
/dev/sda2: UUID="c5eudr-rbZU-npau-RjcT-ZOL7-8ObP-ZpIqCb" TYPE="LVM2_member"
/dev/mapper/centos_server-root: UUID="aa6d855f-c222-4ade-b043-1ac781f24c9b" TYPE="xfs"
/dev/mapper/centos_server-swap: UUID="2d9558a1-4c20-4585-878e-923f97c7d13f" TYPE="swap"
3.磁盘分区
[root@server ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x01a5ebdc.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): ^H^H
Using default value 20971519
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@server ~]# mkfs.ext4 /dev/sdb1
[root@server ~]# partprobe /dev/sdb
4.查看磁盘UUID
新格式化分区时,分区的UUID会变更
[root@server ~]# blkid
/dev/sda1: UUID="09c5e1e9-d1e5-4a5e-a4c4-c5073c3755d3" TYPE="xfs"
/dev/sda2: UUID="c5eudr-rbZU-npau-RjcT-ZOL7-8ObP-ZpIqCb" TYPE="LVM2_member"
/dev/mapper/centos_server-root: UUID="aa6d855f-c222-4ade-b043-1ac781f24c9b" TYPE="xfs"
/dev/mapper/centos_server-swap: UUID="2d9558a1-4c20-4585-878e-923f97c7d13f" TYPE="swap"
/dev/sdd1: UUID="57531a6d-cb8b-45ac-90aa-560681856f91" TYPE="ext4"
/dev/sde1: UUID="b80e8a6d-4817-4ee8-b87f-b82c420cb6c3" TYPE="ext4"
/dev/sdf1: UUID="b814e745-5c4f-439a-b49f-f2d21fc62201" TYPE="ext4"
/dev/sdb1: UUID="318c1748-9d72-490e-a164-103bba952870" TYPE="ext4"
/dev/sdc1: UUID="8384b6b2-478a-455e-ab08-b72e49e4cc4e" TYPE="ext4"
5.UDEV查看磁盘UUID
[root@server ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdd
输出无结果,则执行以下步骤:
1.检查UDEV包
[root@server ~]# rpm -qa|grep udev
system-config-printer-udev-1.4.1-23.el7.x86_64
libgudev1-219-78.el7.x86_64
python-pyudev-0.15-9.el7.noarch
2.检查vmware虚拟机.vmx文件
vmware虚拟机.vmx文件添加disk.EnableUUID = "TRUE",一定要在虚拟机关机后编辑才能生效。
disk.EnableUUID = "TRUE"
3.再次执行,获取UUID成功
for i in b c d e f;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asmdisk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\""
done
6.UDEV 绑定的 SCSI ID
for i in b c d e f;
do
echo "KERNEL==\"sd?\",SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\",RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asmdisk$i\",OWNER=\"grid\", GROUP=\"asmadmin\",MODE=\"0660\"" >> /etc/udev/rules.d/99-dm-devices.rules
done
[root@server ~]# more /etc/udev/rules.d/99-dm-devices.rules
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/d
ev/$name",RESULT=="36000c2909348322190b3a9db8ecd8654", SYMLINK+="asmdiskb",OWNER="grid", GROUP="asmadmin",MODE="
0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/d
ev/$name",RESULT=="36000c29f75992a6e302543b833431142", SYMLINK+="asmdiskc",OWNER="grid", GROUP="asmadmin",MODE="
0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/d
ev/$name",RESULT=="36000c29245bafd8714427537a39dad3f", SYMLINK+="asmdiskd",OWNER="grid", GROUP="asmadmin",MODE="
0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/d
ev/$name",RESULT=="36000c290342afc79fffe6a6c7f94ba77", SYMLINK+="asmdiske",OWNER="grid", GROUP="asmadmin",MODE="
0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/d
ev/$name",RESULT=="36000c29a064f037545798eb87fbc9d0a", SYMLINK+="asmdiskf",OWNER="grid", GROUP="asmadmin",MODE="
0660"
7.启动UDEV
[root@crmbackup01 ~]# systemctl status systemd-udevd.service
[root@crmbackup01 ~]# udevadm trigger --type=devices --action=change
[root@crmbackup01 ~]# udevadm control --reload
8.查看ASM磁盘
[root@server ~]# ll /dev/asm*
lrwxrwxrwx 1 root root 3 Mar 21 11:26 /dev/asmdiskb -> sdb
lrwxrwxrwx 1 root root 3 Mar 21 11:26 /dev/asmdiskc -> sdc
lrwxrwxrwx 1 root root 3 Mar 21 11:26 /dev/asmdiskd -> sdd
lrwxrwxrwx 1 root root 3 Mar 21 11:26 /dev/asmdiske -> sde
lrwxrwxrwx 1 root root 3 Mar 21 11:26 /dev/asmdiskf -> sdf