,,
隨著醫(yī)學(xué)圖書館信息化的不斷發(fā)展,數(shù)據(jù)量持續(xù)快速增長,數(shù)據(jù)的存放、管理、利用成為難題[1]。數(shù)據(jù)存儲也面臨諸多問題,如存儲利用率低,數(shù)據(jù)僵化在某些硬件組件里,難以支持不斷變化的應(yīng)用服務(wù)級別,部署和調(diào)整存儲資源流程復(fù)雜,自動化程度低,對應(yīng)用請求的響應(yīng)速度慢等。隨著基礎(chǔ)架構(gòu)的日益復(fù)雜和業(yè)務(wù)應(yīng)用的不斷增多,醫(yī)學(xué)圖書館傳統(tǒng)存儲架構(gòu)面臨的壓力,以及應(yīng)對這種壓力并從根本上解決當前存在問題的需求與日俱增,軟件定義存儲(software defined storage,SDS)應(yīng)運而生。
軟件定義就是將原來高度耦合的一體化硬件進行解耦,形成不同的抽象層,通過API接口實現(xiàn)原來必須由硬件才能提供的功能,由管理軟件自動控制進行硬件資源的部署和管理,為應(yīng)用提供服務(wù)[2]。
軟件定義存儲作為一個不斷進化的概念,是指存儲資源由軟件自動控制,從工業(yè)標準服務(wù)器的存儲中抽象出來,通過軟件控制層面實現(xiàn)存儲的自動化和池化,保證數(shù)據(jù)的存儲訪問能在一個精準的水平上更靈活地管理,通過基于策略的自動化管理進行部署和供應(yīng),實現(xiàn)應(yīng)用感知,最終達到存儲即服務(wù)的目標[3]。
傳統(tǒng)意義上的存儲大多數(shù)是集中存儲(以外置磁盤陣列為主流),邏輯卷一旦創(chuàng)建,就不能更改(如更改RAID、增加大小),除非允許數(shù)據(jù)全部丟失,刪除這個邏輯卷再重新創(chuàng)建一個新的邏輯卷。邏輯卷與存儲的前端端口、后端端口、物理磁盤都緊密地綁定在一起,耦合度非常高。在這種情況下,即使是為多個業(yè)務(wù)應(yīng)用提供存儲資源的集中存儲,也在內(nèi)部形成了一個個孤島,孤島的存儲資源不能相互共享,數(shù)據(jù)不能自由流動。因此存儲首要解決的問題就是解耦,將邏輯卷與硬件解耦,打破孤島之間的疆界,讓存儲資源能夠共享,數(shù)據(jù)能夠在各個存儲的硬件組件間自由流動。
軟件定義存儲將存儲陣列與硬件剝離開來,實現(xiàn)虛擬存儲陣列。虛擬存儲陣列能夠為業(yè)務(wù)應(yīng)用提供可靠、豐富的存儲服務(wù),支持NAS和SAN協(xié)議、支持動態(tài)存儲分級、重刪、壓縮、精簡配置、快照和遠程復(fù)制等功能。將原本綁定在物理控制器的存儲控制器操作系統(tǒng)解耦出來,形成虛擬存儲陣列,將同類硬件的不同細節(jié)的部分隱藏起來,并與上層隔離,這樣上層就不必因為下層硬件的不同而修改。因此,增加了可移植性和靈活性。
軟件定義存儲通過池化使存儲資源打破以往各自為政的割據(jù)局面,不再受硬件的限制,存儲資源能夠被自由地分配、使用和調(diào)度。池化包括存儲虛擬化和存儲標準化。
存儲虛擬化通過對不同類型的物理存儲介質(zhì)進行聚合,構(gòu)成一個共享的存儲池,所有的存儲資源在一個存儲池進行統(tǒng)一管理和分配[4]。存儲虛擬化改變了存儲的調(diào)配和管理方式,存儲池基于存儲策略分配存儲資源,降低了存儲管理的復(fù)雜度,實現(xiàn)了存儲資源的自動化管理和分配。存儲虛擬化可以在系統(tǒng)的多個層面實現(xiàn),主要分為基于主機的虛擬化、基于存儲設(shè)備的虛擬化和基于網(wǎng)絡(luò)的虛擬化。
存儲標準化的提出源于存儲行業(yè)各廠商的存儲管理各自為政,缺乏互聯(lián)互通,使用戶的存儲管理面臨巨大的挑戰(zhàn)。用戶一直希望通過存儲標準化使各存儲廠商解決互操作性的問題,即各家的存儲管理軟件都能管理并靈活調(diào)用其他異構(gòu)存儲的資源。
軟件定義存儲能夠根據(jù)業(yè)務(wù)應(yīng)用的合規(guī)性、高可用性、工作負載等要求,通過存儲API,自動地按需部署存儲資源(如塊存儲邏輯單元甚至RAID子設(shè)備、文件系統(tǒng)共享、存儲對象等),提供業(yè)務(wù)應(yīng)用所需的數(shù)據(jù)服務(wù)級別。
軟件定義存儲包含兩個部分:一部分是控制平面(Control Plane),實現(xiàn)基于策略或者基于應(yīng)用的存儲資源分配、變更和管理;另一部分是數(shù)據(jù)平面(Data Plane),負責(zé)數(shù)據(jù)的存放、處理和優(yōu)化。這兩個平面的逐漸分離,使軟件定義存儲逐漸呈現(xiàn)出更豐富的API供各類系統(tǒng)平臺調(diào)用,實現(xiàn)更高程度的自動化。軟件定義存儲不僅提供了高效、敏捷、靈活的存儲架構(gòu),提高了存儲利用率,同時也降低了存儲基礎(chǔ)架構(gòu)運維的復(fù)雜度和成本,使用戶有更多的精力去關(guān)注上層應(yīng)用或業(yè)務(wù)系統(tǒng)的創(chuàng)新。
軟件定義存儲整體分為控制平面和數(shù)據(jù)平面兩大類??刂破矫尕撠?zé)數(shù)據(jù)的流向、調(diào)度,存儲服務(wù)的調(diào)用,存儲策略的設(shè)定和分發(fā);數(shù)據(jù)平面負責(zé)數(shù)據(jù)的處理、優(yōu)化,存儲功能的提供和實現(xiàn)(圖1)。
圖1 軟件定義存儲的分類
在整個軟件定義存儲體系架構(gòu)中,控制平面的實現(xiàn)難度最大,需要考慮和各種數(shù)據(jù)平面存儲的兼容性,復(fù)雜度非常高。在軟件定義存儲控制平面這一層,全球IT廠商中參與研發(fā)并在市場上銷售的屈指可數(shù),比較有代表性的有VMware SPBM、OpenStack Cinder和EMC ViPR。
VMware采用基于存儲策略的管理(Storage Policy Base Management,SPBM)模式,SPBM將存儲資源池化后,借助VMware虛擬化軟件的諸多高級功能實現(xiàn)存儲資源的動態(tài)調(diào)配,或是虛擬磁盤的備份、歸檔和容災(zāi);Cinder作為OpenStack云平臺中的塊存儲服務(wù)組件,通過抽象和自動化傳統(tǒng)塊存儲設(shè)備,提供軟件定義塊存儲;EMC ViPR首先將物理存儲資源進行存儲虛擬化,然后以服務(wù)目錄(Service Catalog)的方式組織并提供存儲空間和服務(wù)[5]。
在軟件定義存儲數(shù)據(jù)平面這一層,存儲種類數(shù)量繁多,構(gòu)成比較復(fù)雜,組成部分也較多。數(shù)據(jù)平面主要包括商用硬件(Based on Commodity Hardware)、傳統(tǒng)外置磁盤陣列(Traditional External Storage)和云存儲/對象存儲(Cloud/Object Storage)。
基于商用的硬件主要包括基于服務(wù)器的分布式存儲(Server SAN)和超融合(Hyper Converged)。Server SAN是包含閃存盤的、具備橫向擴展特征的軟件定義存儲。這種分布式存儲的特點是高度分布式(去中心化、無共享),采用標準的商用硬件(如服務(wù)器)形成一個全局共享存儲池,能夠在線進行橫向擴展。超融合指的是基于標準的X86服務(wù)器,在每個物理服務(wù)器節(jié)點通過虛擬存儲設(shè)備(Virtual Storage Appliance,VSA),管理節(jié)點內(nèi)的各類磁盤,并與其他節(jié)點中的VSA一起構(gòu)建一個集群的分布式存儲。傳統(tǒng)外置磁盤陣列包括SAN存儲或者NAS存儲,其實現(xiàn)方式有兩種:一是與控制平面對接,二是通過研發(fā)去逐步實現(xiàn)抽象、池化、自動化。云存儲/對象存儲作為數(shù)據(jù)平面的組成部分,只涵蓋作為數(shù)據(jù)平面的形態(tài),以后端存儲的身份為云平臺上的應(yīng)用提供存儲資源。
隨著物聯(lián)網(wǎng)、萬聯(lián)網(wǎng)(Internet of Things,IoT)的發(fā)展,數(shù)據(jù)的增長速度在很多時候超越了摩爾定律(即半導(dǎo)體芯片上集成的晶體管將每一兩年翻一番)。作為醫(yī)學(xué)信息集散地的醫(yī)學(xué)圖書館,數(shù)據(jù)的增速將超過存儲容量的增速,這意味著優(yōu)化數(shù)據(jù)的存放,提高存儲利用率,將成為醫(yī)學(xué)圖書館存儲建設(shè)應(yīng)該考慮的首要問題[6]。在存儲的諸多要求中,簡單易用、方便擴展對于醫(yī)學(xué)圖書館存儲管理工作人員而言尤為重要。
醫(yī)學(xué)圖書館當前多采用SAN或NAS的存儲架構(gòu),存儲設(shè)備多為磁盤陣列和磁帶庫,普遍存在資源浪費、難以共享等問題??紤]到未來業(yè)務(wù)的發(fā)展,以及最高負載時應(yīng)用對系統(tǒng)資源的需求,采購存儲設(shè)備時往往會選擇高出實際需求很多的硬件配置[7]。傳統(tǒng)模式下,業(yè)務(wù)應(yīng)用所需資源遠低于其硬件配置資源,導(dǎo)致存儲設(shè)備利用率低,造成資源浪費,而且無法共享給其他應(yīng)用使用,擴展性和可管理性都存在問題。
隨著業(yè)務(wù)的發(fā)展及信息系統(tǒng)的應(yīng)用,醫(yī)學(xué)圖書館需要購置大量的存儲空間用于存放系統(tǒng)及海量數(shù)字化數(shù)據(jù)[8]。由于數(shù)據(jù)量大、硬件種類繁多、系統(tǒng)交互頻繁,使存儲系統(tǒng)管理復(fù)雜,傳統(tǒng)的存儲架構(gòu)難以滿足需求。云計算、移動互聯(lián)、物聯(lián)網(wǎng)、大數(shù)據(jù)等技術(shù)在醫(yī)學(xué)圖書館的應(yīng)用對醫(yī)學(xué)圖書館現(xiàn)有的基礎(chǔ)設(shè)施,包括計算、存儲、網(wǎng)絡(luò)等資源都提出了更高的要求,特別是存儲架構(gòu)必須具備足夠的靈活性和可擴展性。軟件定義存儲將存儲資源虛擬化,形成一個不受物理系統(tǒng)限制的存儲資源池,存儲資源通過軟件進行部署和供應(yīng),實現(xiàn)存儲架構(gòu)的自動化,從而能夠最有效地利用資源,極大地降低管理運維成本。通過軟件定義的存儲,能夠降低存儲管理的復(fù)雜度,提高存儲利用率,降低總體擁有成本,提升系統(tǒng)性能,使存儲系統(tǒng)發(fā)揮更大的價值。
軟件定義存儲將多臺標準服務(wù)器組成的集群內(nèi)的本地存儲、直連存儲等存儲資源進行整合,形成一個全局共享存儲池。軟件定義存儲采用彈性橫向擴展和數(shù)據(jù)冗余(副本)的方式,提供與集中存儲(外置磁盤陣列)相媲美的存儲服務(wù)和高級功能。軟件定義存儲體系結(jié)構(gòu)如圖2所示。
圖2 軟件定義存儲體系結(jié)構(gòu)
如圖2所示,軟件定義存儲通過匯聚各個服務(wù)器的存儲資源形成一個共享存儲池,向上層系統(tǒng)和應(yīng)用提供服務(wù)。相對于傳統(tǒng)存儲陣列,軟件定義存儲具有更好的擴展性、可靠性及靈活性。軟件定義存儲可以根據(jù)業(yè)務(wù)需求進行橫向擴展(增加集群存儲服務(wù)器節(jié)點數(shù)量),采用多副本的數(shù)據(jù)保護機制保障系統(tǒng)的高可靠性,確保系統(tǒng)出現(xiàn)故障時不會造成上層業(yè)務(wù)的中斷,允許存儲服務(wù)器靈活地采用不同硬件配置,適配對存儲資源的不同需求。
4.3.1 異構(gòu)存儲統(tǒng)一管理
軟件定義存儲通過將異構(gòu)存儲資源進行抽象化,創(chuàng)建成一個簡單的存儲池,屏蔽了底層異構(gòu)存儲的復(fù)雜性,將傳統(tǒng)的存儲設(shè)備級操作轉(zhuǎn)變成面向存儲資源的操作。用戶能夠在一個平臺中實現(xiàn)存儲資源的集中管理,根據(jù)自動化的策略添加、調(diào)配和共享存儲資源。通過定義不同種類的虛擬存儲池,可以滿足適合特定工作負載所需的存儲的性能或功能。軟件定義存儲能夠向用戶提供快捷、自助的存儲服務(wù),幫助用戶快速地訪問存儲資源,而不用等上幾天甚至幾周。而且它還幫助用戶節(jié)省了管理時間,從而將更多精力專注在業(yè)務(wù)應(yīng)用上。
4.3.2 存儲資源自動化調(diào)配
目前的存儲設(shè)備大多是按照過量配置的方式進行部署的,容量和性能都極大地超過了實際需求。由于部署和擴容周期長,無法按照存儲的實際使用情況減少資源。通過軟件定義存儲,實現(xiàn)存儲資源的自動化調(diào)配,用戶可以快速創(chuàng)建存儲資源,在幾分鐘內(nèi)就可以投入使用。通過基于策略的自動化,可以實現(xiàn)靈活地擴容和縮容,提高存儲利用率。此外,通過自動化,降低存儲管理的復(fù)雜度,消除由于手工操作給整個存儲資源穩(wěn)定性帶來的風(fēng)險。
4.3.3 可擴展性
軟件定義存儲易于擴展,具有較強的橫向擴展能力。傳統(tǒng)存儲架構(gòu)底層采用共享存儲設(shè)備,共享存儲設(shè)備的擴展性受限于其控制單元。隨著業(yè)務(wù)的發(fā)展,數(shù)據(jù)量不斷增加,存儲單元的擴展必然伴隨著存儲性能的下降。軟件定義存儲采用超融合架構(gòu),由若干作為節(jié)點的存儲服務(wù)器組成,每個節(jié)點均包含控制單元和存儲單元,擴展時僅需要添置節(jié)點主機即可,新添置的節(jié)點與原有節(jié)點構(gòu)成新的集群,不僅增加了整個存儲系統(tǒng)的存儲容量,而且提升了系統(tǒng)的整體性能。
4.3.4 高可靠性、高可用性
傳統(tǒng)存儲架構(gòu)底層采用單點的共享存儲設(shè)備,當存儲設(shè)備出現(xiàn)故障時對整個系統(tǒng)而言就是巨大的災(zāi)難。軟件定義存儲在數(shù)據(jù)保護層面采用多數(shù)據(jù)副本機制,當一個節(jié)點出現(xiàn)故障時,仍然可以依靠在其他節(jié)點上的數(shù)據(jù)副本繼續(xù)對外提供服務(wù)。因此,集群中任意一個節(jié)點的損壞都不會對整個系統(tǒng)的正常運行造成影響,從而保障系統(tǒng)運行的高可靠性、高可用性。
4.3.5 靈活性開放性
軟件定義存儲作為開放平臺,可以輕松地增加對新存儲的數(shù)據(jù)服務(wù),或者為軟件基礎(chǔ)架構(gòu)增加新的特性,因此所有的管理功能都開放了API。軟件定義存儲還通過一致的API提供資源的訪問,這些API用于新的數(shù)據(jù)服務(wù)的開發(fā),使軟件定義存儲能夠與各種上層管理軟件,如VMware、OpenStack、Microsoft等相結(jié)合。軟件定義存儲通過開放API,使任何存儲都能夠被存儲廠商或者第三方廠商加入到軟件定義存儲平臺里,而且提供API可以使任何數(shù)據(jù)服務(wù)能夠被輕松地內(nèi)嵌在軟件里[9]。
隨著醫(yī)學(xué)圖書館需求的變化和技術(shù)的變革,軟件定義存儲能夠為醫(yī)學(xué)圖書館提供更高的靈活性和開放性、更強的擴展性、更簡單的管理及更少的投入。從投入成本看,由于省卻了外置磁盤陣列的存儲控制器、存儲光纖交換機和服務(wù)器HBA光纖卡等硬件的投入,可以降低到普通機架式服務(wù)器硬盤的價位[10];而且它將傳統(tǒng)存儲的專用硬件轉(zhuǎn)變成通用硬件,通過融合計算、存儲達到降低成本的目的。從開放性看,只要通過兼容性驗證,它支持業(yè)界標準的硬件,并且能在最快時間內(nèi)采納新的硬件,靈活性極高。從擴展性看,軟件定義存儲支持在線的橫向擴展,能夠自動地在一個資源池里線性地、同時地增加計算資源和存儲資源,使用戶獲得可預(yù)測的性能和容量。軟件定義存儲能夠滿足醫(yī)學(xué)圖書館的業(yè)務(wù)需求,有效提升信息服務(wù)的能力和水平。