linux系统 重启盘符错乱问题
linux磁盘重启乱序问题处理
最近到客户那去巡检时,客户提到一个问题,他们的rac在重启的时候,原来的sda1、sdb1、sdc1会对应变成sdd1、sde1、sdf1,由于他们使用的是盘符来绑定裸设备,所以启动后,经常要手动执行以下命令
[root@ractest1 ~]# raw /dev/raw/raw1 /dev/sda1
[root@ractest1 ~]# raw /dev/raw/raw2 /dev/sdb1
[root@ractest1 ~]# raw /dev/raw/raw3 /dev/sdc1
并且,比较奇怪的事,两边有时认得的盘完全不一样,一边是sda\b\c,另一边是sdd\e\f,这样,使oracle rac的共享盘出现问题。
在了解了他们的情况后,我基本上明白是什么原因,这种盘序错乱,与linux对磁盘的扫描机制有关,所以我们只能从另一角度去规避这样的问题,使用id号去绑定,这样就没有问题。在告诉他后,他同意我们对他原来的绑定方式进行修改,具体操作如下:
[root@ractest1 ~]# fdisk -l
Disk /dev/sdd: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdd1 1 52216 419424988+ 83 Linux
Disk /dev/sde: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sde1 1 1008 204595 83 Linux
Disk /dev/sdf: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdf1 1 1008 204595 83 Linux
可以看到,刚重启的节点1是sdd/sde/sdf
另一个节点的情况是:
[root@ractest2 ~]# fdisk -l
Disk /dev/sda: 429.4 GB, 429496729600 bytes
255 heads, 63 sectors/track, 52216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 1 52216 419424988+ 83 Linux
Disk /dev/sdb: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 1008 204595 83 Linux
Disk /dev/sdc: 209 MB, 209715200 bytes
7 heads, 58 sectors/track, 1008 cylinders
Units = cylinders of 406 * 512 = 207872 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 1 1008 204595 83 Linux
分别在两台机子上执行如下命令:
[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sda
360080e500017ff06000004054c47bd4a
[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sdb
360080e500017fdd8000004c74c6344ef
[root@ractest2 ~] /usr/lib/udev/scsi_id -g -s /block/sdc
360080e500017ff060000044f4c63446e
[root@ractest1 ~] /usr/lib/udev/scsi_id -g -s /block/sdd
360080e500017ff06000004054c47bd4a
[root@ractest1 ~] /usr/lib/udev/scsi_id -g -s /block/sde
360080e500017fdd8000004c74c6344ef
[root@ractest1 ~] /usr/lib/udev/scsi_id -g -s /block/sdf
360080e500017ff060000044f4c63446e
能过对比,可以看到sda与sdd,sdb与sde,sdc与sdf是对应用的,所以我们启用udev,通过绑定id来规避这个问题!
[root@ractest1 ~]# cd /etc/udev/rules.d/
[root@ractest1 rules.d]# ls -a
. 50-udev.rules 60-pcmcia.rules 61-uinput-wacom.rules 90-hal.rules
.. 51-hotplug.rules 60-raw.rules 85-pcscd_ccid.rules 95-pam-console.rules
05-udev-early.rules 60-libsane.rules 60-wacom.rules 90-alsa.rules 98-kexec.rules
40-multipath.rules 60-net.rules 61-uinput-stddev.rules 90-dm.rules bluetooth.rules
[root@ractest1 rules.d]# vi 60-raw.rules
# Enter raw device bindings here.
#
# An example would be:
# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"
# to bind /dev/raw/raw1 to /dev/sda, or
# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"
# to bind /dev/raw/raw2 to the device with major 8, minor 1.
ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017ff060000044f4c63446e", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017fdd8000004c74c6344ef", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sd*1", PROGRAM=="/sbin/scsi_id -g -u -s %p", RESULT=="360080e500017ff06000004054c47bd4a", RUN+="/bin/raw /dev/raw/raw3 %N"
KERNEL=="raw[1-3]", OWNER="oracle", GROUP="dba", MODE="660"
[root@ractest1 rules.d]# start_udev
Starting udev: [ OK ]
[root@ractest1 rules.d]#
[root@ractest1 rules.d]# raw -qa
/dev/raw/raw1: bound to major 8, minor 81
/dev/raw/raw2: bound to major 8, minor 65
/dev/raw/raw3: bound to major 8, minor 49
同理,在另一台机,也进行同样的操作。
经过如上操作后,所有问题都解决了,不管怎么重启都不会有问题!
原文地址:
http://blog.itpub.net/21752515/viewspace-1063051/
https://blog.csdn.net/ctypyb2002/article/details/78668499
linux系统 重启盘符错乱问题的更多相关文章
- 制作linux系统U盘并使用U盘安装CentOS7.6系统
目录 一.制作linux启动盘 1.1. 准备工作 1.2. 制作linux系统U盘 二.使用U盘安装Centos7.6 2.1. 使用U盘启动 2.2. 更改 ...
- Linux系统重启Oracle-12c步骤
Linux系统重启Oracle-12c步骤 1. 使用oracle用户登录: [root@Oracle-12c /]# su – oracle 2. 登录oracle登陆管理员账号: [oracle@ ...
- Linux中的盘符问题
在windows 中像 C.D.E.F这些都可以当盘符,就是说对应了我们所看到的C盘,D盘,E盘,F盘.然而是不是只能加26个硬盘了呢? 盘符到硬盘也只是一个对映关系,我们也是可以建立从一个文件夹到一 ...
- 如何制作 linux 系统 U盘启动盘
1.制作linux 系统的U盘启动盘,需要选择ISO 模式!给大家推荐几个制作相关软件以及相关制作过程(点击相应名字即可进入到网站):UltraISO.rufus.老毛桃.大白菜. UltraISO ...
- linux系统重启网卡后网络不通(NetworkManager篇)
一.故障现象 RHEL7.6系统,使用nmcli绑定双网卡后,再使用以下命令重启network服务后主机网络异常,导致无法通过ssh远程登录系统. # systemctl restart n ...
- linux系统数据盘挂载教程
将数据盘挂载为/www命令:#mkdir /www & mount /dev/sdb1 /www ----------------------------------------------- ...
- Linux系统管道命令符
管道命令符“|”的作用是将前一个命令的标准输出作为后一个命令的标准输入,格式为“命令A | 命令B” 以下实例中,通过grep命令搜索关键字“/sbin/nologin”在/etc/passwd中查找 ...
- Linux系统重启network服务失败
问题描述 使用KVM通过修改配置文件配置好网卡IP,使用命令行service network restart 重启网络服务失败. 如图: 使用图形化管理工具配置IP,在系统界面右上角可以看到网卡状态为 ...
- CentOS 6.8 Linux系统U盘制作启动项
1.下载CentOS 6.8镜像文件: 2.下载地址:http://man.linuxde.net/download/CentOS_6_8 3.准备一个U盘,最好8G的: 4.下载UltraISO盘制 ...
随机推荐
- asp.net使用WebUploader做大文件的分块和断点续传
HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.a ...
- BZOJ 1406: [AHOI2007]密码箱
二次联通门 : BZOJ 1406: [AHOI2007]密码箱 /* BZOJ 1406: [AHOI2007]密码箱 数论 要求 x^2 ≡ 1 (mod n) 可以转换为 x ^ 2 - k * ...
- AtCoder Grand Contest 008题解
传送门 \(A\) 分类讨论就行了 然而我竟然有一种讨论不动的感觉 int x,y; inline int min(R int x,R int y){return x<y?x:y;} inlin ...
- C++标准库分析总结(八)——<仿函数、适配器、istream_iterator、ostream_iterator、bind>
一.仿函数定义 仿函数是STL中最简单的部分,存在的本质就是为STL算法部分服务的,一般不单独使用.仿函数(functors)又称为函数对象(function objects),虽然函数指针虽然也可以 ...
- 页面上有tab,如何点击加载更多?
加载更多是一个很简单的东西.但是也有几点需要注意: 1.首先在你切换tab的时候,要么在调用这个函数的时候将这个的thispage设为1,要么在切换tab的时候将这个thispage设为1,当你将这个 ...
- mac使用poetry
安装 为了防止依赖冲突不推荐使用pip的方式直接安装,当然你也可以这样做 curl -sSL https://raw.githubusercontent.com/sdispater/poetry/ma ...
- 用java将简单的word文档换成pdf文档
用java将简单的word文档换成pdf文档的方式很多,因为很多都没有实际测试过,所以这里就先泛泛的说一下 整体上来看分两种: 1.纯java代码实现,有很多优秀的开源软件可以用,比如poi,itex ...
- 三大框架 之 Hibernate查询(一对多、多对多、查询关系)
目录 一对多 表之间关系 表之间关系建表原则 一对多关系配置 建立表 建立ORM 添加配置文件 在hibernate.cfg.xml中的标签里,添加核心配置文件 引入工具类 编写测试类 级联操作 什么 ...
- Python自动化测试常用库
基本库: sys 程序和Python解析器的交互 os 启动新进程:操作文件和目录 re 正则表达式,字符串匹配 string 基本字符串操作 inspect 提供自省和反射功能 importlib ...
- 字节码(.class)文件的加载过程
类加载 在Java代码中,类型的加载.连接与初始化过程都是在程序运行期间完成的. 类型可以是Class,Interface, 枚举等. Java虚拟机与程序的生命周期 在如下几种情况下,Java虚拟机 ...