在存儲領域,最近一段時間出了太多的新概念,其中包括“軟件定義存儲”、“Server SAN”以及“云存儲”等。很多概念把大家弄的云里霧里,不知所云。那到底什么是軟件定義存儲?什么是Server SAN?什么是云存儲?其實很多存儲廠商都沒有很好的定義,行業也沒有一致的清晰定義。市場、媒體給出的很多都是宏觀的解釋。在這樣一個概念滿天飛的年代,不僅用戶感覺到困惑,而且技術人員同樣會看不清楚未來的技術方向。下面來專門談一談軟件定義存儲,看清楚軟件定義存儲的真實面目
在計算機發展到今天,軟件定義已經不是什么新鮮事物,“software define everything”已經成了一句口頭禪。提起軟件定義xxx,我很早就接觸了軟件定義儀器,并且在這個領域做了很長時間的工作。軟件定義儀器的本質是用計算機來進行數據處理,完成儀器的核心功能。傳統儀器通常采用專用硬件的方式完成核心功能,因此,在研制一臺儀器的時候,重點在于研制這些專用硬件。然后將這些專用硬件拼裝成一臺儀器設備,配上特定的軟件,最后形成一臺儀器。而軟件定義儀器的思想已經將儀器設備切分成通用模塊和計算機兩大部分。通用模塊主要有各類數據采集模塊、信號發生模塊、電源模塊、驅動模塊等。這些模塊是通用的,并且可以通過PXI等儀器總線互連在一起,形成一套硬件設備。在這些通用模塊的基礎上,核心的數據處理算法完全運行在計算機上,以及板載的FPGA上。對于儀器設備,硬件模塊是通用的,不同的儀器具有不同的軟件,這就是軟件定義儀器,也被俗稱為虛擬儀器。從此我們可以看出,軟件定義儀器基于通用的硬件模塊,不同的軟件功能則實現了不同的儀器設備。美國的NI(國家儀器)一直在推動軟件定義儀器。但是,在很多人眼里,這種軟件定義儀器往往演變成了計算機儀器,以為在一臺儀器設備中有了計算機之后,這個儀器設備就成了軟件定義儀器。在沒有理解軟件定義儀器核心思想的時候,往往會感慨“虛擬儀器”真的好“虛”。其實,軟件定義儀器的思想是測試測量行業的一大進步,其強調了信號處理在儀器領域的重要地位,并且將硬件抽象成了幾類通用模塊。傳統只能通過硬件來提高精度的辦法,如今可以采用強大的數字信號處理的方法的來實現。并且在通用硬件的基礎上很快的構建儀器系統,這就是軟件定義儀器的優勢。
軟件定義存儲的思路和軟件定義儀器非常的相似,軟件定義存儲強調的是在通用服務器平臺上通過不同的軟件構建不同的存儲設備。這里的一個關鍵字是通用服務器。在傳統存儲設備中,存儲廠商會自己研制存儲硬件,由于磁盤的IO性能很低,因此,存儲廠商需要自己研制面向IO的存儲硬件。比如說在一臺存儲服務器中需要擴展很多的SATA/SAS接口、擴展硬件RAID功能;如果是高性能的存儲設備,還需要擴展控制器之間的專用互連網絡接口;由于存儲是IO密集型應用,因此,低端存儲甚至可以采用計算性能比較差的CPU進行設計;存儲是追求高可靠性的一種應用,因此,傳統存儲往往追求硬件設計的可靠與穩定,通過提高硬件的可靠性來達到存儲可靠的目的。在這種傳統存儲的思路下,存儲的設計主要分成存儲硬件和存儲軟件設計兩大部分。即使存儲硬件和通用服務器很像,也需要進行特殊定制。
軟件定義存儲的思想就是要將定制硬件的過程從存儲設計中徹底拋棄,存儲就是在通用服務器上的一套軟件,這就是軟件定義存儲這個概念背后的含義。從技術的角度來看,在通用服務器上完成存儲功能,是否和傳統存儲設計方法是相同的呢?為什么在幾年前軟件定義存儲不能橫空出世呢?而為什么直到今天才可以大力推行軟件定義存儲呢?
想要回答這個問題,其實不難。主要原因在于通用服務器性能的發展、網絡技術的發展以及存儲介質本身的發展和進步促進了軟件定義存儲的落地。今天一個普通的服務器就可以安裝1TB左右的內存;2路CPU;至少10多個PCIe3 Lane;在網絡方面基本都會板載兩個10Gbps以太網,8G/16Gbps FC卡也非常的主流;在IO方面,閃存無論在性能還是在容量方面都取得了長足的進步。如果通用服務器、網絡、IO無法達到今天這種水平的話,軟件定義存儲是很難實施的。試想,幾年前,如果我們想要達到1萬IOPS的性能,我們只能通過并發磁盤的方式達到這種目標,為了能使更多的磁盤并發,我們需要大量的SAS/SATA接口,因此,只能定制主板來滿足這種設計。而如今,一塊SSD盤就可以達成這個目標。因此,軟件定義存儲是有其技術基礎來支撐的,計算機水平發展到今天,軟件定義存儲可以落地開花了。
從技術角度來看,和傳統存儲相比,軟件定義存儲中的“軟件”有什么不同呢?傳統存儲中的硬件承擔了一部分系統可靠性的作用,基于通用服務器的存儲沒有專用硬件的護航,勢必需要軟件具有更強的容錯性。因此,在軟件定義存儲實施的過程中,設計者將運行的硬件平臺假設成不穩定、不可靠的。在這些不穩定、不可靠的硬件平臺上完成可靠數據存儲,提供可靠數據服務,那么整個系統的架構需要發生重大變化。因此,軟件定義存儲往往采用分布式的架構,通過分布式的方式提高整個系統的容錯性,通過分布式的方式,將通用硬件引入的不穩定因素降到最低。最近我們看到很多傳統存儲廠商紛紛推出了自己的軟件定義存儲解決方案,這些方案本質上都是將他們的軟件單獨打包進行銷售,直接運行到通用服務器平臺上,冠名“軟件定義存儲”。這些軟件和傳統存儲中的軟件沒有本質上的區別,但是,要知道當初這些軟件在設計的時候,都有“專用硬件/平臺”的假設。一旦脫離這種專用硬件,整個系統的可靠性如何進行有效保證呢?所以,這些匆匆上馬的“軟件定義存儲”并不是這個領域的最佳產品,是一種偷梁換柱的方法。這個和當年將磁盤替換成SSD之后,就宣稱自己是全閃存陣列是一回事??偟膩碚f,一個真正的軟件定義存儲產品,需要面向通用服務器的特征進行設計,通常采用分布式架構,并且綜合閃存、磁盤進行分層存儲,通過軟件的方式不僅獲得最佳的性能、最大的容量,而且達成最低廉的價格。
從市場角度來看軟件定義存儲,這是一種巨大創新。傳統存儲提供專用設備,最多和大型服務器廠商打配合,整合存儲和服務器,共同推動IT系統解決方案。一些不入流的服務器廠商以及大量的OEM廠商根本就進入不了存儲這個領域,沒有機會與存儲廠商進行互惠互利的合作。伴隨著數據時代的來臨,這些廠商都在尋求一條道路能夠切入存儲市場,軟件定義存儲就提供了這樣一種機會。軟件定義存儲的特征是在通用服務器的平臺上構建存儲,那么無論是大型服務器廠商,還是OEM廠商都有機會將自己的設備集成到存儲系統中去。這無疑給大量的硬件設備商打了一針雞血,因此,從這個角度來講,軟件定義存儲不火才怪呢。軟件定義存儲整合了服務器廠商、網絡廠商、存儲軟件廠商,共同打造了一個存儲生態圈。所以,這是一種產品、商業模式上的巨大創新。
從用戶角度來看軟件定義存儲,的確節省了真金白銀,獲得了實惠。軟件定義存儲采用了通用的服務器平臺,通用的平臺在價格上會低于專用平臺。無論是在可維護性方面還是在產品的可選擇面上都有更大的靈活性和空間,自然而然會降低整個存儲系統的成本,從而讓客戶獲利。
有此可以看出,軟件定義存儲不是一個概念,也不是飄在空中的一朵云,而是一個實實在在正在落地開花的一種創新性產品。無論是從技術、產品、市場還是用戶的角度來看,軟件定義存儲都是巨大的創新。但是,真正的想把軟件定義存儲做好,也并不是那么簡單的事情,在技術上和傳統存儲軟件存在較大的差異,需要更加強調系統的容錯性。而并不是簡單的把傳統存儲中的軟件單獨打包銷售。我相信軟件定義存儲是未來發展的方向,更加期待專業化的軟件定義存儲廠商誕生,推動國內存儲行業的發展。