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