一种linux系统硬盘槽位识别方法技术方案

技术编号:16101612 阅读:54 留言:0更新日期:2017-08-29 22:26
本发明专利技术公开了一种linux系统硬盘槽位识别方法,其实现过程为:首先配置硬件部分和软件部分,其中硬件部分包括SAN存储,该SAN存储通过配置若干槽位来连接硬盘,并在软件系统中识别每个硬盘;软件部分基于linux内核,并配置用户层和驱动层,驱动层用于槽位识别,用户层则用于写入硬盘设备节点的主次设备号;通过应用层直接调用驱动层,读取系统中所有磁盘的槽位信息。该一种linux系统硬盘槽位识别方法与现有技术相比,通过在linux内核中加入专门查询硬盘槽位的驱动,实现硬盘槽位的实时监控,使得在linux系统下可以读取磁盘的槽位信息,解决SAN存储无法直接磁盘槽位问题,实用性强,易于推广。

【技术实现步骤摘要】
一种linux系统硬盘槽位识别方法
本专利技术涉及计算机
,尤具体地说是一种实用性强、linux系统硬盘槽位识别方法。
技术介绍
近年来,随着技术的迅速发展,linux系统的应用也越来越广泛,特别对于国产处理器,linux系统已经是主流操作系统,基于linux系统的存储产品也越来越多。SAN存储分为前端和后端,前端是提供存储服务,后端是实际数据存储的位置,一般是通过SAS卡连接JBOD实现,并且磁盘是通过RAID进行管理,为了方便管理和更换,需要知道每一个磁盘的槽位。现在linux系统无法直接读取磁盘槽位,导致存储在更换硬盘时无法确认哪块硬盘可更换,还有一点就是进行管理时,比如创建RAID,无法通过软件确认磁盘的位置。基于此,本专利技术提供一种linux系统硬盘槽位识别方法。本专利技术在linux内核中加入专门查询硬盘槽位的驱动,实现硬盘槽位的实时监控。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种实用性强、linux系统硬盘槽位识别方法。一种linux系统硬盘槽位识别方法,其实现过程为:首先配置硬件部分和软件部分,其中硬件部分包括SAN存储,该SAN存储通过配置若干槽位来连接硬盘,并在软件系统中识别每个硬盘;软件部分基于linux内核,并配置用户层和驱动层,驱动层用于槽位识别,用户层则用于写入硬盘设备节点的主次设备号;通过应用层直接调用驱动层,读取系统中所有磁盘的槽位信息。所述SAN存储的后端通过SAS控制器与JBOD连接,JBOD有若干个槽位用于插入SAS或SATA硬盘,在软件系统中识别每个硬盘时,对应每个硬盘创建一个块设备节点。所述驱动层通过用户层写入主次设备号,该驱动层通过硬盘的主次设备号查询相应物理槽位,然后确定对应的WWID号,该物理槽位和WWID号均由驱动层从内核中读取,然后返回给用户层物理槽位和WWID号供用户查看。在linux系统中硬盘作为scsi设备进行管理,相对应的,其物理槽位和WWID号在scsi驱动中获得。所述驱动层进行硬盘槽位识别通过dmesg命令查找出物理槽位和WWID号所在的驱动文件,并分析驱动文件,具体为:进行槽位号读取,首先查找硬盘控制器结构体的指针,获得所有磁盘信息,并记录到sas_device结构体中,此结构体保存槽位号和WWID号,至此所有信息都可获取;然后通过主次设备号,确定相应的scsi设备信息,通过匹配就可以查找出对应的槽位号和WWID号。本专利技术的一种linux系统硬盘槽位识别方法,具有以下优点:本专利技术的一种linux系统硬盘槽位识别方法,通过在linux内核中加入专门查询硬盘槽位的驱动,实现硬盘槽位的实时监控,使得在linux系统下可以读取磁盘的槽位信息,解决SAN存储无法直接磁盘槽位问题,实用性强,易于推广。附图说明附图1为本专利技术SAN存储后端结构图。附图2为驱动实现原理图。附图3为读取物理槽位和WWID号流程图。具体实施方式下面结合附图和具体实施例对本专利技术作进一步说明。如附图1、图2、图3所示,本专利技术的主要目的是实现linux系统中可以实时查看磁盘槽位,基于linux操作系统,提出了一种linux系统硬盘槽位识别方法。本专利技术基于linux内核,加入槽位识别字符驱动,在应用层可以直接调用此驱动,读取本系统中所有磁盘的槽位信息。其实现过程为:首先配置硬件部分和软件部分,其中硬件部分包括SAN存储,该SAN存储通过配置若干槽位来连接硬盘,并在软件系统中识别每个硬盘;软件部分基于linux内核,并配置用户层和驱动层,驱动层用于槽位识别,用户层则用于写入硬盘设备节点的主次设备号;通过应用层直接调用驱动层,读取系统中所有磁盘的槽位信息。本专利技术基于linux操作系统,但实现方法不仅限于此,实现方法如下:SAN存储后端由SAS卡与JBOD连接,JBOD有多个槽位可以插入SAS或SATA硬盘,在系统中可以识别每个硬盘,并创建一个块设备节点,但是没有直接方法读取每个硬盘的槽位号。为了解决上述问题,在内核中加入字符设备驱动,实现硬盘设备节点--物理槽位--WWID号三者之间的对应关系,用户层写入硬盘设备节点的主次设备号,然后驱动从内核中读取相应的物理槽位和WWID号,用户读取时直接返回物理槽位和WWID号。在linux系统中硬盘作为scsi设备进行管理,相对应的,其物理槽位和WWID号在scsi驱动中获得。所述驱动层进行硬盘槽位识别通过dmesg命令查找出物理槽位和WWID号所在的驱动文件,并分析驱动文件,具体为:进行槽位号读取,首先查找硬盘控制器结构体的指针,获得所有磁盘信息,并记录到sas_device结构体中,此结构体保存槽位号和WWID号,至此所有信息都可获取;然后通过主次设备号,确定相应的scsi设备信息,通过匹配就可以查找出对应的槽位号和WWID号。本专利技术以mpt2sas为例进行说明。通过dmesg命令可以查找出物理槽位和WWID号所在的驱动文件,分析驱动文件。要实现槽位号读取,首先需要查找MPT2SAS_ADAPTER结构体的指针,此结构体中记录所有SAS控制器的所有信息。再通过MPT2SAS_ADAPTER获得所有磁盘信息,并记录到sas_device结构体中,此结构体保存槽位号和WWID号,至此所有信息都可获取。然后通过主次设备号,确定相应的scsi设备信息,通过匹配就可以查找出对应的槽位号和WWID号。上述具体实施方式仅是本专利技术的具体个案,本专利技术的专利保护范围包括但不限于上述具体实施方式,任何符合本专利技术的一种linux系统硬盘槽位识别方法的权利要求书的且任何所述
的普通技术人员对其所做的适当变化或替换,皆应落入本专利技术的专利保护范围。本文档来自技高网
...
一种linux系统硬盘槽位识别方法

【技术保护点】
一种linux系统硬盘槽位识别方法,其特征在于,其实现过程为:首先配置硬件部分和软件部分,其中硬件部分包括SAN存储,该SAN存储通过配置若干槽位来连接硬盘,并在软件系统中识别每个硬盘;软件部分基于linux内核,并配置用户层和驱动层,驱动层用于槽位识别,用户层则用于写入硬盘设备节点的主次设备号;通过应用层直接调用驱动层,读取系统中所有磁盘的槽位信息。

【技术特征摘要】
1.一种linux系统硬盘槽位识别方法,其特征在于,其实现过程为:首先配置硬件部分和软件部分,其中硬件部分包括SAN存储,该SAN存储通过配置若干槽位来连接硬盘,并在软件系统中识别每个硬盘;软件部分基于linux内核,并配置用户层和驱动层,驱动层用于槽位识别,用户层则用于写入硬盘设备节点的主次设备号;通过应用层直接调用驱动层,读取系统中所有磁盘的槽位信息。2.根据权利要求1所述的一种linux系统硬盘槽位识别方法,其特征在于,所述SAN存储的后端通过SAS控制器与JBOD连接,JBOD有若干个槽位用于插入SAS或SATA硬盘,在软件系统中识别每个硬盘时,对应每个硬盘创建一个块设备节点。3.根据权利要求1所述的一种linux系统硬盘槽位识别方法,其特征在于,所述驱动层通过用户层写入主次设备号,该驱动层通过硬盘的主次设备号查询相应...

【专利技术属性】
技术研发人员:王则陆吴登勇孙超
申请(专利权)人:山东超越数控电子有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1