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属性。
2:添加虚拟磁盘
在第一台虚拟机上添加磁盘。
选择不同的虚拟设备节点,如:SCSI(1:0),并配置磁盘模式为独立、持久模式。
设置新添加的SCSI控制器为虚拟共享模式。
在另外一台虚拟机上采用同样的方法添加磁盘,在添加磁盘时,选择使用现有磁盘,并找到第一台虚拟机添加的磁盘。
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,并且选择无缓存模式,另外一台虚拟机也采用该方法添加磁盘,下图为添加后的磁盘:
通过KVM配置文件查看添加后的磁盘
2:生成规则文件
可以通过添加的虚拟磁盘的SN来做规则文件,如下:
SUBSYSTEM=="block",ATTR{serial}=="123456789",NAME="asmdisk1", OWNER="grid", GROUP="asmadmin", MODE="0660"
start_udev通过规则文件生成ASM磁盘
最后生产的ASM磁盘如图:
有了规则文件,就可以顺利搭建ASM磁盘了,然后根据Oracle RAC搭建步骤搭建Oracle RAC环境。
虽然ASM并不是一个非常新的概念,但在目前融合部署的趋势下,其在性能提升、资源充分利用、可靠性、简化管理等方面的优势依然较为突出。