当用户挂载多个scsi磁盘时,重启虚拟机后虚拟机内部磁盘映射和用户配置的不一致。如图所示,用户配置的虚拟机scsi设备id与盘符对应关系。
当虚拟机重启以后,虚拟机的scsi设备id与盘符的对应关系与用户配置的不一致。如下图所示虚拟机的scsi设备id与盘符不一致:
在这种情况下,Oracle RAC中所使用的盘符对应的设备发生变化时,会对业务造成一定影响。
解决办法:
使用虚拟机scsi设备时需要指定scsi设备id,此解决方法主要适用于使用整个scsi磁盘,不在虚拟机内部对scsi磁盘进行分区的情况。环境:Redhat 6.5 64位操作系统,举例:/etc/udev/rules.d/60-raw.rules配置文件。
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$name",Redhat 6.5 64位操作系统,举例:/etc/udev/rules.d/60-raw.rules配置文件。
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u -s %p",原因分析:
Oracle RAC在安装过程中配置scsi磁盘时,传统方式是指向具体的盘符,如下/etc/udev/rules.d/60-raw.rules配置文件的内容,其中KERNEL字段代表指向的具体盘符。
ACTION=="add",KERNEL=="sdb",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdc",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdd",RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw1", OWNER="grid", GROUP="oinstall", MODE="777"
KERNEL=="raw2", OWNER="grid", GROUP="oinstall", MODE="777"
KERNEL=="raw3", OWNER="grid", GROUP="oinstall", MODE="777"
物理设备映射中呈现给虚拟机的设备id与盘符(如sda\sdb)的对应关系在虚拟机重启后有可能发生变化,原因如下:
Linux生成sda、sdb、sdc的规则是由Linux内核决定的。Linux内核对于这种磁盘设备的映射基本上取决于三个顺序,一是磁盘驱动程序的加载;二是主机PCI插槽的监测;三是磁盘本身的监测,先来是sda,以此类推。
物理机在设备热插拔后重启,也会面临盘符的变化问题。比如启动前是sda,sdb,sdc,把sdb设备拔掉后重启,呈现的设备号是sda,sdb(原来的sdc)。
本文出自 “滴水穿石孙杰” 博客,请务必保留此出处http://xjsunjie.blog.51cto.com/999372/1675363
原文地址:http://xjsunjie.blog.51cto.com/999372/1675363