本發(fā)明涉及一種硬盤檢測方法,屬于計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法。
背景技術(shù):
隨著現(xiàn)代信息技術(shù)和互聯(lián)網(wǎng)的高速發(fā)展,大容量存儲服務(wù)器的市場需求不斷增加,目前大容量存儲服務(wù)器很多會涉及到多硬盤控制器。在系統(tǒng)加載過程中由于加載控制器驅(qū)動的順序差異,很容易導(dǎo)致多個控制器下的硬盤盤符變動,容易發(fā)生系統(tǒng)死機(jī)、數(shù)據(jù)滅失等操作風(fēng)險(xiǎn)。
就不同控制器間產(chǎn)生硬盤亂序的原因分析,以bios對cpu0、cpu1下pcie設(shè)備的識別規(guī)則為例說明,在intel雙路x86服務(wù)器中pcie設(shè)備的busnumber范圍是0–255,其中cpu0上的范圍是0-127,cpu1上的范圍是128-255,因此按照intel的定義,cpu0上的pcierootport的bus/dev/func編號分別是bus0_dev1/2/3_func0/1/2/3;cpu1上的pcierootport分別是bus80_dev1/2/3_func0/1/2/3;pch上的satacontroller和ssatacontroller的bus/dev/funcnumber分別是bus0/dev31/func2和bus0/dev17/func4。在biospost過程中pciscan時,bios按照bus/dev/func號碼從小到大的順序依次掃描,那么就會先掃描到cpu0上的pcierootport,然后是pchsata/ssatacontroller,然后是cpu1上的pcierootport。
依據(jù)操作系統(tǒng)對設(shè)備磁盤的識別規(guī)則,哪個控制器先完成初始化就先賦予哪個控制器磁盤符sda的原則,以此類推,一旦某個控制器響應(yīng)錯誤,會多次嘗試類似動作或操作,導(dǎo)致操作系統(tǒng)對其驅(qū)動初始化device的完成時間增長,就可能會引起操作系統(tǒng)下的磁盤盤符識別順序混亂。
如中國專利(申請公布號cn105302687a)公開了了“一種基于linux下的硬盤盤序檢測方法”,適用于linux測試平臺,該方法包括,根據(jù)需求搭建測試平臺,將測試腳本拷貝到測試平臺,啟動測試腳本自動開始測試,檢測操作系統(tǒng),檢測系統(tǒng)盤并分區(qū),獲取磁盤分區(qū),調(diào)用檢測盤序腳本與初始磁盤sn對比處理log,輸出腳本處理日志;能夠檢測服務(wù)器在壓力重啟時出現(xiàn)磁盤排序紊亂的情況,自動化完成不斷重啟服務(wù)器情況下的硬盤穩(wěn)定性測試工作,并且該測試方法操作簡單,可以大大減少人力物力,以及人工檢測操作及干預(yù)的時間,豐富了測試手段,提高了測試效率,并且可以靈活的根據(jù)測試需要進(jìn)行測試,大大節(jié)約了時間成本。雖然該方法能夠提高在測試平臺下,對硬盤亂序的檢測手段和效率,但無法用于已有的服務(wù)器硬盤管理,因而存在不足。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,用以解決現(xiàn)有的服務(wù)器硬盤管理中容易出現(xiàn)硬盤盤符亂序的問題,提高系統(tǒng)和數(shù)據(jù)存儲的穩(wěn)定性。
本發(fā)明通過以下技術(shù)方案予以實(shí)現(xiàn):
一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,包括以下步驟:
s1.將硬盤亂序檢驗(yàn)?zāi)_本導(dǎo)入服務(wù)器并手動運(yùn)行腳本;
s2.生成含有硬盤盤符sn信息的基準(zhǔn)文件,并判斷是否正確;
s3.將硬盤亂序檢驗(yàn)?zāi)_本的執(zhí)行命令寫入服務(wù)器系統(tǒng)開機(jī)自動調(diào)用執(zhí)行文件內(nèi),以實(shí)現(xiàn)腳本的自動執(zhí)行;
s4.重啟服務(wù)器進(jìn)行測試,并判斷次數(shù)是否滿足設(shè)定的檢測次數(shù),當(dāng)次數(shù)滿足,停止reboot命令,并show出result內(nèi)有多少次fail,從而獲得盤飄次數(shù);當(dāng)次數(shù)不滿足,執(zhí)行下一步;
s5.將重啟后所述硬盤亂序檢驗(yàn)?zāi)_本生成的硬盤盤符sn信息與所述基準(zhǔn)文件中硬盤盤符sn信息做對比,判斷是否相同,當(dāng)相同時,在result文件內(nèi)記錄pass一次,然后返回步驟s4;當(dāng)不同時,在result文件內(nèi)記錄fail一次,然后返回步驟s4。
如上所述的一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,所述步驟s4是在不同的操作系統(tǒng)執(zhí)行相應(yīng)的linux下reboot命令。
如上所述的一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,所述步驟s4中服務(wù)器重啟后會掃描系統(tǒng)中的所有磁盤,同時會對所有設(shè)備進(jìn)行資源分配、初始化動作和自檢動作。
如上所述的一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,所述服務(wù)器在biospost過程中pciscan時,bios按照bus/dev/func號碼從小到大的順序依次掃描。
如上所述的一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,所述bios依次掃描pcierootport、pchsata/ssatacontroller、pchssatacontrollert。
如上所述的一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,所述步驟s4中設(shè)定的檢測次數(shù)范圍為10~50之間。
與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是:
本發(fā)明在開始測試前導(dǎo)出硬盤各盤符對應(yīng)的sn信息,進(jìn)而獲得硬盤亂序檢測基準(zhǔn)信息,并將腳本命令導(dǎo)入現(xiàn)有的服務(wù)器中實(shí)現(xiàn)系統(tǒng)對硬盤盤符信息的自動管理;然后對服務(wù)器進(jìn)行重啟測試,在服務(wù)器重啟后會掃描連接在系統(tǒng)中的所有設(shè)備,同時會對所有設(shè)備進(jìn)行資源分配并嘗試對所有設(shè)備進(jìn)行初始化動作和自檢動作;每次進(jìn)系統(tǒng)后提取各盤符對應(yīng)的硬盤sn信息與第一次導(dǎo)出的sn基準(zhǔn)做對比,以判斷是否存在亂序現(xiàn)象,因而能方便服務(wù)器對硬盤進(jìn)行管理,提高系統(tǒng)和數(shù)據(jù)存儲的穩(wěn)定性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹。
圖1是本發(fā)明的流程圖
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。
如圖1所示,本實(shí)施例一種linux系統(tǒng)下自動進(jìn)行硬盤亂序檢驗(yàn)的方法,包括以下步驟:首先將硬盤亂序檢驗(yàn)?zāi)_本導(dǎo)入服務(wù)器中,并手動運(yùn)行該腳本一次;以獲得含有硬盤盤符sn信息的基準(zhǔn)文件,并通過人工識別盤符sn信息是否正確;將硬盤亂序檢驗(yàn)?zāi)_本的執(zhí)行命令寫入服務(wù)器系統(tǒng)開機(jī)自動調(diào)用執(zhí)行文件內(nèi),以實(shí)現(xiàn)腳本的自動執(zhí)行,同時在硬盤亂序檢驗(yàn)?zāi)_本中設(shè)定檢測的次數(shù)為20次;再進(jìn)行服務(wù)器重啟測試,并判斷是否滿足設(shè)定的檢測次數(shù),當(dāng)次數(shù)滿足,服務(wù)器停止reboot命令,并show出result內(nèi)有多少次fail,從而獲得盤飄次數(shù);當(dāng)次數(shù)不滿足時,接著將重啟后硬盤亂序檢驗(yàn)?zāi)_本生成的硬盤盤符sn信息與基準(zhǔn)文件中硬盤盤符sn信息做對比,判斷兩者的硬盤盤符sn信息是否相同,當(dāng)相同時,在result文件內(nèi)記錄pass一次;當(dāng)不同時,在result文件內(nèi)記錄fail一次;當(dāng)進(jìn)行完硬盤亂序檢驗(yàn)?zāi)_本與基準(zhǔn)文件的對比操作后,返回并重啟服務(wù)器進(jìn)行循環(huán),直至設(shè)定的檢測次數(shù),然后通過讀取result內(nèi)的fail次數(shù),從而獲得盤飄次數(shù),實(shí)現(xiàn)服務(wù)器硬盤盤符的自動管理和操作。
具體而言,本發(fā)明中的硬盤盤符亂序檢驗(yàn)?zāi)_本可采用c語言編寫后導(dǎo)入服務(wù)器。在服務(wù)器中第一次手動運(yùn)行硬盤亂序檢驗(yàn)的測試腳本后,會生產(chǎn)一個文件,假設(shè)命名為a,在文件a里就會有第一次生成的硬盤盤符sn信息并作為后續(xù)自動核對的基準(zhǔn)文件。同時會在服務(wù)器屏幕上show出來并詢問該信息是否正確,手動輸入pass進(jìn)行確認(rèn)正確后,會另外生產(chǎn)一個文件,假設(shè)命名為b,在文件b里就含有pass/fail的結(jié)果。再將硬盤亂序檢驗(yàn)?zāi)_本的執(zhí)行命令寫入服務(wù)器系統(tǒng)開機(jī)自動調(diào)用執(zhí)行文件內(nèi),在linux系統(tǒng)中自動調(diào)用執(zhí)行文件是寫在/etc/rc.local文件中,也就是將硬盤亂序檢驗(yàn)?zāi)_本的執(zhí)行命令寫入/etc/rc.local文件內(nèi),因此,服務(wù)器在每次重啟開機(jī)后會自動執(zhí)行腳本,而每次硬盤盤符經(jīng)過掃描檢測后的導(dǎo)出的sn信息也會寫入到文件a中,留做以后查看fail的原因,同時會跟第一次生成的基準(zhǔn)文件中的sn信息做對比判斷,如果相同則在文件b中記錄一次pass,如果不同則在文件b中記錄一次fail。
本發(fā)明通過在測試前導(dǎo)出硬盤各盤符對應(yīng)硬盤的sn作為基準(zhǔn),進(jìn)而獲得硬盤盤符信息的檢測基準(zhǔn),并將腳本命令導(dǎo)入現(xiàn)有的服務(wù)器中進(jìn)行硬盤管理自動執(zhí)行;然后進(jìn)行服務(wù)器重啟測試,在服務(wù)器重啟后會掃描連接在系統(tǒng)中的所有設(shè)備,同時會對所有設(shè)備進(jìn)行資源分配并嘗試對所有設(shè)備進(jìn)行初始化動作和自檢動作;每次進(jìn)系統(tǒng)后提取各盤符對應(yīng)的硬盤盤符sn信息與第一次導(dǎo)出的硬盤盤符sn基準(zhǔn)做對比,以判讀是否存在亂序問題,因而能方便服務(wù)器對硬盤進(jìn)行管理,提高系統(tǒng)和數(shù)據(jù)存儲的穩(wěn)定性。
本發(fā)明未詳盡描述的技術(shù)內(nèi)容均為公知技術(shù)。