linux查看磁盘对应槽位,一种linux系统硬盘槽位识别方法与流程

ade73cd4052f88554f4a907d87d7a8ec.gif

技术领域

本发明涉及计算机技术领域,尤具体地说是一种实用性强、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系统硬盘槽位识别方法的权利要求书的且任何所述技术领域的普通技术人员对其所做的适当变化或替换,皆应落入本发明的专利保护范围。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值