linux虚拟机的设备id与盘符不一致问题的解决

当用户挂载多个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",
RESULT=="360022a11000e085d0de717f500000003", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u -d /dev/$name",
RESULT=="360022a11000e085d0de7372c0000002e", RUN+="/bin/raw /dev/raw/raw2 %N"
KERNEL=="raw1", OWNER="grid", GROUP="oinstall", MODE="777"
KERNEL=="raw2", OWNER="grid", GROUP="oinstall", MODE="777"

我们可以通过/sbin/scsi_id -g -u -d /dev/$name,来获取配置中的RESULT。例如:

当你需要使用/dev/sda作为RAC设备,可以执行:
#/sbin/scsi_id -g -u -d /dev/sda
得到的结果是:
#360022a11000e085d0de717f500000003     \\配置中的RESULT

Redhat 6.5 64位操作系统,举例:/etc/udev/rules.d/60-raw.rules配置文件。

ACTION=="add", KERNEL=="sd*", PROGRAM=="/sbin/scsi_id -g -u -s %p",
RESULT=="360022a11000be24a0004aeee0000000a", RUN+="/bin/raw /dev/raw/raw1 %N"
KERNEL=="raw1", OWNER="grid", GROUP="oinstall", MODE="777"

通过在PROGRAM中指定的/sbin/scsi_id -g -u -s %p,来获取配置中的RESULT。例如:

如果需要使用/dev/sda作为RAC设备,可以执行:
#/sbin/scsi_id -g -u -s /block/sda
得到的结果是:
#360022a11000be24a0004aeee0000000a     \\配置中的RESULT

原因分析:

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)。

时间: 2024-10-19 08:35:36

linux虚拟机的设备id与盘符不一致问题的解决的相关文章

linux虚拟机正常安装完成后获取不到IP的解决办法-网卡

通常正常情况下安装完linux虚拟机,只需要使用桥接并修改配置文件/etc/sysconfig/network-scripts/ifcfg-eth0,将如下参数值改为如下: ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp 然后重启网络服务即可:service network restart 家里的笔记本用这种方式确实可行,可是带到公司后发现就获取不到IP了,而且也重启不了网卡,原来是因为路由器的dhcp功能有问题,如果路由器不调整,此种方式肯定是行不通了.

linux mount挂载设备(u盘,光盘,iso等 )使用说明

对于新手学习,mount 命令,一定会有很多疑问.其实我想疑问来源更多的是对linux系统本身特殊性了解问题. linux是基于文件系统,所有的设备都会对应于:/dev/下面的设备.如: [[email protected] dev]$ ls | grep -E  "^(sd|hd)"hdcsdasda1sda2sdbsdb1 sd*代表scic硬盘 因此,需要进行设备访问时候,我们需要进行系统挂载(mount). 那么mount到底能够挂载那些设备呢. 我们可以看一下. 一.moun

双机热备中磁盘盘符不一致解决办法

背景 在测试机上,挂载多块磁盘阵列做不同应用测试,结果发现A机与B机,/dev/sdb1 磁盘不一致了,导致双机软件无法启动,在生产环境中也可能遇到这种情况,故想到一种简单的解决办法. 解决办法 系统磁盘的UUID号是不变的,这个UUID其实是链接文件,链接到/dev/sdb1,那再次将UUID号链接到/dev/disk,双机配置文件中,配置/dev/disk,经过测试,未发现问题 后记 网上对于这类问题的解决办法,是通过uudev来解决的,原理上也是根据磁盘不变的特性来做链接,比如磁盘大小,我

虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案

我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步,被Windows读取到虚拟机下Linux读取USB设备的问题 还有一种是虚拟机USB读取服务文件出现了问题,这个见链接 http://blog.csdn.net/limb99/article/details/7723600 1.当虚拟机的USB服务没有开启的时候,是无法读取到的,必须将其打开 2.若

Linux盘符漂移问题

Linux管理多块磁盘时(以sata盘为例),会按磁盘加载的顺序依次给磁盘命名为/dev/sda, /dev/sdb... 这种命名规则就会导致,一块磁盘在发生热插拔或系统重启后,盘符可能发生变化,会影响到一些依赖磁盘盘符工作的应用程序,比如fstab里按盘符名来挂载. 要解决磁盘盘符漂移问题,一劳永逸的方法就是将磁盘槽位与盘符名做绑定:淘宝内核组的三百同学针对ali内核,添加了磁盘绑定的补丁. 如果只针对磁盘挂载到问题,可通过按标签或UUID挂载的方式解决,下文将简单介绍下方案. 如下所示的f

Linux盘符绑定槽位

服务器下的硬盘主有机械硬盘.固态硬盘以及raid阵列,通常内核分配盘符的顺序是/dev/sda./dev/sdb- -.在系统启动过程中,内核会按照扫描到硬盘的顺序分配盘符(先分配直通的,再分配阵列).在同一个硬盘槽位,热插拔硬盘,系统会顺着已存在的盘符分配下去,如之前分配的是/dev/sdb,系统最后一块硬盘是/dev/sdf,那么/dev/sdb/热拔插后,系统会重新分配这块硬盘的盘符为/dev/sdg,出现盘符错乱的情况. 假设机器上有14个硬盘槽位,槽位号分别为0~13,在Centos7

linux下取消桌面显示挂载的盘符,主文件夹,回收站等

打开dconf-editor找到 org gonome nautilus desktop volumes-visiable //盘符 //等 取消对应勾选

利用vmware安装linux虚拟机

VMware的特点: 1.不需要分区或重新开机就能在同一台PC上使用两种以上的操作系统 2.本机系统可以与虚拟机系统网络通信 3.可以设定并且随时修改虚拟机操作系统的硬件环境   VMware 可以装多个系统 和物理机功能一样,随时修改硬件环境,但内存最多为物理机一半. 官网 www.vmware.com 新版本主要面对企业更新,占用更多资源,7.0不能在WIN7上用. 可以用快照,将虚拟机操作系统当前状态保存下来,不像物理机需要重装,利于学习,方便.   建议配置 CPU 1GHz 内存 1G

小白学Linux(一):U盘引导安装centos7

1.下载centos iso安装包 从centos官网https://www.centos.org/download/下载最新的DVD ISO 2.使用UltraISO将ISO镜像刻录到U盘 3.U盘启动电脑进入安装界面 正常情况下你应该会看到下面的这个界面: ps:选择第一项"install centos 7",如果能够直接进入图片安装界面,则可以直接跳过以下内容,直接看第4步.如果遇到”/dev/root does not exist",可通过以下内容解决. 解决问题第一