Please enable JS

“杉岩两语”VMware与OpenStack融合环境下如何生成ASM磁盘

/2017-3-20 15:42:18

ASM(自动存储管理)是Oracle 10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作系统所提供的LVM,它不仅支持单实例,同时对RAC的支持也是非常好。ASM可以自动管理磁盘组并提供有效的数据冗余功能。

本文我们将和您聊聊在融合部署环境下,不采用iSCSI方式生成ASM磁盘的具体过程。本次讨论仅针对测试环境使用。

一:VMware环境

在VMware融合部署环境中由于VMware虚拟磁盘对SCSI指令支持比较完善,可以通过SCSI来生成规则文件,然后在生成ASM磁盘,本文虚拟机系统采用centos 6.5系统

1:要VMware支持磁盘UUID。

在指定虚拟机属性参数中添加disk.EnableUUID = "TRUE",使虚拟机支持磁盘UUID属性。

VMware与OpenStack融合环境下如何生成ASM磁盘

2:添加虚拟磁盘

在第一台虚拟机上添加磁盘。

VMware与OpenStack融合环境下如何生成ASM磁盘

选择不同的虚拟设备节点,如:SCSI(1:0),并配置磁盘模式为独立、持久模式。

VMware与OpenStack融合环境下如何生成ASM磁盘

设置新添加的SCSI控制器为虚拟共享模式。

VMware与OpenStack融合环境下如何生成ASM磁盘

在另外一台虚拟机上采用同样的方法添加磁盘,在添加磁盘时,选择使用现有磁盘,并找到第一台虚拟机添加的磁盘。

VMware与OpenStack融合环境下如何生成ASM磁盘

VMware与OpenStack融合环境下如何生成ASM磁盘

3:生成规则文件

通过SCSI命令得出新添加的虚拟磁盘的UUID,使用SCSI ID命令获取,

例如:本次虚拟磁盘盘符为sdb,则可以采用如下命令来获取sdb虚拟磁盘的UUID

# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb

36000c2952babe4620968f80a9e4deb99

根据得到的虚拟磁盘的UUID来生成规则文件,如sdb虚拟磁盘生成规则文件如下:

KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2952babe4620968f80a9e4deb99", NAME="asmdisk1", OWNER="grid", GROUP="asmadmin", MODE="0660"

start_udev通过规则文件生成ASM磁盘。


二:OpenStack环境

OpenStack部署环境中最终可以看成是KVM虚拟机,在KVM虚拟机中,如果虚拟成SCSI磁盘,则性能达不到最优,本文采用VirtIO DISK磁盘来做ASM磁盘,以保证性能最优。

1:添加磁盘

通过KVM虚拟机添加磁盘时,直接使用rbd地址来添加磁盘,磁盘类型为VirtIO,并为磁盘添加serial number。模式为raw,并且选择无缓存模式,另外一台虚拟机也采用该方法添加磁盘,下图为添加后的磁盘:

VMware与OpenStack融合环境下如何生成ASM磁盘

通过KVM配置文件查看添加后的磁盘

VMware与OpenStack融合环境下如何生成ASM磁盘

2:生成规则文件

可以通过添加的虚拟磁盘的SN来做规则文件,如下:

SUBSYSTEM=="block",ATTR{serial}=="123456789",NAME="asmdisk1", OWNER="grid", GROUP="asmadmin", MODE="0660"

start_udev通过规则文件生成ASM磁盘

最后生产的ASM磁盘如图:

VMware与OpenStack融合环境下如何生成ASM磁盘

有了规则文件,就可以顺利搭建ASM磁盘了,然后根据Oracle RAC搭建步骤搭建Oracle RAC环境。

虽然ASM并不是一个非常新的概念,但在目前融合部署的趋势下,其在性能提升、资源充分利用、可靠性、简化管理等方面的优势依然较为突出。