SSD上如何進行數據保護?

來自存儲老吳的博客--存儲之道服務器

 

閃存技術的發展使得其成本降低、容量增長,愈來愈多的企業級用戶也都在考慮如何將閃存SSD技術應用到本身的環境中去,從而解決性能、功耗、體積等存儲常見問題。前幾年閃存技術主要在互聯網領域獲得了大量應用,其主要緣由在於互聯網須要面臨大量的訪問IO壓力,傳統的磁盤存儲系統沒法提供高IOPS的能力,因此,只能藉助閃存的高性能來解決互聯網發展過程當中的難題。因此,今天閃存在互聯網領域已經獲得大量應用,併成爲其標配。架構

 

在閃存應用的過程當中,PCIe接口在存儲上的應用起到了巨大的成功。特別是最近幾年符合NVMe接口標準的SSD推出,更是加速了閃存SSD的應用。去年Intel推出了符合NVMe標準的2.5SSD盤;今年國內的Memblaze也推出了符合NVMe1.1標準的2.5SSD盤和卡。能夠說這種2.5SSD盤的推出爲閃存在企業級應用掃清了障礙。2.5寸盤具備熱插拔的特性,而且具有企業級雙端口的屬性。在NVMe閃存盤落地的同時,服務器廠商也在大力支持NVMe,從去年到今年,不少服務器廠商推出的產品都會支持NVMe接口,廣泛一些2U服務器中會支持4個左右的NVMe盤。超微推出的1U服務器能夠支持10盤位滿配NVMe SSD。標準的NVMe盤有了,支持NVMe的服務器有了,那麼如今問題來了,如何在這些服務器中將這麼多的NVMe盤用起來呢?併發

 

不少朋友在面臨這個問題的時候會想將傳統架構在磁盤存儲介質上的軟件系統直接運行在NVMe SSD上。因爲NVMe SSD在系統中仍然表現爲一個普通的塊設備,因此,傳統軟件想在NVMe SSD直接運行起來是沒有難度的。可是,咱們須要知道傳統的這些存儲軟件是面向磁盤介質進行設計,他考慮了磁盤介質的問題,例如隨機訪問能力差,順序訪問能力不錯。針對磁盤介質的這些特徵,開發了傳統的存儲軟件。和磁盤相比,NVMe SSD是徹底不一樣的,他沒有磁盤存儲中所遇到的問題,可是他具備本身獨特的問題。所以,若是將傳統存儲軟件直接架構在NVMe SSD上,那麼就比如庸醫亂開藥,原來的病沒有治好,又惹出了新的問題。所以,在NVMe服務器平臺上,咱們不能直接、簡單的採用現有針對磁盤存儲的軟件來解決NVMe SSD數據可靠性、卷管理等棘手的問題,須要另闢蹊徑。ide

 

就拿數據保護來講,在NVMe SSD平臺上到底該如何來作呢?傳統的解決方案存在哪些問題呢?將來的技術方向在哪裏呢?存儲老吳給你一一道來。性能

 

在磁盤存儲時代,一般採用RAID技術來進行數據保護,互聯網的多副本能夠理解成RAID1及其擴展。RAID技術一般能夠分爲軟RAID和硬RAID兩大類。硬RAID是經過硬件的手段來實現。在RAID技術發展之初,有采用FPGA方式來實現RAID控制器,當年Xinlix推出的FPGA中集成了XOR單元來支持開發RAID控制器;也有廠商直接開發ASIC來訂製、加速RAID性能。固然用的最爲廣泛的仍是IntelIOP處理器,以及如今LSI ROCSOC技術。從中咱們也能夠悟出,真正一個有生命力的產品架構是簡單,而且軟件纔是IT產品的核心。優化

wKiom1W2Xi-iyDmbAACllXLqcmc566.jpg

RAID是一個基於PCI/PCIe總線的接口卡,卡上擴展SATA接口,而且在SOC中運行RAID固件程序。整個硬RAID的核心技術是固件程序以及SOC芯片。硬RAID是不少存儲的標配,他具備很強的普適性。除了硬RAID技術以外,不少廠商會開發軟RAID,例如EMC等存儲大廠都會擁有本身的軟RAID技術。軟RAID是運行在主機端的數據保護軟件,經過軟RAID能夠基本達到與硬RAID相同的數據保護做用,可是沒有硬RAID那麼強的普適性。在十年前,CPU性能遠不如如今,因此採用軟RAID技術以後,致使CPU會參與數據的編解碼工做,從而影響性能。因此,在好久之前硬RAID都是高性能的表明。可是,今非昔比,現在Intel CPU已經很是強大,對於處理軟RAID這種數據編解碼已經不在話下,更況且還有AVXSSE等加速指令集的支持。所以,現在軟RAID的性能一點都不遜色,甚至超越硬RAID的性能。spa

 

不論是軟RAID仍是硬RAID技術在磁盤存儲時代發展的一直都很好,除了和RAID自己架構相關的數據重構以外。在正常使用的時候,RAID自己仍是能夠接受的,由於主要的性能瓶頸點在於磁盤自己。因此,從研發角度來看,那個時代大量的工做仍是在優化IO Pattern,使其知足磁盤存儲的需求。設計

 

時代進入閃存存儲以後,SSD若是直接接入傳統RAID系統,咱們暫且不考慮傳統RAIDSSD自己形成的一些問題,就從性能的角度來看,傳統RAID都成爲了系統的瓶頸點。一個普通的SSD盤,不論是SATA仍是NVMe接口,其隨機讀性能輕鬆就達到了10IOPS,那麼多塊盤聚合以後性能輕鬆就達到了50萬以上。在這種性能壓力下,一個普通的硬RAID如何將這種性能發揮出來?對於一個NVMe SSD盤,其單盤度性能就達到了70IOPS以上,若是採用5NVMe SSD組建一個RAID,那麼如何將隨機讀性能發揮到300萬以上?採用硬RAID現實嗎?若是要實現這樣的性能,那麼咱們須要從新設計RAID SOC控制器,至少須要一個多核高性能處理器來實現這個SOC。假設一個核能夠處理50IOPS,那麼這個SOC至少須要6個這樣的核。這尚未考慮軟件層面引入的性能損耗,要知道RAID軟件系統的耦合性是很強的,將多核性能發揮到極致是很難的。此外,要達到300IOPS性能,帶寬達到了12GB/s以上,一個PCIe3.0X16剛剛達到要求。因此,從硬件的角度來看,短時間內實現這樣的商用硬RAID是不現實的。目前在市場上,不少人也就採用硬RAID對性能相對較低的SATA SSD進行數據保護。3d

 

對於NVMe SSD,採用硬RAID無望的狀況下,只能考慮採用數據保護軟件的方式加強系統數據可靠性。這實際是符合客觀規律的,CPU的發展趨勢是多核化,NVMe SSD的操做主要是IO密集型操做,很是符合多核發展思路。利用多核技術能夠併發處理IO請求,從而能夠發揮閃存的性能優點。因此,存儲老吳認爲在Intel X86服務器平臺下,充分利用多核技術,針對閃存的特性爲NVMe SSD打造數據保護軟件系統是將來存儲技術發展的趨勢。blog

相關文章
相關標籤/搜索