实验环境

虚拟机
VMware® Workstation 15 Pro

操作系统
RHEL 6.5

存储
虚拟机模拟共享存储

存储分配

名称 容量 作用
ocr1 4G 存储ocr
ocr2 4G 存储ocr
data 20G 存储数据

Oracle软件
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip

网络拓扑

服务器 连接状态 网卡名称 IP 网卡模式
rac1 VMnet8 eth0 192.168.1.101 公有
rac1 VMnet1 eth1 10.10.0.1 私有
rac2 VMnet8 eth0 192.168.1.102 公有
rac2 VMnet1 eth1 10.10.0.2 私有

第二部分,模拟共享存储

创建共享磁盘
打开cmd,进入VM安装目录

C:\Users\YS>cd C:\Program Files (x86)\VMware\VMware Workstation\

vmware-vdiskmanager.exe -c -s 4096Mb -a lsilogic -t 2 E:\VM\DISK\ASM\ocr1.vmdk
vmware-vdiskmanager.exe -c -s 4096Mb -a lsilogic -t 2 E:\VM\DISK\ASM\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 20480Mb -a lsilogic -t 2 E:\VM\DISK\ASM\data.vmdk

编辑虚拟机配置
用这个方法,在两台虚机中,分别将ocr1.vmdk、ocr2.vmdk和data.vmdk添加到虚拟机中。

修改虚机配置文件
为了能够让两台虚机同时使用共享存储,还需分别修改虚机的配置文件,在配置文件确认已添加如下内容,若没有自动添加,则需要手动添加上。

scsi1.present = "TRUE"
scsi1.virtualDev = "lsilogic"
scsi1.sharedBus = "virtual"
scsi1:1.fileName = "E:\VM\DISK\ASM\ocr1.vmdk"
scsi1:1.present = "TRUE"
scsi1:1.mode = "independent-persistent"
scsi1:1.deviceType = "plainDisk"
scsi1:2.fileName = "E:\VM\DISK\ASM\ocr2.vmdk"
scsi1:2.present = "TRUE"
scsi1:2.mode = "independent-persistent"
scsi1:2.deviceType = "plainDisk"
scsi1:3.fileName = "E:\VM\DISK\ASM\data.vmdk"
scsi1:3.present = "TRUE"
scsi1:3.mode = "independent-persistent"
scsi1:3.deviceType = "plainDisk"
disk.locking = "false"                                        
diskLib.dataCacheMaxSize = "0"                               
diskLib.dataCacheMaxReadAheadSize = "0"                      
diskLib.DataCacheMinReadAheadSize = "0"                      
diskLib.dataCachePageSize = "4096"                           
diskLib.maxUnsyncedWrites = "0"

硬盘持久化
获取共享磁盘的UUID,配置ASM共享存储

[root@rac1 ~]# vim scan_asm.sh
#!/bin/bash

for i in b c d 
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted 
--replace-whitespace --device=/dev/\$name\", RESULT==\"`/sbin/scsi_id--whitelisted 
--replace-whitespace --device=/dev/sd$i`\", NAME=\"asm-disk$i\", OWNER=\"grid\", 
GROUP=\"asmadmin\", MODE=\"0660\""
done

[root@rac1 ~]# chmod 775 scan_asm.sh
[root@rac1 ~]# ./scan_asm.sh

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2982f96f9dacfece0e18f41d1f7", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c29618199d200fc32d66c7890b1b", NAME="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2996a5c5b2f8fca710fa35563b6", NAME="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"

创建rules 文件
将scan_asm.sh的输出信息写入rules文件,并将该文件发送至rac2节点中

[root@rac1 ~]# vim /etc/udev/rules.d/99-oracle-asmdevices.rules
[root@rac1 ~]# scp /etc/udev/rules.d/99-oracle-asmdevices.rules root@rac2:/etc/udev/rules.d/

重新启动udev
在rac1和rac2中操作

[root@rac1 ~]# start_udev
[root@rac1 ~]# ll /dev/asm*

brw-rw---- 1 grid asmadmin 8, 16 3月  14 21:07 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 3月  14 21:07 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 3月  14 21:07 /dev/asm-diskd