一種設計磁盤陣列的方法和存儲裝置的制造方法
【技術領域】
[0001] 本發(fā)明涉及存儲技術,特別是指一種設計磁盤陣列的方法和存儲裝置。
【背景技術】
[0002] 在互聯(lián)網(wǎng)和通信行業(yè)中,數(shù)據(jù)存儲一直是業(yè)務的有力支撐,同時也是各公司對內 對外IT系統(tǒng)中的核心。當今現(xiàn)有的數(shù)據(jù)存儲主要是通過磁盤驅動器(簡稱:磁盤,HDD,Hard DiskDrive)來實現(xiàn),其包括三部分:一個或者多個鋁制或者玻璃制的可以通過磁化來存儲 數(shù)據(jù)的盤片(碟片),主軸馬達,通過感應、改變盤片相應位置的磁場而讀取、寫入數(shù)據(jù)的一 個或多個(一般為盤片數(shù)量的2倍)磁頭。磁盤的存儲數(shù)據(jù)主要是存儲在磁盤盤片上,盤 片主要由磁道(Track)和扇區(qū)(Sector)組成。
[0003] 如圖1所不,一塊磁盤所有盤片上的同一磁道構成一個圓柱,稱作柱面 (Cylinder),每個圓柱上的磁頭由上而下從0開始編號。數(shù)據(jù)的讀/寫按柱面進行,即磁頭 讀/寫數(shù)據(jù)時首先在同一柱面內從〇磁頭開始進行操作,依次向下在同一柱面的不同盤片 即磁頭上進行操作,只在同一柱面所有的磁頭全部讀/寫完畢后磁頭才轉移到下一柱面。
[0004] 區(qū)域數(shù)據(jù)記錄技術(ZDR,ZoneDataRecording)。磁盤主軸的工作方式是恒定角 速度,單位時間內放置的角度一致(CAV,ConstantAngularVelocity),而盤片最外圈的周 長比最內圈的周長要長很多,磁頭在最外圈時,走過的距離最長,如果最內圈與最外圈磁道 的扇區(qū)數(shù)相同,必將造成極大的存儲空間的浪費。ZDR技術從磁盤的最外圈劃分出若干個區(qū) 域,每個區(qū)域內的每磁道扇區(qū)一致,但靠內的區(qū)域比外側的區(qū)域的每磁道扇區(qū)數(shù)要少,可以 根據(jù)不同的磁道長度來合理設定扇區(qū)的數(shù)量,以達到充分利用磁盤存儲空間的目的。如圖 2所示,大多數(shù)磁盤按照16個區(qū)域劃分,最外圈的每磁道扇區(qū)數(shù)正好是最內圈的一倍,與最 大的持續(xù)傳輸率的參數(shù)基本成比例。對于同一 ±夬磁盤,每一個扇區(qū)占用的磁道長度相等,外' 圈由于磁道長度比內圈長,所以外圈比內圈部署更多的扇區(qū)以達到更高的磁盤利用率。
[0005] 尋道速度/時間:設定一次隨機尋道磁頭的起始位置與終點位置都位于同一磁道 上,之間間隔4個扇區(qū)的簡化情況,對應該隨機讀寫的尋道時間是t。
[0006] 設定一個磁盤每條扇區(qū)占用的磁道長度為S,轉速為P(RPM,RoundPerMinute), 盤片的對應磁道的半徑為R。設定內圈的角速度為《,那么《 = 2Jif= 2jtP/60 =jtP/30, 設定磁道的線速度為u,那么u=coR=jtPR/30,對應尋道時間t= 4s/u=120s/jtPR, 磁盤的尋道時間與磁道對應的盤片半徑R成反比,磁道越靠外盤片半徑R越大,尋道時間越 短,尋道速度越快。
[0007] 數(shù)據(jù)讀/寫速度。磁頭對于一個扇區(qū)的數(shù)據(jù)的讀寫的速度由3個因素所決定:磁 頭本身的物理讀寫速度,盤片感應到磁頭讀寫后生產(chǎn)數(shù)據(jù)的物理速度,扇區(qū)到扇區(qū)之間的 轉換速度;而最后一個因素直接與磁盤在該扇區(qū)的移動速度有關。前兩個因素在同一塊或 者同一型號的磁盤內,可以認為其速度是無個體差異并一致的,而且不會對第三個因素產(chǎn) 生瓶頸。那么對于同一塊或者同一型號的多塊磁盤,其讀/寫一個扇區(qū)的速度是與扇區(qū)的 移動速度有關。根據(jù)之前尋道速度段落中的推導,該速度就是磁盤盤片在該扇區(qū)的線速度 U=c〇R=jtPR/30,其尋道時間的推導公式為t= 4s/u=120s/jtPR,可以看到,扇區(qū)數(shù) 據(jù)的讀寫速度也與磁道對應的盤片半徑成反比,磁道越靠外盤片半徑越大,扇區(qū)移動速度 越快,扇區(qū)數(shù)據(jù)的讀寫速度越快。
[0008] 如圖3所示,典型的容量為500GBHDD的尋道時間和讀取速度測試,測試的結果橫 軸對應位置為從外圈開始標為0GB,直到最內圈結束,標示為500GB。一個點模擬了一次隨 機讀寫的過程并記錄了該讀寫與上次讀寫所耗費的間隔時間,隨著磁盤的隨機讀寫位置越 靠近最內圈,尋道所耗費的時間越長。
[0009] 如圖3所示,曲線模擬了磁盤在每一個磁道(容量區(qū)域)對應的一塊數(shù)據(jù)的連續(xù) 讀寫速度,隨著磁盤的讀寫位置越靠近最內圈,讀寫的速度越慢。并且,磁盤最外圈的讀寫 速度(約130MB/S)大約為最內圈讀寫速度(約60MB/S)的2倍,與ZDR的推論一致-磁盤 設定的最外圈扇區(qū)數(shù)量為最內圈扇區(qū)數(shù)量的2倍。
[0010] 綜上,現(xiàn)有磁盤扇區(qū)的分布特性決定了對于同一塊或同一型號的多個磁盤,磁盤 的外圈隨機尋道的速度會更快,并且數(shù)據(jù)的讀寫速率也會更高。
[0011]獨立磁盤冗余陣列(RAID,RedundantArrayofIndependentDisks),是將相同 的數(shù)據(jù)存儲在多個磁盤的不同的地方,通過將數(shù)據(jù)放在多個磁盤上,輸入輸出操作能以平 衡的方式交疊,改良性能。最基本和常用的是RAID0、RAID1和RAID5。
[0012]RAID0是組建磁盤陣列最簡單的一種形式,需要2塊或2塊以上的磁盤,通過數(shù)據(jù) 條帶化(DataStripping)技術,可以提高整個磁盤的性能和吞吐量。但如果任何一塊磁盤 出現(xiàn)故障,整個磁盤陣列將會受到破壞,可靠性僅為單獨一塊磁盤的1/N。
[0013]RAID1是磁盤鏡像,是將一個磁盤的數(shù)據(jù)鏡像到另一個磁盤上,數(shù)據(jù)在寫入一塊磁 盤的同時會在另一塊閑置的磁盤上生成鏡像文件,在不影響性能情況下最大限度的保證磁 盤陣列的可靠性和可修復性上,只要任何一對鏡像盤中至少有一塊磁盤可以使用,甚至可 以在一半數(shù)量的磁盤出現(xiàn)問題時都可以正常運行,當一塊磁盤失效時,系統(tǒng)會忽略該磁盤, 轉而使用剩余的鏡像盤讀寫數(shù)據(jù)。在某塊磁盤失效而替換新磁盤時,整個RAID1的重建時 間為1個磁盤的鏡像重建時間,且在此期間僅重建的那塊磁盤的性能會下降。
[0014]RAID5將數(shù)據(jù)條塊化地分布于不同的磁盤上,條塊單位為bit或字節(jié),并在所有磁 盤上交叉地存取簡單的奇偶校驗編碼來提供錯誤檢查及恢復。如果一塊磁盤失效,其他磁 盤上的數(shù)據(jù)以及奇偶校驗可以重新產(chǎn)生失效盤中的數(shù)據(jù)。RAID5兼顧存儲性能、數(shù)據(jù)安全和 存儲成本,在某塊磁盤失效而替換新磁盤時,整個RAID5的重建時間為1個磁盤數(shù)據(jù)和校驗 數(shù)據(jù)的時間,由于其數(shù)據(jù)需要其余各個磁盤進行奇偶校驗得到,所以重建速度比RAID1鏡 像重建時間要長得多,并且在此期間整個RAID5中所有磁盤的性能都會嚴重下降。
[0015] 高性能商業(yè)用存儲系統(tǒng)更多的使用RAID10和RAID50。
[0016]RAID10是指先將2塊磁盤一組使用RAID1鏡像,然后將這些組RAID1鏡像再使用 條帶化的方式組合起來,這樣既擁有RAID0的速度,又同時擁有RAID1級別的安全保障以及 重建優(yōu)勢。缺點是單位存儲造價非常高。
[0017] RAID50是指先將一組磁盤使用RAID5鏡像,然后將這些組RAID5鏡像再使用條帶 化的方式組合起來。這樣的組織形式使得RAID50擁有更高的容錯能力,具備更快數(shù)據(jù)讀取 速率,重建速度會更快,且重建的時候性能影響會局限在一組RAID5磁盤中而不會擴展到 整個RAID50磁盤陣列。
[0018] 磁盤陣列是對RAID的物理實現(xiàn),根據(jù)存儲網(wǎng)絡國際協(xié)會(SNIA)的定義,磁盤陣列 子系統(tǒng)(diskarraysubsystem)及可將其磁盤組織起來的控制程序的磁盤子系統(tǒng)和磁盤 本身構成了該實現(xiàn)。在物理的角度,磁盤陣列最為主要的部件是陣列控制器和磁盤柜。
[0019] 陣列控制器主要作用是通過其內置的控制程序實現(xiàn)整個陣列的管理??刂破魇且?種介于主機和磁盤之間的控制單元,配置有專門為I/O進行過優(yōu)化的處理器以及一定數(shù)量 的cache??刂破魃系腃PU和cache共同實現(xiàn)對來自主機系統(tǒng)I/O請求的操作和對磁盤陣 列的RAID算法的計算處理。同時,控制器有一個或多個主機接口接收主機對磁盤陣列的1/ 〇請求,這些主機接口可以直接或間接通過光纖交換機與主機連接(存儲SAN網(wǎng)絡)。此外 各種管理接口,如串口、以太網(wǎng)口等也在控制器上。
[0020] 磁盤柜用于放置磁盤。磁盤通過磁盤接口規(guī)范與控制器進行連接,這樣控制器就 可以將最終主機的I/O數(shù)據(jù)請求按照各個RAID的算法傳達到對應的磁盤上了。商業(yè)化高 性能磁盤陣列中,磁盤柜的接口規(guī)范按照性能遞增主要有SATA、SAS和FC。
[0021] 隨著各個行業(yè)對數(shù)據(jù)存儲、數(shù)據(jù)服務等IT支撐類系統(tǒng)提出了越來越多的要求,無 論是數(shù)據(jù)容量要求還是性能要求都已今非昔比,上PB級別的存儲、上千萬級別的每秒讀寫 次數(shù)(I〇PS,Input/Output Operations Per Second)隨處可見。但是企業(yè)對IT數(shù)據(jù)的服務 要求也并不是單一只需要I0PS性能級服務的。企業(yè)往往在對自己客戶的數(shù)據(jù)支撐服務中, 為了得到良好的客戶感知,需要大大縮短客戶的數(shù)據(jù)查詢、更新等待時間,這類聯(lián)機事務處 理系統(tǒng)(OLTP, On-Line Transaction Processing)類應用需要非常大量的I0PS資源,但 卻相對不需要大量的存儲容量。企業(yè)也會在運營中積累大量的數(shù)據(jù),這類大數(shù)據(jù)中也許蘊 含著對自身有利的商業(yè)信息,所以數(shù)據(jù)分析這類聯(lián)機分析處理(0LAP,On-Line Analytical Processing)系統(tǒng)的需求也非常的普遍,但0LAP不需要太大的I0PS,對服務時間也不敏感, 但是大量的原始數(shù)據(jù)的累積會消耗非常多的存儲容量資源。
[0022] 現(xiàn)有技術存在如下問題:磁盤陣列內部并未考慮過針對以上性能需求和容量需求 的分級服務。比如,較高端的磁盤陣列伴隨著較高端的性能以及較昂貴的擴容成本,為了搭 建一個高性能的0LTP系統(tǒng)往往需要一臺配置全量的控制系統(tǒng),但伴隨著數(shù)量并不多的磁 盤,也許遠遠沒有達到該磁盤陣列擴容磁盤數(shù)量上限的磁盤陣列。特別的,在一些非常高性 能需求的磁盤陣列中(如BOSS的帳務系統(tǒng)),為了提升整個數(shù)據(jù)庫的性能,需要將一個VG 跨越更多的磁盤來保障性能。在如此的環(huán)境下,該系統(tǒng)需要的磁盤數(shù)量不是由實際需求容 量決定的,而是由性能決定的。此時,磁盤陣列為了滿足應用性能所需磁盤數(shù)量往往是大于 應用實際容量所需的磁盤數(shù)量,這樣就會空余一部分容量出來。但是,如果將其它應用部署 在空余容量部分會造成對原有應用的I0PS競爭,損害其性能的同時自己的性能也無法得 到保障。因此,在實踐中,這部分容量常常被用來部署低I0PS消耗的應用。即使如此,有時 低I0PS的應用在高I0PS的1/0訪問負荷非常大時,仍然會對性能產(chǎn)生影響。所以,有時在 為了絕對保障高I0PS應用的性能,而不部署任何應用在空余容量部分,任其浪費掉。
[0023] -個0LAP系統(tǒng)至少需要上百TB的容量,而控制器則需要半量的配置性能就已足 夠,這種環(huán)境下,也許磁盤柜的磁盤數(shù)量已經(jīng)達到了該磁盤陣列的最大擴容上限,而控制器 配置性能卻僅僅是滿性能的幾分之一而已。
[0024] 當一個磁盤陣列遇到以上兩種情況時,其實均沒達到一個最佳的可用性能/實際 性能比。事實上,在很多企業(yè)中,針對這兩種情況一般都是購買同樣的但是兩套獨立的磁盤 陣列來滿足需求。
【發(fā)明內容】
[0025] 本發(fā)明要解決的技術問題是提供一種設計磁盤陣列的方法和存儲裝置,現(xiàn)有技術 中,無法兼顧0LTP和0LAP對于磁盤陣列的需求的缺陷。
[0026] 為解決上述技術問題,本發(fā)明的實施例提供一種設計磁盤陣列的方法,磁盤陣列 包括多個磁盤,磁盤具有高性能區(qū)域和高容量區(qū)域,方法包括:確定磁盤陣列中磁盤的單盤 容量n,以及確定磁盤陣列中磁盤的數(shù)量N;根據(jù)區(qū)域數(shù)據(jù)記錄技術將每一個磁盤的扇區(qū)劃 分為磁盤內圈區(qū)域和磁盤外圈區(qū)域,磁盤內圈區(qū)域是高容量區(qū)域,磁盤外圈區(qū)域是高性能 區(qū)域,通過對高容量區(qū)域和高性能區(qū)域的扇區(qū)進行條帶化,形成高容量的條帶化單位和高 性能的條帶化單位;依據(jù)不同的磁盤陣列組合原理對磁盤陣列的所有磁盤中的高容量的條 帶化單位進行組合形成高容量陣列區(qū),以及對所有磁盤中的高性能的條帶化單位進行組合 形成高性能陣列區(qū);在磁盤陣列控制器的各磁盤I/O原始隊列之前,增加一個分類的雙緩 沖隊列,所述雙緩沖隊列中的每一個緩沖隊列基于反饋算法控制該緩沖隊列中的I/O訪問 到達所述原始隊列的速率,從而控制所述原始隊列中的I/O訪問對高容量陣列區(qū)或者高性 能陣列區(qū)的磁盤進行訪問的I/O速率。
[0027] 所述的方法中,確定磁盤陣列中磁盤的數(shù)量N包括:根據(jù)陣列高容量區(qū) 域的容量V,磁盤陣列中磁盤的單盤容量n,計算出滿足陣列高容量區(qū)域的容量 需要的磁盤數(shù)量N'i二pF/nl則滿足陣列高性能區(qū)域的性能需要的磁盤數(shù)量 P是陣列高性能區(qū)域應滿足的每秒讀寫次數(shù) I0PS,P是單磁盤I0PS,a是緩存的命中率,0是該高性能區(qū)域讀操作比例;確定磁盤陣 列中磁盤的數(shù)量N取N7與N〃中的最大值。
[0028] 所述的方法中,根據(jù)區(qū)域數(shù)據(jù)