CN103218180B - 磁盘定位方法和定位装置 - Google Patents

磁盘定位方法和定位装置 Download PDF

Info

Publication number
CN103218180B
CN103218180B CN201310178074.XA CN201310178074A CN103218180B CN 103218180 B CN103218180 B CN 103218180B CN 201310178074 A CN201310178074 A CN 201310178074A CN 103218180 B CN103218180 B CN 103218180B
Authority
CN
China
Prior art keywords
disk
target
target disk
sda
sysfs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310178074.XA
Other languages
English (en)
Other versions
CN103218180A (zh
Inventor
胡殿明
刘雨亮
王海斌
魏伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201310178074.XA priority Critical patent/CN103218180B/zh
Publication of CN103218180A publication Critical patent/CN103218180A/zh
Application granted granted Critical
Publication of CN103218180B publication Critical patent/CN103218180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明提出一种磁盘定位方法及磁盘定位装置,其中,磁盘定位方法包括以下步骤:通过Sysfs接口检测目标磁盘的接口的连接方式;以及根据目标磁盘的接口的连接方式获得目标磁盘的槽位信息。根据本发明的磁盘定位方法及磁盘定位装置,可以更加准确地定位目标磁盘,避免换错磁盘,可以提高线上服务的稳定性。

Description

磁盘定位方法和定位装置
技术领域
本发明涉及磁盘设备技术领域,特别涉及一种磁盘定位方法和定位装置。
背景技术
由于操作系统加载磁盘的顺序、RAID(Redundant Arrays of InexpensiveDisks,独立冗余磁盘阵列)卡技术限制以及盘符漂移等原因,操作系统内部分配的磁盘设备名,无法稳定地对应于特定的一块物理磁盘,因而在故障磁盘更换时,无法通过磁盘设备文件名确定磁盘位置,从而会导致换错磁盘而产生新的故障。
目前,磁盘位置定位的方法主要有两种,第一种方法是,使用udev(userspacedevice management,用户空间设备管理器)根据磁盘SN(Serial Number,序列号)将固定磁盘映射到固定的设备节点,从而通过设备节点确定对应的固定磁盘。第二种方法是,单独根据RAID卡所提供的槽位信息定位磁盘。
但是,采用第一种方法无法处理新换磁盘,如果更换磁盘,则需要通过带内方法修改udev的规则文件。而第二种方法只能在系统中只有一块RAID卡并且所有磁盘均连接该RAID卡时才能采用,而实际数据中心的服务器往往具有多种形态,例如,磁盘与RAID卡连接,或者,磁盘通过HBA(Host Bus Adapter,主机适配器)卡或者SATA口连接,所以此方法很难应用于所有服务器,应用范围受到限制。
发明内容
本发明的目的旨在至少在一定程度上解决上述的技术问题之一。
为此,本发明的一个目的在于提出一种磁盘定位方法,该磁盘定位方法可以更加准确地定位磁盘的位置,显著降低磁盘更换时的出错率,提高线上服务的稳定性。
本发明的另一个目的在于提出一种磁盘定位装置。
为达到上述目的,本发明一方面实施例提出一种磁盘定位方法,该磁盘定位方法包括以下步骤:通过Sysfs接口检测目标磁盘的接口的连接方式;以及根据所述目标磁盘的接口的连接方式获得所述目标磁盘的槽位信息。
根据本发明实施例的磁盘定位方法,通过Sysfs接口判断目标磁盘接口的连接方式,进而根据不同的连接方式选择不同的判断方法,从而实现目标磁盘的准确定位,可以避免换错磁盘,可以提高线上服务的稳定性。此外,该磁盘定位方法步骤简单,容易实现。
在本发明的一个实施例中,上述磁盘定位方法还包括:判断所述目标磁盘是否挂载所述Sysfs接口;以及如果判断所述目标磁盘未挂载所述Sysfs接口,则将所述Sysfs接口进行挂载。
在本发明的一个实施例中,当所述目标磁盘的接口的连接方式为所述目标磁盘与磁盘阵列RAID卡相连时,根据所述RAID卡获得所述目标磁盘对应的槽位信息。
其中,所述根据所述RAID卡获得所述目标磁盘对应的槽位信息进一步包括:通过所述Sysfs接口获得所述逻辑磁盘的目标ID;根据所述目标ID获得所述RAID卡所维护的逻辑磁盘信息;通过所述RAID卡根据所述逻辑磁盘信息获得所述RAID下目标磁盘所对应的槽位信息。
进一步地,在本发明的一个实施例中,当所述目标磁盘的接口的连接方式为直连方式时,根据所述目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息。
在本发明的一个实施例中,所述根据目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息进一步包括:判断所述目标磁盘是否为sda;如果所述目标磁盘为sda,则将所述目标磁盘的槽位信息设置为1;如果所述目标磁盘不为sda,则根据所述目标磁盘与所述sda之间的关系获得目标磁盘对应的槽位信息。
为达到上述目的,本发明的另一方面实施例提出一种磁盘定位装置,该磁盘定位装置包括:检测模块,所述检测模块通过Sysfs接口检测目标磁盘的接口的连接方式;获取模块,所述获取模块根据所述目标磁盘的接口的连接方式获得所述目标磁盘的槽位信息。
根据本发明实施例的磁盘定位装置,检测模块通过Sysfs接口检测目标磁盘的接口的连接方式,进而由获取模块根据不同连接方式获得目标磁盘的槽位信息,从而实现目标磁盘的准确定位,可以避免换错磁盘,可以提高线上服务的稳定性。此外,该磁盘定位装置结构简单。
在本发明的一个实施例中,上述磁盘定位装置还包括:判定模块,所述判定模块用于判断所述目标磁盘是否挂载所述Sysfs接口;挂载模块,所述挂载模块用于在所述判定模块判断所述目标磁盘未挂载所述Sysfs接口时将所述Sysfs接口进行挂载。
在本发明的一个实施例中,在所述检测模块检测到所述目标磁盘的接口的连接方式为所述目标磁盘与磁盘阵列RAID卡相连时,所述获取模块根据所述RAID卡获得所述目标磁盘对应的槽位信息。
在本发明的一个实施例中,所述获取模块还用于通过所述Sysfs接口获得所述逻辑磁盘的目标ID,并根据所述逻辑磁盘的目标ID获得所述RAID卡所维护的逻辑磁盘信息,以及通过所述RAID卡根据所述逻辑磁盘信息获得所述RAID下目标磁盘所对应的槽位信息。
在本发明的另一个实施例中,在所述检测模块检测所述目标磁盘的接口的连接方式为直连方式时,所述获取模块根据所述目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息。
在本发明的一些实施例中,在所述判定模块判断所述目标磁盘为sda时,所述获取模块将所述目标磁盘的槽位信息设置为1;在所述判定模块判定所述目标磁盘不为sda时,所述获取模块根据所述目标磁盘与所述sda之间的关系获得目标磁盘对应的槽位信息。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的磁盘定位方法的流程图;
图2为根据本发明的一个实施例的磁盘定位方法的流程图;
图3为根据本发明的另一个实施例的磁盘定位方法中当目标磁盘的接口的连接方式为目标磁盘与磁盘阵列RAID卡相连时的流程图;
图4为根据本发明的再一个实施例的磁盘定位方法中根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息的流程图;
图5为根据本发明的一个具体实施例的磁盘定位方法;
图6为根据本发明实施例的磁盘定位装置的方框示意图;以及
图7为根据本发明的一个实施例的磁盘定位装置的方框示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的可应用于性和/或其他材料的使用。另外,以下描述的第一特征在第二特征之“上”的结构可以包括第一和第二特征形成为直接接触的实施例,也可以包括另外的特征形成在第一和第二特征之间的实施例,这样第一和第二特征可能不是直接接触。
在本发明的描述中,需要说明的是,除非另有规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是机械连接或电连接,也可以是两个元件内部的连通,可以是直接相连,也可以通过中间媒介间接相连,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
参照下面的描述和附图,将清楚本发明的实施例的这些和其他方面。在这些描述和附图中,具体公开了本发明的实施例中的一些特定实施方式,来表示实施本发明的实施例的原理的一些方式,但是应当理解,本发明的实施例的范围不受此限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
下面参照附图描述根据本发明实施例提出的一种磁盘定位方法。
如图1所示,本发明实施例的磁盘定为方法包括以下步骤:
S101,通过Sysfs接口检测目标磁盘的接口的连接方式。
其中,Sysfs是一种基于内存的虚拟文件系统。Linux内核使用Sysfs来展示其内部的设备以及设备驱动的层次结构。用户可以通过Sysfs来对设备和设备驱动进行访问和简单的配置。例如,Sysfs是Linux2.6内核提供的一种虚拟文件系统,此虚拟文件系统不仅可以把设备(devices)和驱动程序(drivers)的信息从内核空间(kernel space)输出到用户空间(user space),也可以用对设备和驱动程序进行设定。在获得目标磁盘的设备文件名称后,可以通过Sysfs接口检测目标磁盘的接口的连接方式,例如,可以判断目标磁盘的接口的连接方式为直连或者通过RAID卡连接。在确定目标磁盘的连接方式之后进入步骤S102。
S102,根据目标磁盘的接口的连接方式获得目标磁盘的槽位信息。
在步骤S101检测获得目标磁盘的连接方式之后,根据其不同的连接方式获得目标磁盘的槽位信息,进而确定目标磁盘的位置。根据目标磁盘不同的连接方式,选用不同的目标磁盘定位方法。下面将详细说明目标磁盘的接口不同连接方式的磁盘定位。
其中,在本发明的一个实施例中,如图2所示,在步骤S101之前即在通过Sysfs接口检测目标磁盘的连接方式之前还包括以下步骤:
S103,判断目标磁盘是否挂载Sysfs接口。
如果判断已经挂载Sysfs接口,则可以通过Sysfs接口检测目标磁盘的连接方式即进入步骤S101,如果判断目标磁盘未挂载Sysfs接口,进入步骤S104。
S104,将Sysfs接口进行挂载。
即执行Sysfs的挂载操作,该操作会将Sysfs挂载在系统的/sys目录下,从而提供给程序访问磁盘的接口。目标磁盘在/sys/device/下面具有相应的目录,可以通过对目录中的相关文件的访问从而达到访问磁盘的作用。在Sysfs挂载成功后,进入步骤S101。
在本发明的一个实施例中,当目标磁盘的接口的连接方式为目标磁盘与磁盘阵列RAID卡相连时,可以根据RAID卡获得目标磁盘对应的槽位信息。即言,如果目标磁盘与磁盘阵列RAID卡相连则可以通过RAID卡所维护的槽位信息来对目标磁盘进行定位。具体地,在本发明的一个实施例中,如图3所示,根据RAID卡获得目标磁盘对应的槽位信息包括以下步骤:
S301,通过Sysfs接口获得逻辑磁盘的目标ID。
在本发明的一个实施例中,Sysfs接口例如/sys/block/sdb/device,可以通过device指向的路径来获得对应逻辑磁盘的PCI(Pedpherd Component Interconnect,周边元件扩展接口)总线信息,host信息,target(目标)信息。逻辑磁盘的目标ID(TargetIdentity,目标信息)可以唯一对应于RAID卡所维护的逻辑磁盘信息。
S302,根据目标ID获得RAID卡所维护的逻辑磁盘信息。
根据步骤S301获得的逻辑磁盘的目标ID可以获得唯一对应的RAID卡所维护的逻辑磁盘信息,即逻辑磁盘的目标ID与所述逻辑磁盘信息是一一对应的。
S303,通过RAID卡根据逻辑磁盘信息获得RAID下目标磁盘所对应的槽位信息。
RAID卡的逻辑磁盘信息中维护着一份物理磁盘列表的的信息,可以通过该列表获取物理磁盘对应的RAID内部设备ID,根据这个设备ID再次向RAID卡驱动程序请求访问物理磁盘的信息,从而获取物理磁盘即目标磁盘的槽位信息。具体地,例如在/dev/目录下具有RAID卡逻辑磁盘的设备文件,对应的在/sys/block下面有逻辑磁盘的接口目录,在此接口中可以查询到逻辑磁盘设备文件对应的逻辑磁盘的目标ID(target ID)。通过对逻辑磁盘的目标ID进行访问,从而可以获得RAID卡的逻辑磁盘的相关信息,包括逻辑磁盘上对应的物理磁盘的列表信息和物理磁盘的内部ID。然后通过RAID物理磁盘的内部ID访问物理磁盘,从而获得物理磁盘的槽位的信息,即获得目标磁盘的槽位信息,亦即定位目标磁盘。
换言之,在本发明的一个实施例中,通过RAID卡根据逻辑磁盘信息获得RAID所对应的槽位信息。具体地,通过步骤S302获得逻辑磁盘的目标ID对应的逻辑磁盘信息之后,通过RAID卡根据逻辑磁盘信息获得所对应的物理磁盘信息,该物理磁盘信息包括物理磁盘与RAID卡连接对应的RAID卡槽位ID,该RAID卡槽位ID与物理磁盘槽位一一对应,所以经过映射后,可以获得RAID卡下磁盘的物理槽位信息,即言通过该物理槽位信息定位目标磁盘。
在本发明的另一个实施例中,当目标磁盘的接口的连接方式为直连方式时,根据目标磁盘与sda(磁盘设备对应的设备文件,a为分配的序号,mass-storage driver a)之间的关系获得目标磁盘对应的槽位信息。具体地,如果目标磁盘的接口采用直连方式例如与HBA卡相连或者与SATA接口相连,其中,直连连接方式主要有三种:1、由主板SATA接口引导,外加一块HBA卡;2、由HBA卡引导,辅助主板SATA接口;3、采用两块HBA卡。另外,获得目标磁盘与sda之间的关系,进而根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。在本发明的一个实施例中,如图4所示,根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息进一步包括:
S401,判断目标磁盘是否为sda。
获得目标磁盘的接口和sda的信息例如连接方式、物理ID,其中物理ID唯一标示磁盘在其磁盘控制器下的物理顺序。通过比较后,判断目标磁盘是否为sda例如磁盘控制器下的第一块磁盘,如果是,则进入步骤S402,如果否则进入步骤S403。
S402,如果目标磁盘为sda,则将目标磁盘的槽位信息设置为1。
如果目标磁盘为sda,其中,sda可以为磁盘控制器的第一块磁盘即对应的槽位号为1,则将目标磁盘的槽位信息设置为1,则此槽位信息即对应目标磁盘的槽位信息。
S403,如果目标磁盘不为sda,则根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。
sda磁盘中包含了操作系统的启动信息,始终位于第一个槽位,因此其槽位信息为1。从Sysfs接口(如/sys/block/sda/)中可以获得sda的连接信息,如PCI总线地址信息,控制器的host(主机适配器如直连卡等)信息,物理phy的信息等。对于其它磁盘,phyID(physical ID物理识别)的信息是由磁盘的驱动设备固定分配的,在系统中处于唯一不变的状态,获取了sda的phyID,在结合其他磁盘的phyID与sda的phyID之间的差值,就可以判断其他磁盘在适配器上所处的位置。具体地,从Sysfs接口中可以获得各个磁盘连接信息,如PCI总线信息,host信息,phy的信息等。如果目标磁盘和sda磁盘在同一个host上时,则其phy应该是从sda向后依次按槽位的顺序递增的。得到sda的phy信息后,即可以根据目标磁盘和sda磁盘的phy的差值的大小进行排序,差值越小则槽位号越靠前,由此推断出目标磁盘的槽位号。当直连卡host上接有扩展卡expander的时候,扩展卡expander本身需要占有一个phy,其上面连接的磁盘将从新分配phy,此时将扩展卡上磁盘单独提出来排序,排序的结果连接在原有排序上即可获得关于目标磁盘的槽位信息,即定位目标磁盘。
在本发明的一个实施例中,如果步骤S401判断目标磁盘不为sda,则可以根据连接方式的预定规则,通过目标磁盘和sda的连接方式,确定整个服务器内磁盘的连接方式,从而得到每个磁盘控制器下的磁盘在整个服务器磁盘插槽的位置信息,进而根据此插槽的位置信息修正获取的物理ID信息,即可获得准确的目标磁盘的槽位信息,即准确地定位目标磁盘。
在本发明的一个具体实施例中,如图5所示,上述磁盘定位方法包括以下步骤:
S501,输入目标磁盘的名称。
在本发明的一个实施例中,目标磁盘的名称可以以参数的形式输入。在目标磁盘的名称输入后,进入步骤S502。
S502,判断内核版本是否大于等于2.6.32。
如果是,则进入步骤S503,如果否,进入步骤S511。
S503,判断Sysfs是否挂载。
如果是,则进入步骤S504,如果否,进入步骤S505。
S504,判断目标磁盘的接口是否存在。
如果是进入步骤S506,如果否,进入步骤S511。
S505,挂载Sysfs。
即将Sysfs接口加载至目标磁盘,进入步骤S506。
S506,检测目标磁盘的接口的类型。
即通过Sysfs接口检测目标磁盘的类型例如检测目标磁盘的接口是与RAID卡相连还是直连方式,如果是目标磁盘与磁盘阵列RAID卡相连方式则进入步骤S507,如果是直连方式则进入步骤S512。
S507,通过Sysfs接口获取目标磁盘接口逻辑磁盘的目标ID。
其中,通过查询该目标ID可以获得RAID所维护的逻辑磁盘信息。
S508,从RAID卡中获取逻辑磁盘对应的物理磁盘的设备ID。
S509,通过设备ID从RAID卡中获取物理磁盘所在的槽位信息。
S510,校正获取的槽位信息与实际物理槽位的偏差以获得目标磁盘的槽位信息。
获得目标磁盘的实际槽位信息之后进入步骤S511。
S511,输出目标磁盘的槽位或者输出出错信息。
S512,获取目标磁盘及sda的连接方式和物理ID。
S513,判断目标磁盘是否为sda。
如果是,进入步骤S514,如果否,进入步骤S515。
S514,目标磁盘的槽位号为1。
如果目标磁盘为sda,设定sda的槽位号为1,则目标磁盘的槽位号即为1,进入步骤S511。
S515,根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。
在本发明的一个实施例中,可以通过目标磁盘和sda的连接方式,确定整个服务器内磁盘的连接方式,从而得到每个磁盘控制器下的磁盘在整个服务器磁盘插槽的位置信息,进而根据此插槽的位置信息修正获取的物理ID信息,即可获得准确的目标磁盘的槽位信息,即准确地定位目标磁盘。在确定目标磁盘的槽位信息后,进入步骤S511。
综上所述,根据本发明实施例的磁盘定位方法,通过Sysfs接口判断目标磁盘接口的连接方式,进而根据不同的连接方式确定目标磁盘的槽位信息,从而实现目标磁盘的准确定位,可以避免换错磁盘,降低更换磁盘时的出错率,可以提高线上服务的稳定性。此外,该磁盘定位方法步骤简单,容易实现。
下面参照附图描述根据本发明实施例提出的磁盘定位装置。
如图6所示,本发明实施例的磁盘定位装置包括:检测模块601和获取模块602。其中,检测模块601通过Sysfs接口检测目标磁盘的接口的连接方式。获取模块602根据目标磁盘的接口的连接方式获得目标磁盘的槽位信息。在本发明的一个实施例中,在检测模块601获得目标磁盘的名称后,可以通过Sysfs接口检测目标磁盘的接口的连接方式,例如,检测模块601检测目标磁盘的接口的连接方式为直连或者通过RAID卡连接。检测模块601检测获得目标磁盘的连接方式之后,获取模块602根据其不同的连接方式获得目标磁盘的槽位信息,进而确定目标磁盘的位置。
进一步地,如图7所示,在本发明的一个实施例中,上述磁盘定位装置还包括:判定模块701和挂载模块702。其中,判定模块701用于判断目标磁盘是否挂载Sysfs接口。挂载模块702用于在判定模块701判断目标磁盘未挂载Sysfs接口时将Sysfs接口进行挂载,即将Sysfs挂载在系统的/sys目录下,从而提供给程序访问磁盘的接口。目标磁盘在/sys/device/下面具有相应的目录,可以通过对目录中的相关文件的访问从而达到访问磁盘的作用。所以,本发明的一个实施例中,在检测模块601通过Sysfs接口检测目标磁盘的接口的连接方式之前,还需要通过判定模块701判断目标磁盘是否挂载Sysfs接口,如果判定模块701判断目标磁盘已经挂载Sysfs,则可以通过检测模块601检测目标磁盘的接口的连接方式,如果判定模块701判断目标磁盘未挂载Sysfs接口,则由挂载模块702将Sysfs挂载在系统的/sys目录下。挂载Sysfs接口之后,通过检测模块601检测目标磁盘的接口的连接方式。
在本发明的一个实施例中,在检测模块601检测到目标磁盘的接口的连接方式为目标磁盘与磁盘阵列RAID卡相连时,获取模块602根据RAID卡获得目标磁盘对应的槽位信息。具体地,Linux内核提供了用户可以访问设备的Sysfs接口例如/sys/device/。获取模块602通过该Sysfs接口可以获得对应的逻辑磁盘的目标ID(Target ID),通过对该ID查询访问,可以获得对应的逻辑磁盘的各种参数信息,包括其上面的物理磁盘的列表及物理磁盘的ID信息。然后再使用物理磁盘对应的ID对物理列表进行查询工作,以获取具体磁盘的信息。即言,在本发明的一个实施例中,在检测模块601检测到目标磁盘的接口的连接方式为目标磁盘与磁盘阵列RAID卡相连时,获取模块602通过Sysfs接口获得逻辑磁盘的目标ID,其中,逻辑磁盘的目标ID可以唯一对应于RAID卡所维护的逻辑磁盘信息。获得模块602根据逻辑磁盘的目标ID获得RAID卡所维护的逻辑磁盘信息,逻辑磁盘的目标ID与逻辑磁盘信息是一一对应的。获取模块602通过RAID卡根据逻辑磁盘信息获得RAID卡下目标磁盘所对应的槽位信息,即定位目标磁盘。换言之,获得模块602获得逻辑磁盘对应的逻辑磁盘信息之后,通过RAID卡根据逻辑磁盘信息获得所对应的物理磁盘信息,该物理磁盘信息包括物理磁盘与RAID卡连接对应的RAID卡槽位ID,该RAID卡槽位ID与物理磁盘槽位一一对应,所以进过映射后,获得模块602可以获得RAID卡下磁盘的物理槽位信息,即言,通过该物理磁盘信息定位槽位信息,从而定位目标磁盘。
在本发明的另一个实施例中,在检测模块601检测目标磁盘的接口的连接方式为直连方式时,获取模块602根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。具体地,在检测模块601检测目标磁盘的接口的连接方式为直连方式时,例如与HBA卡相连或者与SATA接口相连,其中,直连连接方式主要有三种:1、由主板SATA接口引导,外加一块HBA卡;2、由HBA卡引导,辅助主板SATA接口;3、采用两块HBA卡。另外,获取模块602获得目标磁盘与sda之间的关系,进而根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。具体地,获取模块602获得目标磁盘和sda的信息例如连接方式、物理ID,其中物理ID唯一标示磁盘在其磁盘控制器下的物理顺序。判定模块601通过比较后,判断目标磁盘是否为sda,sda可以为磁盘控制器下的第一块磁盘,在判定模块601判断目标磁盘为sda时,获取模块602将目标磁盘的槽位信息设置为1。
在本发明的另一个实施例中,在判定模块601判定目标磁盘不为sda时,获取模块602根据目标磁盘与sda之间的关系获得目标磁盘对应的槽位信息。即言,获取模块602可以根据获取的目标磁盘和sda的信息例如连接方式、物理ID,获取模块602根据目标磁盘和sda的连接方式,确定整个服务器内磁盘的连接方式,从而得到每个磁盘控制器下的磁盘在整个服务器磁盘插槽的位置信息,进而根据此插槽的位置信息修正获取的物理ID信息,即可获得准确的目标磁盘的槽位信息,即准确地定位目标磁盘。具体地,获取模块602可以从Sysfs接口例如/sys/block/sda/中获得各个磁盘的连接信息,如PCI总线地址信息,host信息,device(设备)信息,phyID(物理地址)的信息等。如果目标磁盘和sda磁盘在同一个host上时,则其phyID应该是从sda向后依次按槽位的顺序递增的。得到sda的phyID信息后,即可以根据目标磁盘和sda磁盘的phyID的差值的大小进行排序,差值越小则槽位号越靠前,由此推断出目标磁盘的槽位号,从而定位目标磁盘。
综上所述,根据本发明实施例的磁盘定位装置,通过检测模块通过Sysfs接口检测目标磁盘的接口的连接方式,进而通过获取模块根据不同连接方式获得目标磁盘的槽位信息,从而实现目标磁盘的准确定位,可以避免换错磁盘,降低更换磁盘时的出错率,可以提高线上服务的稳定性。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (8)

1.一种磁盘定位方法,其特征在于,包括以下步骤:
通过Sysfs接口检测目标磁盘的接口的连接方式;
当所述目标磁盘的接口的连接方式为直连方式时,根据所述目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息;或者
当所述目标磁盘的接口的连接方式为所述目标磁盘与磁盘阵列RAID卡相连时,根据所述RAID卡获得所述目标磁盘对应的槽位信息。
2.如权利要求1所述的磁盘定位方法,其特征在于,还包括:
判断所述目标磁盘是否挂载所述Sysfs接口;以及
如果判断所述目标磁盘未挂载所述Sysfs接口,则将所述Sysfs接口进行挂载。
3.如权利要求1所述的磁盘定位方法,其特征在于,所述根据目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息进一步包括:
判断所述目标磁盘是否为sda;
如果所述目标磁盘为sda,则将所述目标磁盘的槽位信息设置为1;
如果所述目标磁盘不为sda,则根据所述目标磁盘与所述sda之间的关系获得目标磁盘对应的槽位信息。
4.如权利要求1所述的磁盘定位方法,其特征在于,所述根据所述RAID卡获得所述目标磁盘对应的槽位信息进一步包括:
通过所述Sysfs接口获得逻辑磁盘的目标ID;
根据所述目标ID获得所述RAID卡所维护的逻辑磁盘信息;
通过所述RAID卡根据所述逻辑磁盘信息获得所述RAID下目标磁盘所对应的槽位信息。
5.一种磁盘定位装置,其特征在于,包括:
检测模块,所述检测模块通过Sysfs接口检测目标磁盘的接口的连接方式;
获取模块,在所述检测模块检测所述目标磁盘的接口的连接方式为直连方式时,所述获取模块根据所述目标磁盘与sda之间的关系获得所述目标磁盘对应的槽位信息;或者
所述获取模块,还用于在所述检测模块检测到所述目标磁盘的接口的连接方式为所述目标磁盘与磁盘阵列RAID卡相连时,所述获取模块根据所述RAID卡获得所述目标磁盘对应的槽位信息。
6.如权利要求5所述的磁盘定位装置,其特征在于,还包括:
判定模块,所述判定模块用于判断所述目标磁盘是否挂载所述Sysfs接口;
挂载模块,所述挂载模块用于在所述判定模块判断所述目标磁盘未挂载所述Sysfs接口时将所述Sysfs接口进行挂载。
7.如权利要求5所述的磁盘定位装置,其特征在于,还包括:
判断模块,用于判断所述目标磁盘是否为sda;
所述获取模块用于在所述判断模块判定所述目标磁盘为sda时,将所述目标磁盘的槽位信息设置为1;
在所述判断模块判定所述目标磁盘不为sda时,所述获取模块还用于根据所述目标磁盘与所述sda之间的关系获得目标磁盘对应的槽位信息。
8.如权利要求5所述的磁盘定位装置,其特征在于,所述获取模块还用于通过所述Sysfs接口获得逻辑磁盘的目标ID,并根据所述逻辑磁盘的目标ID获得所述RAID卡所维护的逻辑磁盘信息,以及通过所述RAID卡根据所述逻辑磁盘信息获得所述RAID下目标磁盘所对应的槽位信息。
CN201310178074.XA 2013-05-14 2013-05-14 磁盘定位方法和定位装置 Active CN103218180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310178074.XA CN103218180B (zh) 2013-05-14 2013-05-14 磁盘定位方法和定位装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310178074.XA CN103218180B (zh) 2013-05-14 2013-05-14 磁盘定位方法和定位装置

Publications (2)

Publication Number Publication Date
CN103218180A CN103218180A (zh) 2013-07-24
CN103218180B true CN103218180B (zh) 2017-03-15

Family

ID=48816034

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310178074.XA Active CN103218180B (zh) 2013-05-14 2013-05-14 磁盘定位方法和定位装置

Country Status (1)

Country Link
CN (1) CN103218180B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4020212A4 (en) * 2019-08-27 2022-10-26 ZTE Corporation FAILED DISC LOCATION METHOD AND DEVICE

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461541B (zh) * 2014-12-10 2018-01-30 上海爱数信息技术股份有限公司 一种实现设备适配的配置框架及其适配方法
CN104598856B (zh) * 2015-01-19 2018-11-13 浙江宇视科技有限公司 一种设备定位装置及定位方法
CN105373351A (zh) * 2015-11-30 2016-03-02 曙光信息产业股份有限公司 一种磁盘定位方法及装置
CN106354435B (zh) * 2016-08-31 2019-06-07 北京腾凌科技有限公司 Raid初始化的方法及装置
CN106843768B (zh) * 2017-01-25 2020-06-23 北京百度网讯科技有限公司 硬盘数据擦除方法和装置
CN107239231B (zh) * 2017-05-03 2020-12-04 深圳市同泰怡信息技术有限公司 一种固定磁盘槽位号和磁盘标识符映射关系的方法
CN107102867A (zh) * 2017-06-08 2017-08-29 山东超越数控电子有限公司 一种linux系统硬盘槽位识别方法
CN107402721A (zh) * 2017-06-30 2017-11-28 郑州云海信息技术有限公司 一种硬盘的控制方法、装置及服务器
CN108182136A (zh) * 2018-01-11 2018-06-19 郑州云海信息技术有限公司 一种点亮raid中磁盘定位灯的系统及方法
CN108681468A (zh) * 2018-05-21 2018-10-19 郑州云海信息技术有限公司 一种Linux系统磁盘设备绑定方法、装置及服务器
CN110515534A (zh) * 2018-05-22 2019-11-29 山东数盾信息科技有限公司 一种实现服务器物理盘位与系统盘符的转换方法
CN109324951A (zh) * 2018-09-18 2019-02-12 郑州云海信息技术有限公司 服务器中硬盘信息的获取方法和装置
CN109445866A (zh) * 2018-11-09 2019-03-08 郑州云海信息技术有限公司 一种硬盘盘符的确定方法、装置及服务器
CN109542708B (zh) * 2018-12-04 2022-08-02 浪潮电子信息产业股份有限公司 一种记录背板物理槽位和系统盘符对应关系的方法及组件
CN110989926B (zh) * 2019-11-11 2024-02-13 北京字节跳动网络技术有限公司 故障磁盘槽位定位方法、装置及电子设备
CN111813588B (zh) * 2020-06-01 2024-03-19 北京百卓网络技术有限公司 一种计算机硬盘故障定位方法、装置、设备及存储介质
CN114721603B (zh) * 2022-06-10 2022-08-26 浙江豪联信息科技有限公司 避免磁盘漂移的电数据处理识别方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693160A (zh) * 2012-05-15 2012-09-26 浪潮电子信息产业股份有限公司 一种计算机系统动态资源重配置的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005208906A (ja) * 2004-01-22 2005-08-04 Fujitsu Ltd 制御装置
JP2005222429A (ja) * 2004-02-09 2005-08-18 Hitachi Ltd ディスクアレイ装置における異種ディスク装置の管理方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693160A (zh) * 2012-05-15 2012-09-26 浪潮电子信息产业股份有限公司 一种计算机系统动态资源重配置的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
在Suse10Sp2系统上通过sysfs查找热插拔scsi设备的槽位信息;feiliang1983;《blog.chinaunix.net/uid-8462735-id-1645689.html》;20110711;第1-34行 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4020212A4 (en) * 2019-08-27 2022-10-26 ZTE Corporation FAILED DISC LOCATION METHOD AND DEVICE

Also Published As

Publication number Publication date
CN103218180A (zh) 2013-07-24

Similar Documents

Publication Publication Date Title
CN103218180B (zh) 磁盘定位方法和定位装置
US6850997B1 (en) System, method, and program for determining the availability of paths to a device
CN100504772C (zh) 用于识别在计算机系统上运行的操作系统的方法和设备
US7689736B2 (en) Method and apparatus for a storage controller to dynamically determine the usage of onboard I/O ports
CN107346293B (zh) 动态重新配置系统的至少一外围总线交换器的方法及系统
US9367510B2 (en) Backplane controller for handling two SES sidebands using one SMBUS controller and handler controls blinking of LEDs of drives installed on backplane
US8751741B2 (en) Methods and structure for implementing logical device consistency in a clustered storage system
US8015353B2 (en) Method for automatic RAID configuration on data storage media
US8086896B2 (en) Dynamically tracking virtual logical storage units
US20140173156A1 (en) Cable adapter correlation in a cluster
US20090193158A1 (en) Storage system, device controller, and improper cable connection determination method
CN103329106A (zh) Alua首选项和状态转换的主机发现和处理
CN103116621B (zh) 检测计算机硬件温度的方法、系统及识别硬件型号的方法
CN102479163A (zh) 多硬盘自动识别系统及方法
CN104080054A (zh) 一种异常兴趣点的获取方法及装置
CN100421082C (zh) 自动复制功能选择的系统、设备和方法
US9690602B2 (en) Techniques for programming and verifying backplane controller chip firmware
US20120271983A1 (en) Computing device and data synchronization method
CN105468482A (zh) 一种硬盘盘位识别和故障诊断方法及其服务器设备
US7003617B2 (en) System and method for managing target resets
US9886335B2 (en) Techniques for validating functionality of backplane controller chips
US6748557B1 (en) System, method, and program for determining the availability of interfaces to a control unit
US11315226B2 (en) Intelligent cabling and connection validation
CN105912442B (zh) 具有温度管理功能的电子装置
CN104636279B (zh) 地址分配识别方法和地址分配识别电路

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant