在CentOS 6.5环境中配置ASM的完整指南
对于需要在CentOS 6.5系统上部署Oracle数据库的用户而言,ASM(Automatic Storage Management)是管理存储资源的高效工具,它简化了磁盘组管理,提升了数据库的可用性和性能,本文将详细讲解如何在CentOS 6.5中配置ASM,涵盖从环境准备到最终验证的全流程操作。

**一、环境准备与依赖安装
在开始配置ASM前,需确保系统满足以下条件:
1、操作系统版本:确认当前系统为CentOS 6.5,内核版本不低于2.6.32-431。
2、存储设备:至少准备两块未格式化的磁盘(例如/dev/sdb和/dev/sdc),建议使用相同容量磁盘以提升性能。
3、软件依赖:安装ASM所需的驱动包和工具:
yum install -y oracleasm-support kmod-oracleasm
注意事项:
- 若系统未安装yum-utils,需先执行yum install yum-utils更新仓库配置。

- 如果使用虚拟机环境,需在虚拟化管理平台中将磁盘设置为“持久化”模式。
**二、配置ASM磁盘与驱动
1、加载ASM内核模块
运行以下命令加载Oracle ASM内核驱动:
/etc/init.d/oracleasm configure
根据提示输入默认用户(通常为oracle)和用户组(dba),并选择“Yes”启用驱动自启动。
2、初始化磁盘
将物理磁盘标记为ASM可用设备:

oracleasm createdisk ASM_DISK1 /dev/sdb1 oracleasm createdisk ASM_DISK2 /dev/sdc1
完成后,通过oracleasm listdisks命令验证磁盘是否成功挂载。
**三、调整系统内核参数
为优化ASM性能,需修改系统内核参数:
1、编辑/etc/sysctl.conf,添加以下内容:
fs.aio-max-nr = 1048576 vm.dirty_ratio = 20 vm.dirty_background_ratio = 3
2、执行sysctl -p使配置生效。
关键点说明:
aio-max-nr参数需根据实际并发I/O负载调整,避免因异步I/O请求过多导致性能瓶颈。
dirty_ratio参数控制内存中脏页的比例,过高可能导致I/O突发写入,影响稳定性。
**四、创建ASM磁盘组
1、进入Oracle Grid Infrastructure命令行工具(asmca),选择“Create Disk Group”。
2、输入磁盘组名称(如DATA),冗余级别选择NORMAL(需至少两块磁盘)。
3、勾选已初始化的ASM磁盘(ASM_DISK1和ASM_DISK2),完成创建。
冗余模式选择建议:
EXTERNAL:依赖外部存储实现冗余,适用于RAID已配置的环境。
HIGH:数据镜像三份,适用于对可用性要求极高的场景。
**五、权限与用户组配置
确保Oracle数据库实例用户(如oracle)拥有ASM设备访问权限:
1、将用户加入dba组:
usermod -a -G dba oracle
2、修改ASM磁盘组权限:
ALTER DISKGROUP DATA SET ATTRIBUTE 'permission' = 'rw-r-----';
**六、验证ASM运行状态
1、检查ASM实例状态:
sqlplus / as sysasm SELECT name, state FROM v$asm_diskgroup;
若输出显示磁盘组为MOUNTED,则配置成功。
2、性能测试:
使用dd命令模拟数据写入,观察磁盘吞吐量:
dd if=/dev/zero of=/dev/oracleasm/disks/ASM_DISK1 bs=1M count=1000
**七、常见问题与解决方法
问题1:oracleasm createdisk报错“Device not found”
原因:磁盘未正确分区或权限不足。
解决:使用fdisk重新分区,并确保用户具有/dev/sd设备的读写权限。
问题2:ASM磁盘组无法挂载
原因:内核参数未生效或磁盘标签冲突。
解决:重启oracleasm服务,并检查磁盘UUID是否重复。
个人观点
ASM在CentOS 6.5环境中的配置虽然涉及较多手动操作,但其自动化管理能力显著降低了存储维护成本,对于中大型数据库系统,ASM的负载均衡与故障转移特性能够有效提升业务连续性,需注意CentOS 6.5已逐步停止官方支持,建议在条件允许时升级至更高版本系统,以获得更好的安全性与兼容性。
