本發(fā)明涉及計(jì)算機(jī)信息存儲(chǔ)技術(shù)領(lǐng)域,具體涉及一種雙控磁盤(pán)陣列的磁盤(pán)接入方法。
背景技術(shù):
隨著信息爆炸式的增長(zhǎng)與信息系統(tǒng)的普及,人們對(duì)存儲(chǔ)設(shè)備的需求越來(lái)越高,大致可分為三個(gè)階段:第一階段,存儲(chǔ)容量、存儲(chǔ)性能需求階段,這一階段,主要是由于信息時(shí)代突如其來(lái)信息總量的快速增長(zhǎng),使如何擴(kuò)大存儲(chǔ)空間、如何提高存儲(chǔ)速率成為研究重點(diǎn),于是大容量、高性能的專(zhuān)用存儲(chǔ)設(shè)備—磁盤(pán)陣列得到快速發(fā)展并廣泛推廣應(yīng)用;第二階段,高可靠需求階段,隨著技術(shù)的進(jìn)步,磁盤(pán)陣列的容量和性能都已經(jīng)表現(xiàn)得十分出色,為了保證業(yè)務(wù)的不間斷運(yùn)行,提高存儲(chǔ)設(shè)備可靠性成為主要研究方向,雙控磁盤(pán)陣列等通過(guò)冗余手段提高設(shè)備可靠性性的存儲(chǔ)設(shè)備逐漸普及;第三階段,安全性需求階段,隨著數(shù)據(jù)統(tǒng)計(jì)挖掘分析能力的增強(qiáng),數(shù)據(jù)與財(cái)富已密不可分,各廠商需保護(hù)自身數(shù)據(jù)以利于在競(jìng)爭(zhēng)中占據(jù)有利的位置,如何提高存儲(chǔ)設(shè)備的安全性成為了亟待解決的問(wèn)題。目前,存儲(chǔ)設(shè)備的發(fā)展正處于第三階段:安全性需求階段。提高存儲(chǔ)設(shè)備安全性有很多手段,包括認(rèn)證、加密、磁盤(pán)接入管理等多種方式。磁盤(pán)接入管理雖然不是最普遍的提高存儲(chǔ)設(shè)備安全性的手段,但是它通過(guò)對(duì)磁盤(pán)的授權(quán)接入與磁盤(pán)的非授權(quán)隔離措施,能有效地阻止非法磁盤(pán)接入磁盤(pán)陣列然后通過(guò)拷貝、復(fù)制等其他特殊手段來(lái)竊取用戶(hù)數(shù)據(jù),成為了最直接的提高數(shù)據(jù)安全性手段。
技術(shù)實(shí)現(xiàn)要素:
(一)要解決的技術(shù)問(wèn)題
本發(fā)明要解決的技術(shù)問(wèn)題是:如何設(shè)計(jì)一種雙控磁盤(pán)陣列磁盤(pán)接入方法,有效的進(jìn)行磁盤(pán)接入管理并保證上層應(yīng)用存儲(chǔ)資源的一致性,提高雙控磁盤(pán)陣列的安全性。
(二)技術(shù)方案
為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種雙控磁盤(pán)陣列的磁盤(pán)接入方法,包括以下步驟:
在開(kāi)機(jī)過(guò)程中,雙控磁盤(pán)陣列的主、備控制器的操作系統(tǒng)內(nèi)核分別掃描所有的磁盤(pán)設(shè)備,包括已授權(quán)磁盤(pán)設(shè)備7和非授權(quán)磁盤(pán)8,主、備控制器的操作系統(tǒng)自帶的udev根據(jù)已定義的規(guī)則文件,對(duì)每個(gè)磁盤(pán)設(shè)備實(shí)施開(kāi)機(jī)預(yù)處理:首先獲取當(dāng)前磁盤(pán)設(shè)備的信息,包括:磁盤(pán)序列號(hào)、磁盤(pán)內(nèi)部接口信息、磁盤(pán)槽位號(hào)和磁盤(pán)塊設(shè)備號(hào),并將信息插入磁盤(pán)授權(quán)信息表和磁盤(pán)內(nèi)部接口信息表,當(dāng)磁盤(pán)授權(quán)信息表中有該磁盤(pán)序列號(hào)對(duì)應(yīng)的相關(guān)信息時(shí),保留原來(lái)信息,不執(zhí)行插入,否則,以默認(rèn)該磁盤(pán)設(shè)備為非授權(quán)的設(shè)置插入記錄,而對(duì)于磁盤(pán)內(nèi)部接口信息表,不管其是否已經(jīng)存在該磁盤(pán)序列號(hào)對(duì)應(yīng)的相關(guān)信息,都需要插入,并記錄新的內(nèi)部接口信息、磁盤(pán)塊設(shè)備號(hào)和磁盤(pán)槽位號(hào);
開(kāi)機(jī)后,雙控磁盤(pán)陣列的主、備控制器的操作系統(tǒng)內(nèi)核掃描所有已接入磁盤(pán),包括已授權(quán)磁盤(pán)7和非授權(quán)磁盤(pán)8,讀取設(shè)備序列號(hào),將其與磁盤(pán)授權(quán)信息表比對(duì),查看授權(quán)信息,如果是授權(quán)的,則不處理,否則,通過(guò)磁盤(pán)內(nèi)部接口信息表查詢(xún)其內(nèi)部接口信息,調(diào)用系統(tǒng)命令,從操作系統(tǒng)層移除該磁盤(pán)進(jìn)行隔離,并刪除該設(shè)備節(jié)點(diǎn);
當(dāng)本地的主控制器1或者備控制器2接收到用戶(hù)指令,首先在本地執(zhí)行用戶(hù)指令,通過(guò)磁盤(pán)內(nèi)部接口信息表獲取其內(nèi)部接口信息,調(diào)用系統(tǒng)命令,如果是磁盤(pán)授權(quán)指令則執(zhí)行磁盤(pán)接入命令,否則執(zhí)行磁盤(pán)隔離命令,并更新磁盤(pán)授權(quán)信息表,然后將指令發(fā)送到對(duì)端的備控制器2或者主控制器1,對(duì)端備控制器2或者主控制器1也執(zhí)行相同的操作,并將結(jié)果反饋給本地的主控制器1或者備控制器2,對(duì)端備控制器2或者主控制器1執(zhí)行成功則本地的主控制器1或者備控制器2返回成功消息,否則本地的主控制器1或者備控制器2執(zhí)行回滾操作并返回失敗消息。
優(yōu)選地,在整個(gè)接入過(guò)程中,主控制器1、備控制器2后臺(tái)運(yùn)行監(jiān)控維護(hù)程序,周期性地將備控制器2的信息與主控制器1的信息同步。
優(yōu)選地,所述信息同步的過(guò)程為:
讀取主控制器1的磁盤(pán)授權(quán)信息表,將該表信息格式化并發(fā)送至備控制器端2;
備控制器2讀取來(lái)自主控制器1的磁盤(pán)授權(quán)信息表,分析磁盤(pán)授權(quán)信息表并與本地磁盤(pán)授權(quán)信息表進(jìn)行對(duì)比;
當(dāng)發(fā)現(xiàn)備控制器2磁盤(pán)未接入而主控制器1磁盤(pán)已接入時(shí),備控制器2對(duì)未接入的不一致的磁盤(pán)逐一執(zhí)行磁盤(pán)接入操作,并修改本地磁盤(pán)授權(quán)信息表;
當(dāng)備控制器2磁盤(pán)已接入而主控制器1磁盤(pán)未接入時(shí),備控制器2對(duì)已接入的不一致的磁盤(pán)執(zhí)行磁盤(pán)移除操作,并修改本地磁盤(pán)授權(quán)信息表;
如果備控制器2執(zhí)行磁盤(pán)接入操作或磁盤(pán)移除操作成功則返回成功消息;否則,記錄操作失敗的磁盤(pán),將相應(yīng)磁盤(pán)信息發(fā)送至主控制器1,主控制器1將根據(jù)該磁盤(pán)信息對(duì)上層用戶(hù)發(fā)出警告,并提示其人工干預(yù)操作。
優(yōu)選地,所述雙控磁盤(pán)陣列中,主控制器1與備控制器2之間通過(guò)心跳鏈路3和數(shù)據(jù)鏈路4分別連接。
優(yōu)選地,所述主控制器1通過(guò)共享數(shù)據(jù)鏈路5與已授權(quán)磁盤(pán)7和非授權(quán)磁盤(pán)8連接,所述備控制器2也通過(guò)共享數(shù)據(jù)鏈路5與已授權(quán)磁盤(pán)7和非授權(quán)磁盤(pán)8連接。
(三)有益效果
本發(fā)明從操作系統(tǒng)層控制磁盤(pán)的插入與隔離,保證了接入狀態(tài)與上層存儲(chǔ)應(yīng)用的可用狀態(tài)的一致性,提高了雙控磁盤(pán)陣列的安全性,避免了磁盤(pán)對(duì)上層應(yīng)用的可用管理,減少了系統(tǒng)的復(fù)雜度和數(shù)據(jù)的準(zhǔn)確性;還利用雙控磁盤(pán)盤(pán)陣列兩臺(tái)控制器的主備角色保持接入信息與接入狀態(tài)的一致性;還通過(guò)后臺(tái)監(jiān)控管理程序定期維護(hù)兩臺(tái)控制器接入信息與接入狀態(tài)的實(shí)時(shí)一致。
附圖說(shuō)明
圖1為本發(fā)明雙控磁盤(pán)陣列的磁盤(pán)接入方法硬件架構(gòu)圖。
其中,
1主控制器2備控制器
3心跳鏈路4數(shù)據(jù)鏈路
5共享數(shù)據(jù)鏈路6共享存儲(chǔ)單元
7已授權(quán)磁盤(pán)8未授權(quán)磁盤(pán)
具體實(shí)施方式
為使本發(fā)明的目的、內(nèi)容、和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和實(shí)施例,對(duì)本發(fā)明的具體實(shí)施方式作進(jìn)一步詳細(xì)描述。
本發(fā)明的雙控磁盤(pán)陣列的磁盤(pán)接入方法所需硬件平臺(tái)為雙控磁盤(pán)陣列,該雙控磁盤(pán)陣列由兩個(gè)控制器和一個(gè)共享存儲(chǔ)單元組成,如圖1所示,所述雙控磁盤(pán)陣列包括主控制器1、備控制器2、心跳鏈路3、數(shù)據(jù)鏈路4、共享數(shù)據(jù)鏈路5、共享存儲(chǔ)單元6。其中共享存儲(chǔ)單元6包括若干已授權(quán)磁盤(pán)7、若干未授權(quán)磁盤(pán)8。
本發(fā)明通過(guò)軟件的方法保證系統(tǒng)硬件使用的安全,通過(guò)磁盤(pán)接入管理只允許已授權(quán)磁盤(pán)7接入系統(tǒng),而將已插入雙控磁盤(pán)陣列的非授權(quán)磁盤(pán)8在操作系統(tǒng)層進(jìn)行隔離,從而保證主控制器1和備控制器2的操作系統(tǒng)及上層存儲(chǔ)應(yīng)用都只能訪問(wèn)使用已授權(quán)磁盤(pán)7?;陔p控磁盤(pán)陣列的特性,本發(fā)明對(duì)磁盤(pán)接入與隔離管理操作采取了同步措施,保持主控制器1和備控制器2的所有磁盤(pán)接入與隔離狀態(tài)實(shí)時(shí)保持一致,從而保證底層存儲(chǔ)資源對(duì)上層應(yīng)用的一致。
本發(fā)明的磁盤(pán)接入方法由磁盤(pán)接入與隔離控制、磁盤(pán)信息管理與同步交互完成,并通過(guò)磁盤(pán)授權(quán)信息表、磁盤(pán)內(nèi)部接口表來(lái)實(shí)現(xiàn)數(shù)據(jù)交互。
磁盤(pán)接入與隔離控制過(guò)程實(shí)現(xiàn)磁盤(pán)的接入與隔離管理。當(dāng)雙控磁盤(pán)陣列開(kāi)機(jī)、新的磁盤(pán)接入雙控磁盤(pán)陣列或用戶(hù)指令到達(dá)時(shí),首先捕獲操作系統(tǒng)發(fā)出的插入事件通知,然后讀取并更新磁盤(pán)授權(quán)信息表、磁盤(pán)內(nèi)部接口信息表,根據(jù)授權(quán)信息決定是否接入或隔離該磁盤(pán)使其成為可用或不可用的磁盤(pán)。
磁盤(pán)信息管理與同步過(guò)程:雙控磁盤(pán)陣列每一次執(zhí)行接入或者隔離磁盤(pán)時(shí),需在兩臺(tái)控制器同時(shí)執(zhí)行操作,此外,系統(tǒng)運(yùn)行期間,周期性地同步兩臺(tái)控制器磁盤(pán)授權(quán)信息表、磁盤(pán)內(nèi)部接口信息表的內(nèi)容,并保持兩端磁盤(pán)接入與隔離狀態(tài)一致。
本發(fā)明在磁盤(pán)接入管理上利用了操作系統(tǒng)自帶udev設(shè)備管理器的熱插拔管理機(jī)制,當(dāng)控制器操作系統(tǒng)內(nèi)核掃描設(shè)備時(shí),udev偵聽(tīng)來(lái)自?xún)?nèi)核的uevent事件,用來(lái)添加或者刪除/dev下的設(shè)備為其創(chuàng)建設(shè)備節(jié)點(diǎn),并觸發(fā)熱插拔程序的執(zhí)行。本發(fā)明定義了udev的兩個(gè)規(guī)則文件,分別自定義磁盤(pán)設(shè)備的插入與拔出應(yīng)執(zhí)行的操作。在磁盤(pán)信息管理同步上借助雙控磁盤(pán)陣列兩臺(tái)控制器主備角色的劃分、后臺(tái)監(jiān)控維護(hù)機(jī)制,保證兩臺(tái)控制器數(shù)據(jù)接入與隔離信息的同步。
為了維護(hù)磁盤(pán)授權(quán)信息與磁盤(pán)內(nèi)部接口信息,本發(fā)明創(chuàng)建了磁盤(pán)授權(quán)信息表和磁盤(pán)內(nèi)部接口信息表。磁盤(pán)授權(quán)信息表用來(lái)記錄磁盤(pán)的序列號(hào)、磁盤(pán)的接入信息、磁盤(pán)接入說(shuō)明等信息,磁盤(pán)的授權(quán)與否由用戶(hù)確定,該表是磁盤(pán)最終是否接入與隔離的依據(jù)。磁盤(pán)內(nèi)部接口信息表用于記錄磁盤(pán)的序列號(hào)、磁盤(pán)塊設(shè)備號(hào)、磁盤(pán)內(nèi)部接口信息、磁盤(pán)槽位號(hào)等,該表將為磁盤(pán)插拔時(shí)提供關(guān)鍵信息。本發(fā)明的所有操作都通過(guò)磁盤(pán)授權(quán)信息表和磁盤(pán)內(nèi)部接口信息表來(lái)實(shí)現(xiàn)信息交互,具體的接入過(guò)程如下:
在開(kāi)機(jī)過(guò)程中,控制器操作系統(tǒng)內(nèi)核會(huì)掃描所有磁盤(pán)設(shè)備(包括已授權(quán)磁盤(pán)設(shè)備7和非授權(quán)磁盤(pán)8),udev根據(jù)已定義的規(guī)則文件,將會(huì)對(duì)每個(gè)磁盤(pán)設(shè)備實(shí)施開(kāi)機(jī)預(yù)處理。本發(fā)明的預(yù)處理過(guò)程首先獲取當(dāng)前磁盤(pán)設(shè)備的信息,包括:磁盤(pán)序列號(hào)、磁盤(pán)內(nèi)部接口信息、磁盤(pán)槽位號(hào)、磁盤(pán)塊設(shè)備號(hào)等,并將信息插入磁盤(pán)授權(quán)信息表和磁盤(pán)接口信息表。當(dāng)磁盤(pán)授權(quán)信息表中有該磁盤(pán)序列號(hào)對(duì)應(yīng)的相關(guān)信息時(shí),保留原來(lái)信息,不執(zhí)行插入,否則,以默認(rèn)該磁盤(pán)設(shè)備為非授權(quán)的設(shè)置插入記錄,而對(duì)于磁盤(pán)接口信息表,不管其是否已經(jīng)存在該磁盤(pán)序列號(hào)對(duì)應(yīng)的相關(guān)信息,都需要插入(已有信息則進(jìn)行替換),記錄新的內(nèi)部接口信息、磁盤(pán)塊設(shè)備號(hào)、磁盤(pán)槽位號(hào)等信息。
開(kāi)機(jī)后,掃描系統(tǒng)所有已接入磁盤(pán)(包括已授權(quán)磁盤(pán)7和非授權(quán)磁盤(pán)8),讀取其設(shè)備序列號(hào),將其與磁盤(pán)授權(quán)信息表比對(duì),查看其授權(quán)信息,如果是授權(quán)的,不處理,否則,通過(guò)磁盤(pán)內(nèi)部接口信息表查詢(xún)其內(nèi)部接口信息,調(diào)用系統(tǒng)命令,從操作系統(tǒng)層移除該磁盤(pán)進(jìn)行隔離,并刪除該設(shè)備節(jié)點(diǎn)。此時(shí)系統(tǒng)就緒,主控制器1和備控制器2只能查看并使用已授權(quán)磁盤(pán)7,所有非授權(quán)磁盤(pán)8都已隔離,是不能訪問(wèn)的。
當(dāng)主控制器1(或者備控制器2)的用戶(hù)指令到達(dá)時(shí),首先在本地執(zhí)行用戶(hù)指令,通過(guò)磁盤(pán)內(nèi)部接口信息表獲取其內(nèi)部接口信息,調(diào)用系統(tǒng)命令,如果是磁盤(pán)授權(quán)指令則執(zhí)行磁盤(pán)接入命令,否則執(zhí)行磁盤(pán)隔離命令,并更新磁盤(pán)授權(quán)信息表,然后將指令發(fā)送到對(duì)端的備控制器2(或者主控制器1),對(duì)端備控制器2(或者主控制器1)也執(zhí)行相同的操作,并將結(jié)果反饋給本地的主控制器1(或者備控制器2),對(duì)端備控制器2(或者主控制器1)執(zhí)行成功則本地的主控制器1(或者備控制器2)返回成功消息,否則本地的主控制器1(或者備控制器2)執(zhí)行回滾操作并返回失敗消息。
系統(tǒng)運(yùn)行過(guò)程中,為了保證雙控磁盤(pán)陣列的主控制器1和備控制器2之間磁盤(pán)接入與隔離信息的一致,需要分配兩臺(tái)控制器的角色,主控制器1為主,備控制器2為備,主備角色的確定可以依據(jù)雙控磁盤(pán)陣列自身的主備角色確定。本發(fā)明的磁盤(pán)信息管理與同步策略為:以主控制器1磁盤(pán)接入與隔離信息為準(zhǔn),擴(kuò)充原雙控制后臺(tái)監(jiān)控維護(hù)程序,在這個(gè)程序中增加磁盤(pán)接入與隔離信息定期同步的操作,程序?qū)⒅芷谛缘貙淇刂破?的信息與主控制器1的信息同步,同步過(guò)程為:
讀取主控制器1的磁盤(pán)授權(quán)信息表,將該表信息格式化并發(fā)送至備控制器端2;
備控制器2讀取來(lái)自主控制器1的磁盤(pán)授權(quán)信息表,分析磁盤(pán)授權(quán)信息表并與本地磁盤(pán)授權(quán)信息表進(jìn)行對(duì)比;
當(dāng)發(fā)現(xiàn)備控制器2磁盤(pán)未接入而主控制器1磁盤(pán)已接入時(shí),備控制器2對(duì)未接入的不一致的磁盤(pán)逐一執(zhí)行磁盤(pán)接入操作,并修改本地磁盤(pán)授權(quán)信息表;
當(dāng)備控制器2磁盤(pán)已接入而主控制器1磁盤(pán)未接入時(shí),備控制器2對(duì)已接入的不一致的磁盤(pán)執(zhí)行磁盤(pán)移除操作,并修改本地磁盤(pán)授權(quán)信息表;
如果備控制器2執(zhí)行磁盤(pán)接入操作或磁盤(pán)移除操作成功則返回成功消息;否則,記錄操作失敗的磁盤(pán),將相應(yīng)磁盤(pán)信息發(fā)送至主控制器1,主控制器1將根據(jù)該磁盤(pán)信息對(duì)上層用戶(hù)發(fā)出警告,并提示其人工干預(yù)操作。
可以看出,本發(fā)明利用udev設(shè)備熱插拔管理機(jī)制,使得在磁盤(pán)插入時(shí)對(duì)磁盤(pán)接入進(jìn)行管理;通過(guò)建立與維護(hù)磁盤(pán)授權(quán)信息表與磁盤(pán)內(nèi)部接口表完成磁盤(pán)接入管理的信息管理與上層用戶(hù)的交互管理;從操作系統(tǒng)層控制雙控磁盤(pán)陣列授權(quán)磁盤(pán)的接入與非授權(quán)磁盤(pán)的隔離,防止使用非授權(quán)磁盤(pán)截獲用戶(hù)數(shù)據(jù),能有效保證存儲(chǔ)系統(tǒng)的安全,保證了接入狀態(tài)與上層存儲(chǔ)應(yīng)用的可用狀態(tài)的一致性,避免了磁盤(pán)對(duì)上層應(yīng)用的可用管理,減少了系統(tǒng)的復(fù)雜度和數(shù)據(jù)的準(zhǔn)確性;于利用雙控磁盤(pán)盤(pán)陣列兩臺(tái)控制器的主備角色保持接入信息與接入狀態(tài)的一致性;通過(guò)后臺(tái)監(jiān)控管理程序定期維護(hù)兩臺(tái)控制器接入信息與接入狀態(tài)的實(shí)時(shí)一致。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明技術(shù)原理的前提下,還可以做出若干改進(jìn)和變形,這些改進(jìn)和變形也應(yīng)視為本發(fā)明的保護(hù)范圍。