肖詩伯, 郭秀英
(1. 川北醫學院 圖書館, 南充 637000; 2. 西南石油大學 經濟管理學院, 成都 610500)
隨著高校圖書館數字資源的存儲海量化、數據類型非結構化、讀者訪問持續性、高并發性以及云計算與云存儲、大數據等新技術在高校圖書館中逐步應用。這對數據存儲介質的容量、容錯能力、響應速度、可靠性、擴展性、管理和運維手段等提出了越來越高的要求。傳統旋轉磁盤因讀寫效率低、功耗高、空間需求大、故障隨機等缺點,逐漸無法滿足新時期下圖書館高性能的數據存儲需求,進而影響到讀者的資源獲取速度,館員對讀者主動服務,館內核心數據的管理。隨著閃存技術的成熟,采用高性能閃存介質來存儲數據,可大大提高圖書館服務質量和數據安全性。
當前,高校圖書館的存儲系統,從業務應用方面看主要部署于:(1)圖書館傳統業務管理:如圖書、文獻、古籍、資料等傳統資源的購借存閱數據的存儲和資產管理。這些數據屬于圖書館核心數據,對存儲系統的容錯能力、擴展性有著特殊要求。(2)數字資源存儲與服務:如自建數據庫、外購數據庫、web資源、音視頻、電子圖書圖片、隨書光盤等數字資源的存儲管理。這些業務屬于圖書館數字化服務范疇。它對存儲系統的響應速度、可持續性、并發性、存儲容量等有較高的要求[1]。(3)各類服務設施的數據存儲:如電子閱覽室、視頻監控、自助存包機、借還機等設備的數據存儲和管理。這些業務屬于圖書館增值服務范圍。上述系統對存儲系統有不同的需求。隨著圖書館大數據分析的來臨,存儲系統需要儲存海量非結構化數據;支撐分布式計算;承載機器學習等智能算法的高時間復雜度、空間復雜度的計算壓力[2]。這對存儲系統在響應速度、容錯能力、擴展性和傳輸能力方面提出了更高的要求。而目前幾乎均用磁盤作為存儲介質,難以適應要求。
傳統磁盤,主要為普通SATA磁盤和高性能SAS磁盤兩種。但磁盤有局限性:低性能、低擴展性。普通SATA磁盤轉速為7500,IOPS(每秒讀寫操作次數)最高為75至140;而高性能SAS磁盤轉速為15000,IOPS最高也僅為175至210。要提高IOPS,縮短尋道時間,只能不斷增加磁盤數量,將數據分散存放,利用多個磁頭同時讀寫數據以提高吞吐量。另外,磁盤只能部分填充,導致空間利用率低;同時磁盤故障是隨機的、不可預測的,只能用Raid架構來重復備份數據以保證安全。面對圖書館不斷增長的數字資源存儲規模及高讀寫速率需求,簡單增加磁盤數量的方式因低性能、高空間占用、高功耗、高冷卻成本和資金成本而逐漸變得不切實際,選擇新存儲介質以滿足苛刻的海量數據讀寫需求成為唯一出路。
在數字資源應用場景中:數字資源具有種類多、容量大、流量高等特點。在教學研等環境下,面對高校師生數以萬計的高并發、長持續、高流量訪問文獻、多媒體等服務器,磁盤存儲系統的低吞吐量將使讀者處于長等待狀態中,增加教學研時間成本,降低讀者體驗。在圖書館關鍵系統存儲場景中,管理員對數據庫的增刪改檢及備份等操作也會因磁盤的低吞吐量增加等待時間、降低工作效率、影響工作質量。
閃存又稱固態硬盤,不含有機械活動部件,通過對其內部的微小浮閘晶體管進行充放電實現1bit的“0”和“1”數據存儲,高級的晶體管單元可注入高低不同的電壓進行區別以實現2至3bit的數據存儲,其中浮閘(Floating Gate)是基于電氣絕緣層獨立的,能保證存儲的電子長年不會逸散。不過晶體管經過大量充放電后,其物理特性會出現老化而無法存儲電子,但是導致老化失效的充放電次數是在生產晶體管時就能測試出的。因此,后期科學合理的安排各晶體管充放電,避免集中對某區域晶體管反復充放電,實現對晶體管的漸進式消耗,實現壽命最大化并保護數據安全。相比基于物理位移的旋轉磁盤,閃存體積更小,容量從100G至TB級均有,單張企業級閃存盤IOPS達7萬以上,讀寫速度達500MB/S以上,功耗10瓦以下,能適應高溫及劇烈震動。隨著閃存芯片技術不斷創新,容量不斷增加,價格持續降低,閃存介質逐步進入到服務器端、大規模計算的存儲領域中。傳統磁盤與閃存盤性能參數對比,如表1所示。

表1 磁盤與閃存盤性能參數對比
閃存在服務器端存儲中相比傳統磁盤具有4大性能優勢:(1) 隨機讀方面:與內存類似,都以芯片存儲數據。同時讀取多個數據的指令時,無論數據在芯片中存放的物理位置有多遠,都能夠以相同的速度提供[3]。同時,閃存是讀取指定數據所在整塊的內容,當第二次讀取數據的存放位置與第一次數據的存放位置都在同一個塊中時,第二次可直接從緩存或內存中使用數據。(2) 吞吐量方面:目前閃存系統IOPS高達數萬,比磁盤高兩個數量級以上。隨著閃存芯片密度增加,吞吐量還有很大增長空間。(3) 延時方面:閃存設備的讀取延時在50至100微秒之間,比磁盤快100倍。(4) 并行方面:閃存驅動器可以提供多個控制器或者單個高性能控制器。能夠滿足采用多線程及內核的數據庫方案[4]。
首先分析高校圖書館各類數字化服務對存儲設備的不同讀寫壓力。可用五年間每日隨機填充指標(RFPD, Random Fill Per Day)來評價存儲需求,以選擇不同的閃存配置方案。在圖書館中的讀密集和讀寫混合的模式中,閃存能實現更快資源索引和傳遞,在訪問高并發中實現高速響應,解決讀者等待。在寫密集模式中,閃存的高IOPS可為核心業務數據庫提供高速修改、備份和災難恢復速度。
對于閃存和服務器硬件的組合配置來看,主要有3種方案:一是將閃存安裝在服務器PCIe總線上[5];二是將閃存與磁盤組成混合存儲后連接服務器硬件;三是組建全閃存陣列連接服務器硬件。這3種方案各有特點、各有適合的圖書館應用場景。
該方案是將帶有PCIe接口的閃存直接連接在服務器主板的PCIe槽上[6],單臺服務器可安裝1張或多張PCIe卡。這是離CPU和應用程序最近的距離。在這個路徑中,沒有適配卡、網絡纜線、存儲控制器和交換機等。短距離可加速讀寫,減少延時,擴大訪問帶寬等所有I/O操作。該模式會消耗少量服務器硬件資源。
中小數據存儲對PCIe閃存的選擇:在圖書館數據庫應用場景中,針對中小數據規模的事務處理單臺服務器,如圖書館核心業務服務器、中小型數據庫資源服務器,應用PCIe閃存存儲數據,其性能會明顯優于連接DAS等方案[7]。因為:一方面PCIe閃存省去了光纖通道,通過板卡內置高效傳輸通道直接實現與CPU之間的高性能數據傳輸;另一方面,在執行應用負載并存儲數據業務上,PCIe閃存性能更高、延遲和協議成本更低。
大規模存儲對PCIe閃存的選擇:在圖書館存儲中心應用場景中,雖然數據是通過陣列用SAN或NAS模式連接服務器,PCIe閃存無法提供海量存儲空間;但PCIe閃存在服務器端可作系統高速緩存。可把基于PCIe閃存的高速緩存看作內存的延伸,縮短應用到共享存儲的延時,使數據傳輸與處理更加直接、高效。其性能可獲得幾倍提升,還能節省額外的光纖及以太網資源。若將目錄和熱文件“固定”到高速緩存,則可有效加速數據庫。
電子閱覽室存儲對PCIe閃存的選擇圖書館電子閱覽室虛擬桌面VDI應用場景中,對于單臺服務器可用1或2張PCIe閃存作為服務器高速緩存,配合SSD閃存盤作硬盤,IOPS能達30萬以上,可大大提高吞吐量,更快的承載客戶端應用。
PCIe閃存部署成本:目前PCIe閃存多采用MLC架構,單張卡的容量在400G至3.2T之間,成本約1至7美元/GB。
該方案是閃存+SATA磁盤的組合存儲模式,兩者通過閃存虛擬加速設備連接服務器及相互通信。在自動層級技術下先由緩存或NAND分層軟件層處理讀寫請求,再分配到閃存或磁盤中作業。在這種方案中根據閃存與磁盤的不同特性進行分工,閃存不單作為附加的存儲空間,而是I/O鏈路中高性能組成部分。
圖書館對混合存儲的選擇方案:圖書館各類中大型存儲場景均可部署混合存儲系統。關鍵是分析圖書館客觀條件、讀者訪問特性、數據讀寫頻率等特點,分開存放相關數據到閃存或磁盤,應用方案有:(1) 以高讀者訪問速度為側重的方案:可將閃存作為磁盤緩存,以補償磁盤緩慢的讀取速度。通過算法動態分析和自動處理[8-9],先將所有寫操作都寫進磁盤中,再分析數據的讀取頻率,將磁盤中的熱門數據轉移到閃存上,并實時監控數據熱度,及時置換閃存中熱度下降的數據。(2) 以硬盤壽命為側重的方案:可在閃存中存儲讀操作頻繁、寫操作少的數據[10]。在磁盤中存放寫操作頻繁、讀操作較少的數據。若存放文獻、多媒體等讀密集型數據,在保證閃存壽命的同時,也能提供高訪問速度。(3) 以低成本為側重的方案:可在閃存中存放小文件數據,在磁盤中存放大文件數據。這種方案利用當前單位GB下,磁盤價格相對低廉的特性,能最大降低存儲系統整體成本。不管采取哪種配置,對運行在混合存儲系統上的操作系統和應用程序,一定要考慮到傳統磁盤與閃存的性能差異:在存儲延遲過程中,在存儲設備、軟件、CPU之間達到整體一致性。
混合存儲部署成本:目前閃存和SAS磁盤價格較接近,SATA磁盤價格較低,采取混合存儲方案的成本僅會略高于磁盤陣列,而性能有幾倍的提升。以2016年第1、2季度的價格參考[11]:混合存儲前期成本在1.6至24美元/GB。運用重復數據刪除和數據壓縮等技術優化后,能降至0.6至8美元/GB。而傳統全磁盤陣列系統,成本在0.5至15美元/GB。
全閃存陣列(AFA)是采用閃存介質而無磁盤構成的獨立存儲陣列,多個閃存盤通過控制器連接服務器。作為對磁盤陣列的替代,AFA同樣能運行在DAS、NAS和SAN模式中。圖書館各類規模的數據存儲均可運用全閃存陣列。
核心業務數據庫對全閃存陣列的選擇:在圖書館核心業務數據庫運用場景中,AFA不僅能提供大容量存儲空間,又能提供高IOPS來滿足數據庫管理需求,如批量檢索、修改和維護;還能對數據進行卷管理、快照和復制等功能。在SAN下運用全閃存陣列時,可單獨將索引存儲在RAM中,數據存儲在閃存中[12]。先通過RAM快速查找索引,然后通過多個閃存盤并行檢索數據;同時在RAM中更新索引[13],可減少對閃存擦寫次數。配置全閃存陣列的數據庫備份時間為磁盤陣列的1/6。讓圖書館工作人員更高效的完成核心數據的管理和運維工作資源發布類數據庫對全閃存陣列的選擇:對圖書館資源發布類數據庫而言,面對師生高并發和持續訪問及后臺管理作業,AFA的高IOPS能充分滿足服務器的I/O需求,以減少讀者的時間成本。非結構化數據是資源發布類數據庫的特色,可用閃存控制器來處理,以取代傳統磁盤在數據庫引擎層面的工作,閃存控制器不僅效率更高,還減少了服務器硬件壓力。通過對各文件標記、壓縮等處理后,再存入閃存盤,這樣不僅能節省空間容量,提高傳輸速度,還能降低閃存擦寫頻率。
電子閱覽室存儲對全閃存陣列的選擇:在圖書館電子閱覽室虛擬桌面VDI應用場景中,因不需TB級的大容量存儲,可運用數個小容量閃存盤組建陣列,以高IOPS滿足客戶端需求。基于全閃存陣列的服務器能輕松應對數臺桌面同時創建時引起的“啟動風暴”,以高開機速度和運行速度服務于讀者,而這對磁盤介質來說很難實現。
全閃存陣列部署成本:從最近趨勢看,全閃存陣列前期成本在3至15美元/GB。運用重復數據刪除、自動精簡配置、數據壓縮等已成熟的存儲效率相關技術壓縮優化后,能降至1至8美元/GB。再結合單位美元/IOPS、單位GB/IOPS、功耗和制冷能耗綜合衡量成本。最終年均每GB平均成本將有很大性價比。
隨著大數據分析、云計算在高校圖書館逐步應用,這些系統多采用Hadoop等分布式系統,運行在Linux上;數據庫多采用Hbas、Cassandra等。圖書館在構建分布式集群時,單機可將PCIe閃存與低頻CPU匹配。運用軟件層面的閃存轉化層管理各PCIe閃存中的數據,采用遠程過程調用方式實現分布式數據通信。這取得均衡性能的同時,有效降低整體系統能耗。在分布式系統硬件層和軟件層中設計并實施適合閃存讀寫調度、協議轉換等的處理模式(不同于現行廣泛使用的基于傳統磁盤模式的I/O等待式處理流),以降低訪問延遲,提高帶寬,滿足圖書館大規模數據分析。
根據圖書館數據存儲特色,為提高多個同時運行的閃存盤整體壽命,可從以下兩方面設計:
壽命方面:相比磁盤故障的隨機、無法預知性,閃存壽命是可監控和干預的。閃存內部由無數微小芯片單元(硅氧化物與浮置柵極)組成,對其充放電來實現數據寫入或擦除。多次充放電后,通過的電荷將致其氧化而使芯片單元失靈。目前1個芯片單元的擦寫壽命為1萬次(MLC方案)或10萬次(SLC方案)[14]。圖書館可兼用全局磨損均衡與反磨損均衡[15-16]兩種技術。在多個閃存盤同時運行的前期運用全局磨損均衡方案,使各閃存盤磨損進度均衡。進入中期后采用反磨損均衡方案,使各閃存盤出現漸進式差異磨損,讓閃存在壽命后期有計劃的逐個磨損逐個更換,避免同時壞掉多個閃存盤而導致數據丟失,以保證閃存系統整體穩定性、可靠性和數據的安全性。
備份方面:全閃存陣列無需采取Raid模式,而利用適合閃存高性能的專用數據保護算法,將存儲空間分為業務數據區和備份區。采用指紋、鏡像壓縮等手段快速壓縮業務數據來形成備份,其空間需求僅為業務數據的5%。這種備份方案一方面能最大增加閃存盤空間利用率;另一方面因其體積小可快速恢復,能充分應對意外閃存故障。
根據圖書館中小型單機數據庫業務場景,以圖書館關鍵業務服務器為例,設計一個數據處理模型:將1個70G的關系型數據庫連續16次復制、壓縮和刪除。采用單張PCIe閃存卡與單塊1.5K高性能SAS磁盤對比測試,測試中服務器硬件配置相同。通過CPU監控軟件觀察作業效率,測試結果,如圖1所示。


圖1 基于閃存與磁盤的CPU作業效率對比圖
實驗中基于磁盤的CPU其60%時間在等待讀寫,而基于閃存的CPU讀寫等待時間僅為15%。PCIe閃存的IOPS為20萬,數據庫復制時間從磁盤的10分鐘縮至2分鐘。可見運用PCIe閃存能降低CPU等待時間,提高利用率,讓硬件承載更多的計算任務,進而減少服務器總體數量及購買軟件許可費用。
根據圖書館大規模數據存儲場景,以圖書館多媒體資源數據庫為例,設計一個數據處理模型:空間需求30T、4萬IOPS的存儲負載。分別設計1套高性能SAS磁盤陣列和1套全閃存陣列(AFA)進行對比測試,結果如表2所示。
可見:(1) 性能方面:全閃存陣列IOPS成倍增長,服務器具有更大的吞吐量,可大幅提高檢索下載、讀者瀏覽、多媒體和業務管理等各類數字服務的速度,提升讀者體驗。(2) 運維和管理方面:全閃存陣列機柜的空間占用僅6個U,相對磁盤陣列空間節省76%,大幅度降低了數據中心的空間需求,可節省不動產成本。(3) 功耗方面:在滿負荷情況下全閃存陣列僅為220瓦,相比磁盤陣列可節省94.5%的電力供應,若在待機狀態下功耗更可降至20瓦內。在此功耗下全閃存陣列整體的制冷電力需求也將大幅度降低,可減少長期運行成本,在節能減排方面作出巨大貢獻。

表2 全閃存陣列與磁盤陣列配置對比數據
根據圖書館中等規模電子閱覽室VDI的應用場景,設計同時啟動100臺Win7桌面的承載模型。閃存陣列采用20張120GB固態硬盤,能提供60萬IOPS。通過VmwareView軟件評估:當新創建1個Win7虛擬桌面時IOPS峰值為4K,通過桌面克隆100臺虛擬桌面全部啟動時間為11分鐘,最快桌面啟動時間可為5秒。
閃存存儲系統是近幾年新興的存儲模式,其成本和可靠性已獲得認可。鑒于高校圖書館應用閃存的案例很少,因此本文根據高校圖書館各類數字化服務和管理中對存儲設備的高并發、高持續需求。分析了主流閃存系統如何結合高校圖書館不同應用需求來部署,以助圖書館在部署閃存系統時的選型。需要注意的是單一類型的閃存系統無法滿足所有需求場景,部署時要考慮存儲場景特點與閃存系統軟硬件的優化,以及服務器層面的文件作業模式優化,最終實現數據與CPU之間的高速交互,充分發揮閃存特性。閃存對已部署的傳統存儲系統并不具有破壞性,可采取切換或并行的運行方式。高校圖書館通過部署閃存系統能大大提高服務敏捷性,減少讀者與管理人員的等待,提高教學研效率。隨著圖書館對存儲的性能需求不斷提高,閃存技術的不斷發展,閃存存儲系統定能為高校圖書館數字化建設擔負堅強的支撐和切實的保障。