专利名称:一种实现高端磁盘阵列的磁盘定位方法及装置的制作方法
技术领域:
本发明涉及海量存储系统,尤其涉及海量存储系统实现高端磁盘阵列的磁盘定位方法及装置。
背景技术:
随着数字图书馆、电子商务以及多媒体传输等应用的不断发展,尤其是金融电信、 勘探勘测、生物工程、气象以及能源等海量数据业务的应用,数据从GB( = 1024MB), TB (= 1024GB)到PB(= 1024TB)量级海量急速增长。存储产品已不再是附属于服务器的辅助设备,而成为互联网中最主要的花费所在。海量存储已成为继计算机浪潮和互联网浪潮之后的第三次浪潮,磁盘阵列与网络存储成为先锋。对于在海量存储系统中使用的高端磁盘阵列,从磁盘种类和可用容量的角度来讲,高端磁盘阵列最少具有500个磁盘,容量为TB级,最多具有MOO个磁盘,容量为PB级。当前,针对海量存储系统数据量的急剧增长,需在系统的可扩展性方面进行较为详细的设计,包括磁盘快速定位功能,要求系统能够在很短的时间内从软件层次快速定位到磁盘所在位置,尤其是快速定位故障磁盘,这是提高海量存储系统可靠性的一个关键问题。而对于高端存储设备厂商,例如美国易安信(EMC)、3PAR等厂商,均未向用户披露如何快速、准确定位磁盘位置的技术方案,这无疑对用户使用和维护系统带来极大的不便和限制。
发明内容
本发明所要解决的技术问题是提供一种实现在高端磁盘阵列中磁盘定位方法及装置,能够迅速定位高端磁盘阵列中的磁盘。为了解决上述技术问题,本发明提供了一种实现高端磁盘阵列的磁盘定位方法, 包括根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址;根据获取的磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置。进一步地,所述协议为小型计算机系统接口 SCSI协议,根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址,具体包括根据磁盘的名称查询SCSI协议的0x83协议页信息,获取到该磁盘的串行连接 SCSI地址,即磁盘的SAS地址。进一步地,根据获取的磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置,具体包括查询高端磁盘阵列中所有的扩展器,并针对每一扩展器查询SCSI协议的OxA协议页,获取扩展器上所有磁盘的SAS地址和槽位信息;根据磁盘的SAS地址查询每一个扩展器中磁盘的SAS地址,确定磁盘对应的扩展器序号和槽位号。进一步地,该方法还包括通过SCSI协议找到磁盘的状态信息标志位,更改该标志位的状态信息以指示该磁盘的物理位置。进一步地,通过SCSI协议找到磁盘的状态信息标志位,更改该标志位的状态信息以指示该磁盘的物理位置,具体包括根据获取的磁盘对应的扩展器序号和槽位号查询SCSI协议0x2协议页相应的数组信息,根据所述磁盘的槽位号定位到数组信息中相应的磁盘的状态信息标志位;将标志位的状态信息更改为定位指示信息,将修改后的数组信息以发送命令形式写回所述扩展器。为了解决上述技术问题,本发明提供了一种实现高端磁盘阵列的磁盘定位装置, 包括依次连接的磁盘地址获取模块和磁盘物理位置确定模块,其中磁盘地址获取模块,用于在收到磁盘定位指令后,将根据磁盘的名称通过磁盘与操作系统之间的协议获取的磁盘的地址向磁盘物理位置确定模块输出;磁盘物理位置确定模块,用于根据磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置。进一步地,所述协议为小型计算机系统接口 SCSI协议;磁盘地址获取模块根据磁盘的名称查询SCSI协议的0x83协议页信息,获取到该磁盘的串行连接SCSI地址,即磁盘的SAS地址,并输出获取的磁盘的SAS地址。进一步地,磁盘物理位置确定模块查询高端磁盘阵列中所有的扩展器,并针对每一扩展器查询SCSI协议的OxA协议页,获取扩展器上所有磁盘的SAS地址和槽位信息;根据磁盘的SAS 地址查询每一扩展器中磁盘的SAS地址,确定该磁盘的对应的扩展器序号和槽位号。进一步地,还包括与磁盘物理位置确定模块连接的磁盘定位指示模块,其中磁盘物理位置确定模块将磁盘对应的扩展器序号和槽位号输出给磁盘定位指示模块;磁盘定位指示模块,用于根据磁盘对应的扩展器序号和槽位号通过SCSI协议找到磁盘的状态信息标志位,更改该标志位的状态信息以指示该磁盘的物理位置。进一步地,磁盘定位指示模块根据磁盘对应的扩展器序号和槽位号查询SCSI协议0x2协议页相应的数组信息,根据磁盘的槽位号定位到该数组信息中相应的磁盘的状态信息标志位,将标志位的状态信息更改为定位指示信息后输出。本发明利用磁盘与操作系统之间的协议标准及时获取磁盘位置等信息,并通过对磁盘状态信息修改来指示定位的磁盘,从而解决了高端磁盘阵列可靠应用的一个技术难题。
图1为本发明的实现高端磁盘阵列的磁盘定位方法实施例流程图;图2表示SCSI协议的0x2协议页上的磁盘状态信息;
图3为本发明的实现高端磁盘阵列的磁盘定位装置实施例结构框图。
具体实施例方式下面参照附图和优选实施例对本发明的技术方案进行详细地描述。以下例举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。如图1所示,是为本发明的实现高端磁盘阵列的磁盘定位方法实施例流程,包括如下步骤110 根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址;在高端磁盘阵列中,磁盘与操作系统之间遵循协议标准较为常见的是小型计算机系统接口 (SCSI, Small Computer System Interface)协议。譬如在发现高端磁盘阵列中的磁盘有异常出现时,可根据磁盘的名称查询该协议的0x83协议页信息可获取到磁盘的SAS Serial Attached SCSI,串行连接SCSI)地址和逻辑标识。120 根据磁盘的地址通过该协议查询磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置;首先查询磁盘阵列中所有的扩展器(expander),并针对每一 expander查询SCSI 协议的OxA协议页,获取expander上所有磁盘的SAS地址和槽位信息;根据获取的磁盘的SAS地址反查每一 expander中磁盘的SAS地址,确定该磁盘在该SAS域的物理位置,包括磁盘对应的expander序号和槽位号,分别以数字形式标识,其中磁盘的起始槽位号为0。130 通过协议找到磁盘的状态信息标志位,更改该标志位状态以指示磁盘的物理位置。根据获取的磁盘对应的expander序号和槽位号查询SCSI协议0x2协议页信息, 获取到相应的expander上所有磁盘的状态信息,该信息以16进制数据形式表示,如图2所
7J\ ο在0x2协议页的16进制信息组织成一个数组array。在该数组array中的十六进制数据中,从第13个数据开始为磁盘状态信息的起始位,从该起始位起每4个数据为一组 (例如05 00 00 00),代表一个磁盘的所有状态;例如,第13 16个数据代表槽位0上磁
盘的状态,第17 20个数据代表槽位1上磁盘的状态,......,第57 60个数据代表槽
位11上磁盘的状态。因此,假如要找到槽位η上的磁盘状态,可根据公式12+η*4+2(η为磁盘槽位号,以0为起始位置,代表第一个槽位,以此类推)进行定位。在上述每组的四个数据中,第一个数据为05时,表示相应槽位上有磁盘存在,而该数据为11时,表示相应槽位上没有磁盘存在;第三个数据代表指示磁盘的指示灯的状态信息标志位,当磁盘处在正常状态时,磁盘指示灯的状态信息标志位为“00”,标志指示灯为熄灭状态。在此,可通过修改该磁盘的状态信息标志位为非零值(定位指示信息)来使得标志指示灯发亮,即更改磁盘状态信息标志位以此指示定位到的磁盘。例如,当定位到槽位0上的磁盘时,将槽位号0代入公式12+0*4+2得到14,即定位到array [14],表示需要将第15个数据位的数据修改为非零值,譬如将“00”修改为“02”,然后将修改后的数组信息以发送命令形式写回expander,则会使得槽位0上的磁盘灯闪烁,
6用于指示定位到槽位0上的磁盘。本发明通过上述方法实施例在高端磁盘阵列中加入了针对磁盘设备的预警机制, 对于将要出现故障的磁盘可迅速定位其所在的物理位置,从而做到及时更换磁盘设备,由此可大大提高高端磁盘阵列系统的可靠性。本发明针对上述方法实施例,相应地还提供了实现高端磁盘阵列的磁盘定位装置实施例200,其结构如图3所示包括依次连接的磁盘地址获取模块210和磁盘物理位置确定模块220,其中磁盘地址获取模块210,用于在收到磁盘定位指令后,将根据磁盘的名称通过磁盘与操作系统之间的协议获取的该磁盘的地址向磁盘物理位置确定模块220输出;磁盘物理位置确定模块220,用于根据磁盘的地址通过该协议查询磁盘所在扩展器(expander)内磁盘的地址,由此确定该磁盘的物理位置。磁盘地址获取模块210根据磁盘的名称查询SCSI协议的0x83协议页信息获取到磁盘的SAS地址,并输出该磁盘的SAS地址;磁盘物理位置确定模块220查询磁盘阵列中所有的expander,并针对每一 expander查询SCSI协议的OxA协议页,获取expander上所有磁盘的SAS地址和槽位信息; 然后根据磁盘的SAS地址反查每一 expander中磁盘的SAS地址,确定相应磁盘的对应的 expander序号和槽位号。图3所示的装置实施例200还包括与磁盘物理位置确定模块220连接的磁盘定位指示模块230,其中磁盘物理位置确定模块220将确定的磁盘对应的expander序号和槽位号输出给磁盘定位指示模块230 ;磁盘定位指示模块230,用于根据磁盘对应的expander序号和槽位号查询SCSI协议0x2协议页的数组信息,定位到该数组信息中相应磁盘的状态信息标志位,并将该标志位的状态信息修改为定位指示信息后输出。以上说明仅为本发明较佳的具体实施方式
,但本发明的保护范围并不局限于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权力要求书的保护范围为准。
权利要求
1.一种实现高端磁盘阵列的磁盘定位方法,包括根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址;根据获取的所述磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置。
2.按照权利要求1所述的方法,其特征在于,所述协议为小型计算机系统接口SCSI协议,所述根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址,具体包括根据所述磁盘的名称查询所述SCSI协议的0x83协议页信息,获取到该磁盘的串行连接SCSI地址,即所述磁盘的SAS地址。
3.按照权利要求2所述的方法,其特征在于,根据获取的所述磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置,具体包括查询所述高端磁盘阵列中所有的扩展器,并针对每一扩展器查询所述SCSI协议的OxA 协议页,获取所述扩展器上所有磁盘的SAS地址和槽位信息;根据所述磁盘的SAS地址查询每一扩展器中磁盘的SAS地址,确定所述磁盘对应的扩展器序号和槽位号。
4.按照权利要求3所述的方法,其特征在于,还包括通过所述SCSI协议找到所述磁盘的状态信息标志位,更改该标志位的状态信息以指示所述磁盘的物理位置。
5.按照权利要求4所述的方法,其特征在于,所述通过所述SCSI协议找到所述磁盘的状态信息标志位,更改该标志位的状态信息以指示所述磁盘的物理位置,具体包括根据获取的所述磁盘对应的扩展器序号和槽位号查询所述SCSI协议0x2协议页相应的数组信息,根据所述磁盘的槽位号定位到所述数组信息中相应的磁盘的状态信息标志位;将所述标志位的状态信息更改为定位指示信息,将修改后的所述数组信息以发送命令形式写回所述扩展器。
6.一种实现高端磁盘阵列的磁盘定位装置,其特征在于,包括依次连接的磁盘地址获取模块和磁盘物理位置确定模块,其中磁盘地址获取模块,用于在收到磁盘定位指令后,将根据所述磁盘的名称通过磁盘与操作系统之间的协议获取的所述磁盘的地址向磁盘物理位置确定模块输出;磁盘物理位置确定模块,用于根据所述磁盘的地址通过所述协议查询所述磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置。
7.按照权利要求6所述的磁盘定位装置,其特征在于,所述协议为小型计算机系统接口 SCSI协议;所述磁盘地址获取模块根据所述磁盘的名称查询所述SCSI协议的0x83协议页信息, 获取到该磁盘的串行连接SCSI地址,即所述磁盘的SAS地址,并输出获取的所述磁盘的SAS 地址。
8.按照权利要求7所述的磁盘定位装置,其特征在于,所述磁盘物理位置确定模块查询所述高端磁盘阵列中所有的扩展器,并针对每一扩展器查询所述SCSI协议的OxA协议页,获取所述扩展器上所有磁盘的SAS地址和槽位信息; 根据所述磁盘的SAS地址查询每一扩展器中磁盘的SAS地址,确定所述磁盘的对应的扩展器序号和槽位号。
9.按照权利要求8所述的磁盘定位装置,其特征在于,还包括与所述磁盘物理位置确定模块连接的磁盘定位指示模块,其中所述磁盘物理位置确定模块将所述磁盘对应的扩展器序号和槽位号输出给磁盘定位指示模块;磁盘定位指示模块,用于根据所述磁盘对应的扩展器序号和槽位号通过所述SCSI协议找到所述磁盘的状态信息标志位,更改该标志位的状态信息以指示所述磁盘的物理位置。
10.按照权利要求9所述的磁盘定位装置,其特征在于,磁盘定位指示模块根据所述磁盘对应的扩展器序号和槽位号查询所述SCSI协议0x2 协议页相应的数组信息,根据所述磁盘的槽位号定位到所述数组信息中相应的磁盘的状态信息标志位,将所述标志位的状态信息更改为定位指示信息后输出。
全文摘要
本发明披露了一种实现高端磁盘阵列的磁盘定位方法及装置,其中方法包括根据磁盘的名称通过磁盘与操作系统之间的协议获取该磁盘的地址;根据获取的磁盘的地址通过所述协议查询该磁盘所在扩展器内磁盘的地址,由此确定该磁盘的物理位置。本发明利用磁盘与操作系统之间的协议标准及时获取磁盘位置等信息,并通过对磁盘状态信息修改来指示定位的磁盘,从而解决了高端磁盘阵列可靠应用的一个技术难题。
文档编号G06F3/06GK102207829SQ201110074088
公开日2011年10月5日 申请日期2011年3月25日 优先权日2011年3月25日
发明者张宇, 张延枫 申请人:浪潮(北京)电子信息产业有限公司