vmware workstation12搭建oracle rac集群共享存储
主机操作系统:windows 10
虚拟机VMware12:两台CentOS Linux release 7.7.1908 (Core)
Oracle Database software: Oracle11gR2
Cluster software: Oracle grid infrastructure 11gR2(11.2.0.4.0)
共享存储:ASM
VMware创建共享存储方式:
1、首先在计算机任意空间足够的位置创建一个共享文件夹/Sharedisk,用于创建共享盘
2、进入VMware安装目录,主要是用vmware-vdiskmanager.exe命令,cmd界面下执行,创建共享盘:(应该也可以直接图形化添加硬盘,未测试)
C:\Program Files (x86)\VMware\VMware Workstation>
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\ocr.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\ocr2.vmdk
vmware-vdiskmanager.exe -c -s 1000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\votingdisk.vmdk
vmware-vdiskmanager.exe -c -s 20000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\data.vmdk
vmware-vdiskmanager.exe -c -s 10000Mb -a lsilogic -t 2 F:\VMware\RAC\Sharedisk\backup.vmdk
注:以上命令最后的路径,名字可以自定义
3、在虚拟机每个节点添加创建的共享盘:
rac1:在虚拟机关机状态,点击虚拟机设置,选择-添加-硬盘-下一步-scsi-下一步-使用现有磁盘,将磁盘储存为单个文件-选择储存的位置,这个位置一定要是rac1和rac2的共享文件夹我这里是放在F:\vm\sharedisk下面的-完成-点击高级-设置虚拟设备节点为scsi 1:1 ,模式独立-永久 ,点击确认;
无论创建几块,步骤都相同只是在高级设置中,第二块设置为scsi 1:2,第三块设置成scsi 1:3,以此类推
rac2同样进行这样的操作,但是在-选择磁盘-这个选项时选择-使用现有的虚拟磁盘,也就是之前rac1创建的放在F:\vm\sharedisk的三个磁盘,在高级设置中,第二块设置为scsi 2:2,第三块设置成scsi 2:3,以此类推,不能与第一台虚拟机设置相同,
4、添加完磁盘,在虚拟机的配置文件.vmx中添加
scsi1.sharedBus = "virtual" --第一台虚拟机
scsi2.sharedBus = "virtual" --第二台虚拟机
以下相同:
disk.locking = "false"
diskLib.dataCacheMaxSize = "0"
diskLib.dataCacheMaxReadAheadSize = "0"
diskLib.DataCacheMinReadAheadSize = "0"
diskLib.dataCachePageSize = "4096"
diskLib.maxUnsyncedWrites = "0"
disk.enableUUID = "TRUE" --显示磁盘UUID
5、开启虚拟机用fdisk -l查看磁盘是否添加成功,两台都查看
6、对每个磁盘进行分区:
fdisk /dev/sdb fdisk /dev/sdc fdisk /dev/sdd fdisk /dev/sde fdisk /dev/sdf
按n键(创建新分区)
按p键(创建主分区,另有e键是扩展分区)
按1键(分区数字从1开始,即sdb1,sdc1等)
按1键(分区从第一个柱面开始)
回车 (结束柱面选择 默认,即全部柱面只分在一个区)
按w键(将操作写入分区表)
[root@up1 ~]# partprobe /dev/sdb
[root@up1 ~]# partprobe /dev/sdc
[root@up1 ~]# partprobe /dev/sdd
[root@rac1 ~]# fdisk -l
在rac2上使用fdisk -l可以查看到与rac1一样的分区情况后,再继续
7、对比两个节点的共享磁盘的UID,确定两边完全一致
(1)节点1
[root@up1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
1ATA_VBOX_HARDDISK_VB6116258c-7210e337
[root@up1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
1ATA_VBOX_HARDDISK_VB02cf4964-aad254ab
[root@up1 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdd
1ATA_VBOX_HARDDISK_VBb6362300-4cd51593
(2)节点2
[root@up2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdb
1ATA_VBOX_HARDDISK_VB6116258c-7210e337
[root@up2 ~]# /usr/lib/udev/scsi_id -g -u /dev/sdc
1ATA_VBOX_HARDDISK_VB02cf4964-aad254ab
[root@up2 ~]#/usr/lib/udev/scsi_id -g -u /dev/sdd
1ATA_VBOX_HARDDISK_VBb6362300-4cd51593
8、udev绑定磁盘
节点1绑定后传给节点2
cd /tmp
vim a.sh
for i in b c d e f ;
do
echo "KERNEL==\"sd*\", BUS==\"scsi\", 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`\", NAME=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdisk.rules
done
chmod +x a.sh
./a.sh
scp /etc/udev/rules.d/99-oracle-asmdisk.rules rac12:/etc/udev/rules.d/99-oracle-asmdisk.rules/
9、2个节点做检查
cat /etc/udev/rules.d/99-oracle-asmdisk.rules/
10、2个节点再检查权限
ll -l /dev/asm*
brw-rw---- 1 grid asmadmin 8, 16 Apr 16 02:41 /dev/asm-diskb
brw-rw---- 1 grid asmadmin 8, 32 Apr 16 02:41 /dev/asm-diskc
brw-rw---- 1 grid asmadmin 8, 48 Apr 16 02:41 /dev/asm-diskd
11、2个节点都要添加自启动udev:
systemctl start systemd-udevd.service
systemctl status systemd-udevd.service
systemctl enable systemd-udevd.service
注:若重新修改rules,执行以下命令重新加载:
/usr/sbin/udevadm test /sys/block/sdb --测试
/usr/sbin/udevadm control --reload-rules
/usr/sbin/udevadm trigger --type=devices --action=change