Goal
Oracle RAC在进行ASM扩容前,物理服务器需先添加FC SAN存储,为了避免影响生产业务的正常运行,服务器需要在线扩容。
一些x86服务器使用了多路径软件进行存储设备绑定,然后用udev进行权限绑定,最后通过ASM将存储加入数据库。本文模拟演示普通x86服务器通过multipath和udev进行数据库ASM存储扩容。
Solution
服务器在线添加并识别存储
在给服务器添加完存储设备后,需要重新扫盘识别存储。使用echo命令来扫描每个SCSI主机设备。
echo "- - -" > /sys/class/scsi_host/host[n]/scan
sysfs文件系统是一个伪文件系统,为内核数据结构提供接口,包含设备、内核模块、文件系统和其他内核组件的信息。三个"-"是通配符,包含以下值:
运行以下命令查看系统中所有主机总线编号:
ls -l /sys/class/scsi_host/
如果只是扫描LUN设备,只需扫描以下FC通道的编号:
ls -l /sys/class/fc_host/
echo "- - -" > /sys/class/scsi_host/host17/scan
echo "- - -" > /sys/class/scsi_host/host18/scan
- c: HBA通道
- t: SCSI目标
- l: LUN
- n: HBA编号
使用multipath多路径绑定存储设备
对于FC SAN存储,同一个存储设备在服务器主机上能看到多个设备名,需要使用多路径软件进行聚合,确保服务器重启后设备名保持不变。
编辑multipath.conf文件聚合新设备。
存储wwid号可以直接从存储管理界面获取,也可以multipath -l从系统获取。
vi /etc/multipath.conf
multipaths {
multipath {
wwid 3600601603ed02e112abcf0a1b731ea11
alias data01
}
multipath {
wwid 3600601603ed02e12365ed17cb731ea11
alias data02
}
}
删除自动生成的多路径映射,运行以下命令删除未使用的多路径设备(自动生成的设备名不合符我们的规范),该命令不会删除正在使用的多路径设备,请放心使用。
multipath -F
重新检测并合并路径。
multipath -v2
检查设备是否生成。
multipath -ll
udev绑定设备权限
通过multipath我们将存储设备名绑定,udev可以将存储设备权限绑定。
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600601603ed02e00d1234407f0beed11", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asmndata13"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-3600601603ed02e00d8543c27f0beed11", ACTION=="add|change", OWNER:="grid", GROUP:="asmadmin", MODE:="660", SYMLINK+="asmndata14"
在线relaod udev配置文件。
/sbin/udevadm control --reload-rules
/sbin/udevadm trigger --type=devices --action=change
asm磁盘组扩容
调用asmca图形化界面进行扩容,加入新存储设备时,asm磁盘组会进行rebalance数据重分布,建议将扩容操作放在业务低峰期,避免影响性能,为了加速数据rebalance,可以调整asm_power_limit参数,增加并行,提升速度。