系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux虚拟机的设备id与盘符不相符怎么办?

时间:2021-04-10    来源:大神到    人气:

一般情况下Linux虚拟机中,设备id都是映射磁盘的盘符,所以设备id和盘符是相一致的。但是用户在查看Linux设备id的时候却发现Linux虚拟机中设备id与盘符不相符,这个时候该怎么办呢?

当用户挂载多个scsi磁盘时,重启Linux虚拟机后虚拟机内部磁盘映射和用户配置的不一致。如图所示,用户配置的虚拟机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 \配置中的RESULTRedhat 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与盘符(如sdasdb)的对应关系在虚拟机重启后有可能发生变化,原因如下:

Linux生成sda、sdb、sdc的规则是由Linux内核决定的。Linux内核对于这种磁盘设备的映射基本上取决于三个顺序,一是磁盘驱动程序的加载;二是主机PCI插槽的监测;三是磁盘本身的监测,先来是sda,以此类推。

物理机在设备热插拔后重启,也会面临盘符的变化问题。比如启动前是sda,sdb,sdc,把sdb设备拔掉后重启,呈现的设备号是sda,sdb(原来的sdc)。

以上就是Linux虚拟机中设备id与盘符不相符的解决方法了,如果设备id与盘符不相符,虚拟机运行的过程中就会出现一些故障,所以要尽快排除这个问题。

相关文章

  • VMWare虚拟机下Linux无法全屏怎么办?

    VMWare虚拟机下Linux无法全屏怎么办?

    VMWare是目前业界最为流行的虚拟机工具,但是最近有用户反映在使用过程中出现了一些问题,安装了Linux虚拟机却没办法全屏了。应该不少用户都遇到过这...
    2021-04-09 03.04.49
  • 拒绝Linux虚拟机上错一步毁全部!教你Linux拍摄快照记录的方法

    拒绝Linux虚拟机上错一步毁全部!教你Linux拍摄快照记录的方法

    很多朋友最近遇到了一个小难题,就是不知道怎么在使用Linux虚拟机的时候,对操作进行保存,因为实际工作中如果我们不记录好每一步的操作,万一后面...
    2021-04-09 03.04.15
  • Linux更改VirtualBox磁盘容量的方法

    Linux更改VirtualBox磁盘容量的方法

    VirtualBox是一款虚拟机,在Linux系统使用过程中会遇到VirtualBox虚拟机磁盘空间不够用的问题,遇到这种问题该如何解决呢?下面小编就教大家Linux如何修改...
    2021-04-09 08.04.39
  • Linux利用PXE安装虚拟机的方法

    Linux利用PXE安装虚拟机的方法

    之前和友人聊天,知道可以利用PXE安装虚拟机,相信很多用户都和小编一样还不是很清楚,在这小编就把学习到的方法分享给大家。...
    2021-04-10 10.04.42

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。