Linux盘符漂移问题
问题现象
应用系统中存在着三个系统LUN,分别是SYS_LUN1、SYS_LUN2、SYS_LUN3,通常情况下,SYS_LUN3能正常挂载到sda盘符下,如下所示:
[root@hym ~]# cd /dev/disk/by-id/
[root@hym by-id]# ll
total 0
lrwxrwxrwx 1 root root 9 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN1 -> ../../sdb
lrwxrwxrwx 1 root root 9 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN2 -> ../../sdc
lrwxrwxrwx 1 root root 9 Apr 29 15::36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 -> ../../sda
lrwxrwxrwx 1 root root 10 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 --part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 Apr 29 15:36 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3-part4 -> ../../sda4
但在实际应用中,当系统中该节点发生重启后,SYS_LUN3会概率性挂载到sdc或者其他盘符下,也就是节点重启后linux挂载盘符发生了盘符漂移现象,如下所示:
[root@hym ~]# cd /dev/disk/by-id/
[root@hym by-id]# ll
total 0
lrwxrwxrwx 1 root root 9 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN1 -> ../../sda
lrwxrwxrwx 1 root root 9 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN2 -> ../../sdb
lrwxrwxrwx 1 root root 9 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 -> ../../sdc
lrwxrwxrwx 1 root root 10 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 --part1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 --part2-> ../../sdc2
lrwxrwxrwx 1 root root 10 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 --part3 -> ../../sdc3
lrwxrwxrwx 1 root root 10 Apr 29 14:09 scsi-0QEMU_QEMU_HARDDISK_SYS_LUN3 --part4 -> ../../sdc4
由于系统中业务逻辑部分存在大量将SYS_LUN3与sda盘符进行绑定的操作,一旦发生盘符漂移现象,则导致SYS_LUN3挂载盘符与预期不一致,进而造成系统应用无法正常使用。
问题分析
有没有一种方法可以实现这种SYS_LUN3与sda盘符进行永久绑定,也就是指定盘符挂载方式,即使是系统节点发生重启也不受影响呢?
尝试利用Udev策略创建58-storage.rule规则来解决这个问题,但当系统重新启动时,却提示如下信息,即udev版本不支持重命名内核设备节点。
NAME=/sda%n ignored, kernel device nodes can not be renamed; please fix it in /etc/udev/rules.d/10-test.rules:2
其实,指定挂载盘符的方式并不合理。上述问题现象实际上是系统业务逻辑设计存在缺陷导致的,即逻辑设计中将SYS_LUN3与sda盘符进行绑定,未考虑到这种可能发生的盘符漂移问题。应用程序和用户不应该关心特定存储设备的系统LUN会挂载到那个分区上,因为系统重启后这些sdX盘符可能会发生更改,并且这种更改是符合预期的。
解决方案
1、动态适配SYS_LUN3挂载盘符。例如,当系统盘符挂载到sdc盘符时,业务逻辑需要跟着适配和绑定到sdc盘符,替代之前预期需要绑定到sda盘符的相关操作。
2、SYS_LUN3使用一些唯一或永久的属性进行绑定(例如LUN WWID或文件系统UUID),而不是sdX这种可能发生变化的盘符。
下面是在/etc/fstab中使用的一个样例:
[root@hym ~]# blkid | grep sda2
/dev/sda2: UUID="8418e5ee-4c32-4bd2-8e60-f8c16fcf1375" TYPE="ext3"
[root@hym ~]#
[root@hym ~]# grep "8418e5ee-4c32-4bd2-8e60-f8c16fcf1375" /etc/fstab
UUID=8418e5ee-4c32-4bd2-8e60-f8c16fcf1375 / ext3 rw,suid,dev,exec,auto,nouser,sync 1 1
Linux盘符漂移问题相关推荐
- linux直通卡 盘符漂移_linux盘符漂移问题及解决方案
在Linux系统中,若存在多块硬盘,通常内核分配盘符的顺序是 /dev/sda./dev/sdb./dev/sdc -- 在系统启动过程中,内核会按照扫描到硬盘的顺序分配盘符. 在系统启动后,热插拔硬 ...
- Linux热插拔硬盘导致盘符漂移,一种解决热插拔时磁盘盘符漂移方法及装置与流程...
本发明涉及磁盘管理技术领域,尤其是一种解决热插拔时磁盘盘符漂移方法及装置. 背景技术: 对于数据中心的运维人员来说,会遇到在服务器硬盘损坏时不停机的情况下更换硬盘的情况,也就是对硬盘进行热插拔.在对硬 ...
- linux绑定盘符吗,Linux盘符绑定实现原理.PDF
Linux盘符绑定实现原理 Linux盘符绑定实现原理 正一 2016.7.25 目 录 Linux盘符的分配 Linux内核IDR机制 Linux盘符绑定 Linux盘符的分配 sd_ ...
- linux盘符改名字,Linux 下powerpath共享磁盘名称不一致处理方法
我们知道在SAN网络中,由于光纤交换机会有多条链路接入主机,所以会存在设备多名称现象,也就是一台存储被识别多次,具体根据连接的链路情况,并且对于连接到的LUN在主机上的LINUX系统上会发生/dev/ ...
- linux 盘符 路径,linux下powerpath对盘与更改盘符名
现网的几套oracle rac环境下经常会有EMC存储扩盘动作,而EMC的powerpath软件本身也会存在软件版本升级的问题.每次操作时都会担心盘符变动和一套rac下的几个节点盘符名一致的问题.通过 ...
- win10下如何隐藏Linux盘符,Win10专业版系统下如何显示隐藏盘符
在win10专业版系统中,很多用户都会在磁盘中保存很多重要的文件,考虑到安全问题,有部分用户会将保存有重要信息的盘符隐藏起来,但是有时候想要打开隐藏盘符,却不知道要如何显示隐藏盘符,其实方法很简单,这 ...
- win10下如何隐藏Linux盘符,Windows10系统下如何隐藏一个磁盘盘符
一位用户反馈自己电脑中有一些不希望被访客看见的文件.照片及视频,因此就希望将它隐藏在一个只有自己知道的地方,这该如何实现呢?今天,系统城小编就要为大家分享Windows10系统下隐藏一个磁盘盘符的方法 ...
- linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令
文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...
- ida和idr机制分析(盘符分配机制)
内核ida和idr机制分析(盘符分配机制) ida和idr的机制在我个人看来,是内核管理整数资源的一种方法.在内核中,许多地方都用到了该结构(例如class的id,disk的id),更直观的说,硬盘的 ...
最新文章
- 指针01 - 零基础入门学习C语言41
- excel如何匹配同名数据_Excel如何查找名字重复的数据
- 【CyberSecurityLearning 18】ACL及实验演示
- 今日分享:vue3多层嵌套组件如何访问到最外层组件的数据?
- Python3输入输出
- 配置UIAutomator中的ANT环境报不是内部命令与外部命令
- Python嵌套定义函数增强reduce()函数功能
- numpy 索引,切片 ,转置,变值,多个数组的拼接
- 嘴上说着喜爱Java 9 ,身体却诚实地拥抱了Java 8
- 腾讯云+宝塔+tomcat / nginx部署前端代码
- linux如何卸载anaconda
- JAVA中小型医院信息管理系统源码 医院系统源码
- PS快速去除文字水印图片文字水印去除LOGO
- Tiktok shop小店注册以及如何一键上传产品批量上货铺货
- R的可视化以及ggplot2
- java 实现超时_Java任务超时处理机制实现
- android侧滑菜单 动画,Android 打造完美的侧滑菜单/侧滑View控件
- 彩色图像--色彩空间 CMY(K)空间
- 【转载】网络基础-华山论剑
- 智商黑洞(门萨Mensa测试)12
热门文章
- 论软件项目管理技术及其应用--系统分析师
- 脉冲波形的产生与整形、555定时器、施密特触发器、多谐振荡器、脉宽调温电路、单稳态电路、洗相曝光定时器、多工序循环控制电路
- 2022-4-11 尝试发送TCP外带数据,只有最后一位被当成外带数据读取
- 2022-4-8 Leetcode 575.分糖果
- NS3网络仿真器搭建
- 用计算机进行开立方运算的步骤,七年级《3.4用计算器进行数的开方》教案.doc...
- pdffactory 打印字体_使用pdfFactory虚拟打印机为打印PDF文件添加文字批注
- 一张图片能查到多少信息(社工)
- 原百度高管林元庆创立的Aibee获1.65亿元天使融资 | 创业
- python实现随机森林进行情绪分类