硬盤的固件升級方法和存儲系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例提供一種硬盤的固件升級方法和存儲系統(tǒng),所述存儲系統(tǒng)包括RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,RAID控制器通過獲取各RAID的配置和狀態(tài),根據(jù)各RAID的類型確定各RAID的冗余能力,并根據(jù)各RAID的狀態(tài)和配置對各RAID中硬盤上的固件進行升級,其中,RAID控制器在對各RAID進行升級時,各RAID之間并行升級,并且每個RAID內(nèi)部根據(jù)RAID的冗余能力多個硬盤之間并行升級,從而使得多個硬盤之間可以并行升級,縮短了整個存儲系統(tǒng)的升級時間,提高了存儲系統(tǒng)的固件升級效率。
【專利說明】硬盤的固件升級方法和存儲系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例涉及信息技術(shù)(Informat1n Technology,簡稱IT),尤其涉及一種硬盤的固件升級方法和存儲系統(tǒng)。
【背景技術(shù)】
[0002]硬盤是存儲系統(tǒng)中數(shù)量最多的組件,一個存儲系統(tǒng)少則幾十塊硬盤,多則上千塊硬盤。硬盤上面運行著復(fù)雜的固件(firmware),為了解決固件的漏洞(bug),需要定時對硬盤上的固件進行升級來降低故障率。在線存儲系統(tǒng)一般只能進行在線升級,如何快速升級硬盤,又不影響業(yè)務(wù)連續(xù)性是系統(tǒng)設(shè)計的一個挑戰(zhàn)。
[0003]現(xiàn)有的存儲系統(tǒng)中,如果需要在線升級固件,一般都是單塊硬盤依次升級,如果存儲系統(tǒng)中硬盤數(shù)量較少,升級時間較快,但是對于一個龐大的存儲系統(tǒng),升級時間將會十分漫長。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種硬盤的固件升級方法和存儲系統(tǒng),能夠縮短硬盤固件的升級時間,提尚硬盤固件的升級效率。
[0005]本發(fā)明第一方面提供一種硬盤的固件升級方法,所述方法應(yīng)用于存儲系統(tǒng)中,所述存儲系統(tǒng)包括獨立磁盤冗余陣列RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,其中,所述方法包括:
[0006]所述RAID控制器獲取所述各RAID的配置和狀態(tài),所述各RAID的配置包括所述各RAID的類型,所述各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài);
[0007]所述RAID控制器根據(jù)所述各RAID的類型確定所述各RAID的冗余能力,并根據(jù)所述各RAID的狀態(tài)和配置對所述各RAID中硬盤上的固件進行升級,所述各RAID之間并行升級,所述各RAID中能夠同時升級的最大硬盤數(shù)量不超過所述各RAID的冗余能力。
[0008]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第一種可能的實現(xiàn)方式中,所述RAID控制器根據(jù)所述各RAID的狀態(tài)和冗余能力對所述各RAID中硬盤上的固件進行升級,包括:
[0009]若所述各RAID的狀態(tài)均為正常狀態(tài),則所述RAID控制器根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;
[0010]若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則所述RAID控制器只對所述各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級。
[0011]結(jié)合本發(fā)明第一方面,在本發(fā)明第一方面的第二種可能的實現(xiàn)方式中,所述RAID控制器根據(jù)所述各RAID的狀態(tài)和冗余能力對所述各RAID中硬盤上的固件進行升級,包括:
[0012]若所述各RAID的狀態(tài)均為正常狀態(tài),則所述RAID控制器根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;
[0013]若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則所述RAID控制器只對所述各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
[0014]結(jié)合本發(fā)明第一方面以及本發(fā)明第一方面的第一種和第二種可能的實現(xiàn)方式,在本發(fā)明第一方面的第三種可能的實現(xiàn)方式中,所述方法還包括:
[0015]在所述RAID控制器對所述各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則所述RAID控制器對所述正在升級的硬盤的待寫數(shù)據(jù)進行緩存;
[0016]在所述正在升級的硬盤升級完成之后,所述RAID控制器將緩存的所述待寫數(shù)據(jù)寫入所述正在升級的硬盤中;
[0017]或者,在所述RAID控制器對所述各RAID進行升級的過程中,若需要對所述正在升級的硬盤讀數(shù)據(jù),則所述RAID控制器根據(jù)所述正在升級的硬盤的冗余關(guān)系,從與所述正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。
[0018]本發(fā)明第二方面提供一種存儲系統(tǒng),所述存儲系統(tǒng)包括:獨立磁盤冗余陣列RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,其中,所述RAID控制器包括:
[0019]獲取模塊,用于獲取所述各RAID的配置和狀態(tài),所述各RAID的配置包括所述各RAID的類型,所述各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài);
[0020]升級模塊,用于根據(jù)所述各RAID的類型確定所述各RAID的冗余能力,并根據(jù)所述各RAID的狀態(tài)和配置對所述各RAID中硬盤上的固件進行升級,所述各RAID之間并行升級,所述各RAID中能夠同時升級的最大硬盤數(shù)量不超過所述各RAID的冗余能力。
[0021]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第一種可能的實現(xiàn)方式中,所述升級模塊具體用于:
[0022]若所述各RAID的狀態(tài)均為正常狀態(tài),則根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;
[0023]若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則只對所述各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級。
[0024]結(jié)合本發(fā)明第二方面,在本發(fā)明第二方面的第二種可能的實現(xiàn)方式中,所述升級模塊具體用于:
[0025]若所述各RAID的狀態(tài)均為正常狀態(tài),則根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;
[0026]若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則只對所述各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
[0027]結(jié)合本發(fā)明第二方面以及本發(fā)明第二方面的第一種和第二種可能的實現(xiàn)方式,在本發(fā)明第二方面的第三種可能的實現(xiàn)方式中,所述升級模塊還用于:
[0028]在對所述各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則對所述正在升級的硬盤的待寫數(shù)據(jù)進行緩存;
[0029]在所述正在升級的硬盤升級完成之后,將緩存的所述待寫數(shù)據(jù)寫入所述正在升級的硬盤中;
[0030]或者,在對所述各RAID進行升級的過程中,若需要對所述正在升級的硬盤讀數(shù)據(jù),則根據(jù)所述正在升級的硬盤的冗余關(guān)系,從與所述正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。
[0031]本發(fā)明實施例提供的硬盤的固件升級方法和存儲系統(tǒng),所述存儲系統(tǒng)包括RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,RAID控制器通過獲取各RAID的配置和狀態(tài),根據(jù)各RAID的類型確定各RAID的冗余能力,并根據(jù)各RAID的狀態(tài)和配置對各RAID中硬盤上的固件進行升級,其中,RAID控制器在對各RAID進行升級時,各RAID之間并行升級,并且每個RAID內(nèi)部根據(jù)RAID的冗余能力多個硬盤之間并行升級,從而使得多個硬盤之間可以并行升級,縮短了整個存儲系統(tǒng)的升級時間,提高了存儲系統(tǒng)的固件升級效率。
【專利附圖】
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1為本發(fā)明實施例適用的一種存儲系統(tǒng)的結(jié)構(gòu)示意圖;
[0034]圖2為本發(fā)明實施例一提供的硬盤的固件升級方法的流程圖;
[0035]圖3為發(fā)明實施例二提供的一種存儲系統(tǒng)的RAID控制器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0036]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0037]本發(fā)明實施例提供的硬盤的固件升級方法適用于存儲系統(tǒng)中,圖1為本發(fā)明實施例適用的一種存儲系統(tǒng)的結(jié)構(gòu)示意圖,如圖1所示,該存儲系統(tǒng)包括三個獨立磁盤冗余陣列(Redundant Array of Independent Disk,簡稱 RAID)和一個 RAID 控制器,每個 RAID包括多個硬盤,通過把相同的數(shù)據(jù)存儲在同一個RAID的不同硬盤上,通過在多個磁盤上同時存儲和讀取數(shù)據(jù)來大幅度提高存儲系統(tǒng)的數(shù)據(jù)吞吐量,同時存儲冗余數(shù)據(jù)也增加了存儲系統(tǒng)的容錯。RAID控制器用于控制各RAID中的硬盤進行讀寫操作等。圖1所示的只是存儲系統(tǒng)的一種結(jié)構(gòu)示意圖,在一個存儲系統(tǒng)中可以具有更多的RAID和多個RAID控制器,例如,每個RAID組具有一個RAID控制器,同時整個存儲系統(tǒng)還具有一個主RAID控制器,用于管理其他RAID控制器。
[0038]圖2為本發(fā)明實施例一提供的硬盤的固件升級方法的流程圖,本實施例提供的方法可以應(yīng)用于圖1所示的存儲系統(tǒng)中,請參照圖1和圖2所示,本實施例的方法可以包括以下步驟:
[0039]步驟101、RAID控制器獲取各RAID的配置和狀態(tài),各RAID的配置包括各RAID的類型,各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài)。
[0040]RAID的配置信息包括:RAID的類型,RAID具有多種類型:例如RAID5、RAID6或RAIDlO等,RAID配置信息還可以包括RIAD內(nèi)的硬盤數(shù)量、各硬盤的標識和槽位號、讀策略和寫策略等。RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài),在失效狀態(tài)下RAID不可用,降級狀態(tài)即RAID中的部分硬盤故障,但RAID仍可以用。
[0041 ] 步驟102、RAID控制器根據(jù)各RAID的類型確定各RAID的冗余能力,并根據(jù)各RAID的狀態(tài)和配置對各RAID中硬盤上的固件進行升級,各RAID之間并行升級,各RAID中能夠同時升級的最大硬盤數(shù)量不超過各RAID的冗余能力。
[0042]RAID的冗余能力即RAID在一定數(shù)量硬盤故障時仍能夠正常工作的硬盤數(shù)量,例如,圖1中RAID5包括5塊硬盤,標識依次為0-4,冗余能力為1,即在一塊硬盤故障,RAID5仍能夠正常工作,在任意一塊硬盤故障時,能通過其他四塊硬盤恢復(fù)得到故障硬盤的數(shù)據(jù)。RAID 6包括6塊硬盤,標識依次為5-10,冗余能力為2,即在任意兩塊硬盤故障時,RAID6都能夠正常工作。RAIDlO包括6個硬盤,標識依次為11-16,工分為3個鏡像組,硬盤11和硬盤12為一個鏡像組,硬盤13和硬盤14為一個鏡像組,硬盤15和硬盤16為一個鏡像組,每個鏡像組中兩個硬盤上的數(shù)據(jù)完全相同,當一個鏡像組中的任意一個硬盤故障時,另一個硬盤仍能夠工作,RAIDlO能夠正常工作,但是,同一個鏡像組內(nèi)的兩個硬盤都故障,則RAIDlO不能正常工作,因此,RAIDlO的冗余能力等于鏡像組的個數(shù),例如,如圖1中,硬盤11、13和15都故障后,RAIDlO仍能正常工作。
[0043]本實施例中,RAID控制器在對各RAID升級時,各RAID之間并行進行升級,各RAID組之間互相獨立,因此,能夠同時對多個硬盤進行升級,提高了存儲系統(tǒng)的固件的升級效率。在對每個RAID進行升級時,RAID內(nèi)的多個硬盤可以一個一個順序進行升級,也可以根據(jù)RAID的冗余能力對RAID內(nèi)的多個硬盤同時升級,進一步提高存儲系統(tǒng)的固件的升級效率。本實施例中,在對RAID進行升級時,為了不影響RAID正常工作,對RAID內(nèi)部同時升級的最大硬盤數(shù)量不超過各RAID的冗余能力。例如,當RAID的類型為RAID 5時,RAID5的冗余能力為1,那么只能一個一個硬盤進行升級。對于RAID6來說,其冗余能力為2,因此,最多能同時對兩個硬盤升級。對于RAIDlO來說,其冗余能力為3,因此,最多能同時對三個硬盤進行升級,并且這三個硬盤要分別屬于不同的鏡像組。在升級過程中,RAID控制器還需要記錄當前各RAID中正在升級的硬盤的標識和槽位號,對已經(jīng)升級完成的硬盤進行標記,在對某個硬盤升級完成后,繼續(xù)對下一個硬盤進行升級。
[0044]本實施例中,RAID控制器在對各RAID進行升級前,還需要判斷各RAID的狀態(tài)。可選地,若各RAID的狀態(tài)均為正常狀態(tài),則RAID控制器根據(jù)各RAID的冗余能力對各RAID中硬盤上的固件進行升級;若各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則RAID控制器只對各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級??蛇x地,若各RAID的狀態(tài)均為正常狀態(tài),則RAID控制器根據(jù)各RAID的冗余能力對各RAID中硬盤上的固件進行升級;若各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則RAID控制器只對各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
[0045]進一步地,在RAID控制器對各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則RAID控制器對正在升級的硬盤的待寫數(shù)據(jù)進行緩存;在該正在升級的硬盤升級完成之后,RAID控制器將緩存的待寫數(shù)據(jù)寫入該正在升級的硬盤中。具體地,RAID控制器可以將待寫數(shù)據(jù)緩存到存儲系統(tǒng)的內(nèi)存中,或者,將待寫數(shù)據(jù)存儲到該正在升級的硬盤所在的RAID中的其他硬盤上。
[0046]或者,在RAID控制器對各RAID進行升級過程中,若需要對該正在升級的硬盤讀數(shù)據(jù),則RAID控制器通過降級讀完成,具體地,RAID控制器根據(jù)正在升級的硬盤的冗余關(guān)系,從與正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。一種實現(xiàn)方式中,RAID控制器不能直接從其他硬盤中讀取到數(shù)據(jù),而需要根據(jù)讀取到的數(shù)據(jù)計算得到待讀取的數(shù)據(jù),例如,對于RAID5,若正在對硬盤O升級,那么其他四個硬盤都與該硬盤具有冗余關(guān)系,那么RAID控制器可以從其他四個硬盤中讀取數(shù)據(jù),然后,根據(jù)讀取到的數(shù)據(jù)計算得到待讀取數(shù)據(jù)。另一種實現(xiàn)方式中,RAID控制器能夠直接從其他硬盤中讀取到待讀取的數(shù)據(jù),例如,對于RAID10,若當前正在對硬盤11升級,硬盤11與硬盤12具有冗余關(guān)系,RAID控制器從硬盤12中讀取待讀取數(shù)據(jù)。
[0047]當某個硬盤上的固件升級失敗且無法啟動時,則在新硬盤插入后,利用RAID的冗余關(guān)系對該硬盤的數(shù)據(jù)進行重構(gòu),例如,當RAID5中的硬盤O升級失敗后,利用RAID1-4中的數(shù)據(jù)進行數(shù)據(jù)恢復(fù)得到硬盤O中的數(shù)據(jù)。
[0048]本實施例,RAID控制器通過獲取各RAID的配置和狀態(tài),根據(jù)各RAID的類型確定各RAID的冗余能力,并根據(jù)各RAID的狀態(tài)和配置對各RAID中硬盤上的固件進行升級,其中,RAID控制器在對各RAID進行升級時,各RAID之間并行升級,并且每個RAID內(nèi)部根據(jù)RAID的冗余能力多個硬盤之間并行升級,從而使得多個硬盤之間可以并行升級,縮短了整個存儲系統(tǒng)的硬盤固件升級時間,提高了存儲系統(tǒng)的硬盤固件升級效率。
[0049]圖3為發(fā)明實施例二提供的一種存儲系統(tǒng)的RAID控制器的結(jié)構(gòu)示意圖,如圖3所示,本實施例的RAID控制器包括:獲取模塊21和升級模塊22。
[0050]獲取模塊21,用于獲取所述各RAID的配置和狀態(tài),所述各RAID的配置包括所述各RAID的類型,所述各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài);
[0051 ] 升級模塊22,用于根據(jù)所述各RAID的類型確定所述各RAID的冗余能力,并根據(jù)所述各RAID的狀態(tài)和配置對所述各RAID中硬盤上的固件進行升級,所述各RAID之間并行升級,所述各RAID中能夠同時升級的最大硬盤數(shù)量不超過所述各RAID的冗余能力。
[0052]進一步地,所述升級模塊22具體用于:若所述各RAID的狀態(tài)均為正常狀態(tài),則所述RAID控制器根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則所述RAID控制器只對所述各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級?;蛘撸羲龈鱎AID的狀態(tài)均為正常狀態(tài),根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級;若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則只對所述各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
[0053]可選地,所述升級模塊22還用于:在對所述各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則對所述正在升級的硬盤的待寫數(shù)據(jù)進行緩存;在所述正在升級的硬盤升級完成之后,將緩存的所述待寫數(shù)據(jù)寫入所述正在升級的硬盤中?;蛘撸趯λ龈鱎AID進行升級的過程中,若需要對所述正在升級的硬盤讀數(shù)據(jù),則根據(jù)所述正在升級的硬盤的冗余關(guān)系,從與所述正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。
[0054]本實施例的控制器,可用于執(zhí)行實施例一的方案,具體實現(xiàn)方式和技術(shù)效果類似,這里不再贅述。
[0055]本發(fā)明實施例三提供一種存儲系統(tǒng),所述存儲系統(tǒng)包括:RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤。所述RAID控制器的具體結(jié)構(gòu)可參照圖3所示的RAID控制器,這里不再贅述。
[0056]本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述各方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成。前述的程序可以存儲于一計算機可讀取存儲介質(zhì)中。該程序在執(zhí)行時,執(zhí)行包括上述各方法實施例的步驟;而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0057]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種硬盤的固件升級方法,所述方法應(yīng)用于存儲系統(tǒng)中,所述存儲系統(tǒng)包括獨立磁盤冗余陣列RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,其特征在于,所述方法包括: 所述RAID控制器獲取所述各RAID的配置和狀態(tài),所述各RAID的配置包括所述各RAID的類型,所述各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài); 所述RAID控制器根據(jù)所述各RAID的類型確定所述各RAID的冗余能力,并根據(jù)所述各RAID的狀態(tài)和配置對所述各RAID中硬盤上的固件進行升級,所述各RAID之間并行升級,所述各RAID中能夠同時升級的最大硬盤數(shù)量不超過所述各RAID的冗余能力。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述RAID控制器根據(jù)所述各RAID的狀態(tài)和冗余能力對所述各RAID中硬盤上的固件進行升級,包括: 若所述各RAID的狀態(tài)均為正常狀態(tài),則所述RAID控制器根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級; 若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則所述RAID控制器只對所述各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述RAID控制器根據(jù)所述各RAID的狀態(tài)和冗余能力對所述各RAID中硬盤上的固件進行升級,包括: 若所述各RAID的狀態(tài)均為正常狀態(tài),則所述RAID控制器根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級; 若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則所述RAID控制器只對所述各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
4.根據(jù)權(quán)利要求1-3中任一項所述的方法,其特征在于,所述方法還包括: 在所述RAID控制器對所述各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則所述RAID控制器對所述正在升級的硬盤的待寫數(shù)據(jù)進行緩存; 在所述正在升級的硬盤升級完成之后,所述RAID控制器將緩存的所述待寫數(shù)據(jù)寫入所述正在升級的硬盤中; 或者,在所述RAID控制器對所述各RAID進行升級的過程中,若需要對所述正在升級的硬盤讀數(shù)據(jù),則所述RAID控制器根據(jù)所述正在升級的硬盤的冗余關(guān)系,從與所述正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。
5.一種存儲系統(tǒng),所述存儲系統(tǒng)包括:獨立磁盤冗余陣列RAID控制器和多個RAID,所述多個RAID中的各RAID包括多個硬盤,其特征在于,所述RAID控制器包括: 獲取模塊,用于獲取所述各RAID的配置和狀態(tài),所述各RAID的配置包括所述各RAID的類型,所述各RAID的狀態(tài)包括:失效狀態(tài)、正常狀態(tài)或降級狀態(tài); 升級模塊,用于根據(jù)所述各RAID的類型確定所述各RAID的冗余能力,并根據(jù)所述各RAID的狀態(tài)和配置對所述各RAID中硬盤上的固件進行升級,所述各RAID之間并行升級,所述各RAID中能夠同時升級的最大硬盤數(shù)量不超過所述各RAID的冗余能力。
6.根據(jù)權(quán)利要求5所述的存儲系統(tǒng),其特征在于,所述升級模塊具體用于: 若所述各RAID的狀態(tài)均為正常狀態(tài),則根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級; 若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則只對所述各RAID中處于正常狀態(tài)的RAID中硬盤上的固件進行升級。
7.根據(jù)權(quán)利要求5所述的存儲系統(tǒng),其特征在于,所述升級模塊具體用于: 若所述各RAID的狀態(tài)均為正常狀態(tài),則根據(jù)所述各RAID的冗余能力對所述各RAID中硬盤上的固件進行升級; 若所述各RAID中的部分RAID的狀態(tài)為失效狀態(tài)或降級狀態(tài),則只對所述各RAID中處于正常狀態(tài)和降級狀態(tài)的RAID中硬盤上的固件進行升級。
8.根據(jù)權(quán)利要求5-7中任一項所述的存儲系統(tǒng),其特征在于,所述升級模塊還用于: 在對所述各RAID進行升級的過程中,若需要對正在升級的硬盤寫數(shù)據(jù),則對所述正在升級的硬盤的待寫數(shù)據(jù)進行緩存; 在所述正在升級的硬盤升級完成之后,將緩存的所述待寫數(shù)據(jù)寫入所述正在升級的硬盤中; 或者,在對所述各RAID進行升級的過程中,若需要對所述正在升級的硬盤讀數(shù)據(jù),則根據(jù)所述正在升級的硬盤的冗余關(guān)系,從與所述正在升級的硬盤具有冗余關(guān)系的其他硬盤中獲取待讀取的數(shù)據(jù)。
【文檔編號】G06F3/06GK104503781SQ201410752072
【公開日】2015年4月8日 申請日期:2014年12月10日 優(yōu)先權(quán)日:2014年12月10日
【發(fā)明者】杜宇旻, 徐明軍, 霍杰 申請人:華為技術(shù)有限公司