问题现象

应用系统中存在着三个系统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盘符漂移问题相关推荐

  1. linux直通卡 盘符漂移_linux盘符漂移问题及解决方案

    在Linux系统中,若存在多块硬盘,通常内核分配盘符的顺序是 /dev/sda./dev/sdb./dev/sdc -- 在系统启动过程中,内核会按照扫描到硬盘的顺序分配盘符. 在系统启动后,热插拔硬 ...

  2. Linux热插拔硬盘导致盘符漂移,一种解决热插拔时磁盘盘符漂移方法及装置与流程...

    本发明涉及磁盘管理技术领域,尤其是一种解决热插拔时磁盘盘符漂移方法及装置. 背景技术: 对于数据中心的运维人员来说,会遇到在服务器硬盘损坏时不停机的情况下更换硬盘的情况,也就是对硬盘进行热插拔.在对硬 ...

  3. linux绑定盘符吗,Linux盘符绑定实现原理.PDF

    Linux盘符绑定实现原理 Linux盘符绑定实现原理 正一 2016.7.25 目 录  Linux盘符的分配  Linux内核IDR机制  Linux盘符绑定 Linux盘符的分配 sd_ ...

  4. linux盘符改名字,Linux 下powerpath共享磁盘名称不一致处理方法

    我们知道在SAN网络中,由于光纤交换机会有多条链路接入主机,所以会存在设备多名称现象,也就是一台存储被识别多次,具体根据连接的链路情况,并且对于连接到的LUN在主机上的LINUX系统上会发生/dev/ ...

  5. linux 盘符 路径,linux下powerpath对盘与更改盘符名

    现网的几套oracle rac环境下经常会有EMC存储扩盘动作,而EMC的powerpath软件本身也会存在软件版本升级的问题.每次操作时都会担心盘符变动和一套rac下的几个节点盘符名一致的问题.通过 ...

  6. win10下如何隐藏Linux盘符,Win10专业版系统下如何显示隐藏盘符

    在win10专业版系统中,很多用户都会在磁盘中保存很多重要的文件,考虑到安全问题,有部分用户会将保存有重要信息的盘符隐藏起来,但是有时候想要打开隐藏盘符,却不知道要如何显示隐藏盘符,其实方法很简单,这 ...

  7. win10下如何隐藏Linux盘符,Windows10系统下如何隐藏一个磁盘盘符

    一位用户反馈自己电脑中有一些不希望被访客看见的文件.照片及视频,因此就希望将它隐藏在一个只有自己知道的地方,这该如何实现呢?今天,系统城小编就要为大家分享Windows10系统下隐藏一个磁盘盘符的方法 ...

  8. linux一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令

    文章目录 一,系统分区 Linux的盘符结构 Linux常用命令: 一,目录/文件的处理命令 一,系统分区 概念:在硬盘上产生文件系统的过程 第一步:磁盘分区(创建隔断) 分区规则:主分区最多只能分4 ...

  9. ida和idr机制分析(盘符分配机制)

    内核ida和idr机制分析(盘符分配机制) ida和idr的机制在我个人看来,是内核管理整数资源的一种方法.在内核中,许多地方都用到了该结构(例如class的id,disk的id),更直观的说,硬盘的 ...

最新文章

  1. 指针01 - 零基础入门学习C语言41
  2. excel如何匹配同名数据_Excel如何查找名字重复的数据
  3. 【CyberSecurityLearning 18】ACL及实验演示
  4. 今日分享:vue3多层嵌套组件如何访问到最外层组件的数据?
  5. Python3输入输出
  6. 配置UIAutomator中的ANT环境报不是内部命令与外部命令
  7. Python嵌套定义函数增强reduce()函数功能
  8. numpy 索引,切片 ,转置,变值,多个数组的拼接
  9. 嘴上说着喜爱Java 9 ,身体却诚实地拥抱了Java 8
  10. 腾讯云+宝塔+tomcat / nginx部署前端代码
  11. linux如何卸载anaconda
  12. JAVA中小型医院信息管理系统源码 医院系统源码
  13. PS快速去除文字水印图片文字水印去除LOGO
  14. Tiktok shop小店注册以及如何一键上传产品批量上货铺货
  15. R的可视化以及ggplot2
  16. java 实现超时_Java任务超时处理机制实现
  17. android侧滑菜单 动画,Android 打造完美的侧滑菜单/侧滑View控件
  18. 彩色图像--色彩空间 CMY(K)空间
  19. 【转载】网络基础-华山论剑
  20. 智商黑洞(门萨Mensa测试)12

热门文章

  1. 论软件项目管理技术及其应用--系统分析师
  2. 脉冲波形的产生与整形、555定时器、施密特触发器、多谐振荡器、脉宽调温电路、单稳态电路、洗相曝光定时器、多工序循环控制电路
  3. 2022-4-11 尝试发送TCP外带数据,只有最后一位被当成外带数据读取
  4. 2022-4-8 Leetcode 575.分糖果
  5. NS3网络仿真器搭建
  6. 用计算机进行开立方运算的步骤,七年级《3.4用计算器进行数的开方》教案.doc...
  7. pdffactory 打印字体_使用pdfFactory虚拟打印机为打印PDF文件添加文字批注
  8. 一张图片能查到多少信息(社工)
  9. 原百度高管林元庆创立的Aibee获1.65亿元天使融资 | 创业
  10. python实现随机森林进行情绪分类