本发明涉及磁盘管理技术领域,尤其是一种解决热插拔时磁盘盘符漂移方法及装置。
背景技术:
对于数据中心的运维人员来说,会遇到在服务器硬盘损坏时不停机的情况下更换硬盘的情况,也就是对硬盘进行热插拔。在对硬盘进行热插拔后,经常会发现盘符发生了变化,如图1所示,新插入的NVME盘的盘符理想情况下应该保持不变为nvme7n1,却变成了nvme8n1,发生了盘符漂移。在操作系统中,这是一种正常现象,当拔出硬盘时,若系统有进程正在访问该硬盘,则内核不会删除磁盘对应IDR的整数,该整数就会被占用,再次插入硬盘时,就分配新的IDR整数给盘符,导致盘符漂移。也就是原有磁盘对应的IDR整数7被占用,所以当插入NVME盘时,系统分配了新的IDR整数8给新插入的磁盘。虽然这是一种正常现象,但是却对系统后续的运维造成了困扰和麻烦,因为磁盘盘符是不固定的。
技术实现要素:
本发明的目的是提供一种解决热插拔时磁盘盘符漂移方法及装置,保证使用别名系统做后续运维操作时,别名系统对应的磁盘永远不会发生盘符漂移,规避掉热插拔磁盘时系统盘符不固定导致的运维困扰。
为实现上述目的,本发明采用下述技术方案:
本发明第一发明提供了一种一种解决热插拔时磁盘盘符漂移方法,包括以下步骤:
依据udev规则建立别名系统,所述别名系统与磁盘物理插槽对应。
结合第一方面,在第一方面第一种可能的实现方式中,所述依据udev规则建立别名系统,具体包括:
自定义udev规则文件,所述udev规则文件包括绑定了磁盘PCI插槽号的磁盘别名。
结合第一方面,在第一方面第二种可能的实现方式中,所述自定义udev规则文件步骤之前,还包括:
依次查询所有磁盘信息。
结合第一方面,在第一方面第三种可能的实现方式中,所述自定义udev规则文件步骤之后,还包括:
通过指令在不重启系统情况下,使新建立的udev规则文件生效。
结合第一方面,在第一方面第四种可能的实现方式中,所述通过指令在不重启系统情况下,使新建立的udev规则文件生效步骤之后,还包括:
使用如下指令#ls-ltr/dev/nvme*检测udev规则是否生效。
本发明第二方面提供了一种解决热插拔时磁盘盘符漂移装置,包括:
磁盘信息查询模块,完成所有磁盘信息查询;
别名系统建立模块,完成建立绑定了磁盘PCI插槽号的磁盘别名的udev规则文件;
udev规则生效模块,完成在不重启系统情况下使新建立的udev规则文件生效。
本发明第二方面的所述网络服务的控制装置能够实现第一方面及第一方面的各实现方式中的方法,并取得相同的效果。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
本发明提出了一种解决热插拔时磁盘盘符漂移方法,通过udev规则建立一套新的别名系统,这套别名系统与磁盘的物理插槽对应,这样即使系统磁盘盘符发生漂移,因别名系统对应的物理磁盘位置永远是固定的,可以保证使用别名系统做后续运维操作时,别名系统对应的磁盘永远不会发生盘符漂移,规避掉热插拔磁盘时系统盘符不固定导致的运维困扰。
附图说明
图1是本发明方法流程图示意图;
图2是本发明装置结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,一种解决热插拔时磁盘盘符漂移方法,包括以下这步骤:
S1、依次查询所有磁盘信息;
S2、自定义udev规则文件,所述udev规则文件包括绑定了磁盘PCI插槽号的磁盘别名;
S3、通过指令在不重启系统情况下,使新建立的udev规则文件生效。
步骤S1中,依次查询所有磁盘的信息,比如udevadm info-q all-n系统磁盘盘符(比如/dev/nvme0n1,/dev/nvme1n1……)。
步骤S2中,自定义udev规则文件,在udev规则文件中,一条条的建立所有磁盘的别名,别名绑定磁盘PCI插槽号
比如:
#vim/etc/udev/rules.d/10-myrules.rulesACTION=="add|change",KERNEL=="nvme*",KERNELS=="0000:d8:00.0",ENV{DEVTYPE}=="disk",SYNLINK="nvmeA"
ACTION=="add|change",KERNEL=="nvme*",KERNELS=="0000:d9:00.0",ENV{DEVTYPE}=="disk",SYNLINK="nvmeB"
ACTION=="add|change",KERNEL=="nvme*",KERNELS=="0000:dB:00.0",ENV{DEVTYPE}=="disk",SYNLINK="nvmeC"
其中KERNELS=="0000:d8:00.0"对应磁盘所在位置的PCI插槽号
步骤S3中,通过命令在不重启系统的情况下,使udev规则生效。
#/sbin/udevadm control--reload-rules
#/sbin/udevadm trigger--type=devices--action=change
步骤S3之后,检测该规则是否生效,可以发现新建立的别名系统是系统盘符的软链接,无论系统盘符如何变化,别名对应的永远都是PCI插槽上的物理磁盘。#ls-ltr/dev/nvme*
如图2所示,一种解决热插拔时磁盘盘符漂移装置,包括:
磁盘信息查询模块101,完成所有磁盘信息查询;
别名系统建立模块102,完成建立绑定了磁盘PCI插槽号的磁盘别名的udev规则文件;
udev规则生效模块103,完成在不重启系统情况下使新建立的udev规则文件生效。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。