zStorage

zStorage 是武漢九訊高新技術有限公司研發的一款系統軟體數據平台 ,並且zStorage 以模組化體系結構,通過FC、iSCSI 、FCoE、SAS、InfiniBand接口連線各類存儲,通過網路接口向 CIFS/NFS/FTP /iSCSI客戶端提供檔案服務。

系統簡介

zStorage是武漢九訊高新技術有限公司研發的一款系統軟體數據平台

工作內容

zStorage以模組化體系結構,通過FC、iSCSI 、FCoE、SAS、InfiniBand接口連線各類存儲,通過網路接口向 CIFS/NFS/FTP /iSCSI客戶端提供檔案服務。

zStorage(前視圖) zStorage(前視圖)
zStorage(後視圖) zStorage(後視圖)

系統優勢

zStorage的模組化體系結構和集群技術使得其具有完全的冗餘特性和非常好的擴展特性及並發處理能力。

zStorage具備了處理超大型檔案、超小型檔案和多個並行檔案所需的靈活性與能力,而且不會對性能產生任何影響。

zStorage圖形化管理界面(一) zStorage圖形化管理界面(一)
zStorage圖形化管理界面(二) zStorage圖形化管理界面(二)

zStorage採用了目前為止可伸縮性最高的檔案系統ZFS,該檔案系統是128bit的,這意味著它能存儲1840億億(18.4*1018)倍於當前64bit檔案系統的數據,zStorage的設計如此超前以至於這個極限就當前現實而言,實際上可能永遠無法達到。

以下是zStorage的一些理論極限:

單個系統能容納的最大存儲池數量 264
單個存儲池最大尺寸 278byte
單個存儲池最大設備數 264
單個存儲池能容納的最大檔案系統數量 264
單個檔案系統最大尺寸 264byte
單個檔案系統能容納的最大檔案數 248
單個檔案最大尺寸 264byte
單個目錄能容納的最大檔案數 248
單個檔案系統的快照數量 248
註: 作為對這些數字的感性認識,假設每秒鐘創建1000個新檔案,達到zStorage檔案數極限需要大約9000年。

系統特點

zStorage主要特點

並行運算 n為了應對大規模的並發,zStorage最大支持16個控制器同時接受服務請求; nzStorage會根據負載均衡策略將請求分發到集群各節點,從而讓工作負載均衡分布在多個節點上,對外提供高性能並行計算服務; n對客戶機使用單一集群IP,減少複雜性; n針對分散在不同地點的zStorage節點提供ACTIVE-ACTIVE解決方案; n能同時保護套用與數據,為業務的持續運行保駕護航。
全局設備 n可以從任意一個zStorage節點訪問集群中的任意存儲; n任意一個zStorage節點均能看到相同的設備名; n不用考慮存儲的實際位置; n方便管理。
全局檔案系統 n為了訪問共享數據,傳統的解決方法都是通過NFS、CIFS或數據複製的方法來實現,隨著數據量及用戶量的增加,NFS和CIFS的性能也會變得越來越差,而通過數據複製方式又無法保證數據的實時一致性; n為了克服這種弱點,zStorage提供了自己的解決方案:它通過GFS來共享存儲上的同一空間,使服務的各個節點就像訪問自己本地檔案系統一樣,由於採用的是直接I/O連線和訪問方式,從而大大提升了共享訪問同一分區數據的性能。
超強檔案支持 nzStorage具備了處理超大型檔案、超小型檔案和多個並行檔案所需的靈活性與能力,而且不會對性能產生影響; nzStorage的所有元數據都是動態分配的,在首次創建時無需預先分配inode,故對於檔案系統或檔案系統中包含的檔案數沒有限制; nzStorage採用了一個128位的檔案系統,其最大存儲容量和能容納的檔案數量近乎無限制(僅受硬體容量限制),適合PACS和流媒體等大數據量系統的套用; nzStorage提供的檔案系統不僅符合POSIX檔案系統的標準,而且提供了許多高級功能,如:Quota(配額)、Reservation(預留)、Compression(壓縮)、Snapshot(快照)、Clone(克隆)等。
數據塊大小可變 n不同大小的數據塊會直接影響到硬碟容量的占有率和讀取速度。如果使用較小的數據塊,存儲檔案時所產生的碎片會較少,讀寫小檔案會更快一些,但是會導致需要創建更多的metadata,讀寫大檔案則會更費時;如果使用較大的數據塊,則使用的metadata會較少,更利於讀寫大檔案,但是會導致更多的碎片; n傳統檔案系統的數據塊大小是固定的,而zStorage支持多種大小不同的數據塊,它可以動態地根據不同大小的檔案進行計算,動態地根據檔案的實際大小確定最佳的數據塊; nzStorage不需要系統管理員介入,就可以得到一個自我調優的結果。
動態條帶化 nzStorage以條帶形式將數據動態分布在所有頂層虛擬設備上,由於是在寫入時確定放置數據的位置,因此在分配時不會創建固定寬度的條帶; nzStorage能動態條帶化存儲池中的所有設備以最大化吞吐量; n當新設備被加入到存儲池中的時候,條帶會自動擴展到這些新添設備; n動態條帶化使得存儲池中的所有磁碟都能被用到; n動態條帶化能讓負載被平攤到所有的磁碟上。
RAIDZ nzStorage支持的RAIDZ類似於傳統的RAID5,但RAIDZ基本不會造成資源浪費,其有效容量基本等於其包含硬碟容量的和; nRAIDZ始終執行完全條帶化(full-stripe)寫操作,它會對所有數據都執行校驗和操作,並結合COW和checksum的機制,從而保證數據的一致性; nRAIDZ的條帶化大小是完全動態的,每一個檔案系統塊在存儲時會平均分配到RAIDZgroup里的所有磁碟上; n傳統的RAID5都存在著“寫漏洞”:RAID5在寫數據的時候,首先將數據寫到磁碟陣列上,然後將該stripe上數據的校驗碼記錄到陣列上,若在剛寫完數據的時候,系統斷電,那么該數據對應的校驗碼就沒有機會再恢復了,如果接下來磁碟發生故障,RAID5的重建流程就會出現錯誤數據; nRAIDZ的寫入操作實際上是一個完全的條帶寫入,再加上COW特性,這樣就能完全消除RAID5的“寫漏洞”缺陷。
自我修復功能 nzStorage包含一個診斷引擎和一個FaultManager管理器,可以實時地診斷分析並且報告存儲池和設備的錯誤,用戶可以通過FaultManager及時得到一個非常友善的訊息; n這個診斷引擎雖然不會採取主動的行為去修復或者解決問題,但是會在訊息中提示系統管理員可採取的動作; nzStorage具有自動修複數據的功能,即當有損壞的數據塊被檢測到,它不但能從備份中找到相同的正確數據,而且還能自動的用正確數據修復損壞的數據; nzStorage可以自動清理一個存儲池中的所有數據,根據相應的校驗和檢查每個數據來驗證其完整性,檢測任何潛在的數據損毀,修復可能存在的任何錯誤; n數據清理的I/O優先權是很低的,因此這個操作對系統性能的影響非常小; nzStorage的checksum和transactional保證了數據的一致性; nzStorage自身的檔案系統無需mount、無需fsck、無需journaling,簡化了日常維護。
保證數據的正確和完整 n由於zStorage所有針對數據的操作都是事務型的(事務型操作代表一組操作要么一起失敗,要么一起成功); nzStorage的所有操作都基於COW,從而保證設備上的數據始終都是有效的,再也不會因為系統崩潰或者意外掉電導致數據檔案的不一致; n還有一種潛在威脅數據的可能來自於硬體設備的問題,如:磁碟、RAID卡的硬體問題或者驅動bug,現有檔案系統遇到此問題時,往往只是簡單的把錯誤數據直接交給上層套用,通常我們把這個問題稱作SilentDataCorruption; n而在zStorage中,對所有數據不管是用戶數據還是檔案系統自身的metadata數據都進行256位的Checksum(校驗),當zStorage在提交數據時會進行校驗,因此能徹底杜絕這種SilentDataCorruption情況; nzStorage的檔案系統採用了256位校驗和,當向磁碟寫入數據的時候,校驗和就會被作為元數據與它相關的數據分開保存,與普通的磁碟塊校驗和不同的是,這種校驗和可以檢測出錯位寫、誤讀取和誤寫入、DMA奇偶錯誤、驅動器bug、意外過量寫入以及常見的物理存儲的衰減(bitrot)。
優異的性能和擴展性 nzStorage直接基於存儲設備提供所有的功能,因此有自己獨有的創新特性,性能自然非比尋常; n由於zStorage採用了一個基於COW和全局動態的存儲池,任何一次寫操作,都是對新數據塊的操作,zStorage會從存儲池中動態挑選出一個最優的設備,從而充分有效地利用了現有設備的頻寬,我們把這個特性稱為DynamicStriping; n而傳統檔案系統所使用的則是StaticStriping方式,該方式需要管理員首先對現有設備進行Stripe計算並手工設定,若有新設備的加入則需要再次進行計算並手工設定,若計算錯誤,則會直接影響系統的性能; n而在使用DynamicStriping這種特性之後,我們根本不需要人為介入,zStorage會自動調整,智慧型地為你提供最佳的設備,最快的操作方式; n在擴展性上,和現有檔案系統多是基於一個受限的靜態模型不同,zStorage是採用POOL這個動態概念,它的metadata也是動態,並且讀寫操作都是可並行的,並且具有優先權概念,所以即使在大數據量,多設備的情況下仍可以保證性能的線性增長。
存儲池 nzStorage能將存儲聚合成為一個存儲池,這個存儲池可以使用腳本、鏡像或者某種RAID針對容量、I/O性能或者冗餘性進行最佳化; n如果需要更多容量,只需要向存儲池中添加更多存儲就行了,zStorage檢測到新添加的容量並開始自動使用、均衡I/O和最大限度提高吞吐量; n不同於傳統檔案系統需要駐留於單獨設備或者需要一個卷管理系統去使用一個以上的設備,zStorage的檔案系統創建在存儲池之上,每個存儲池由若干虛擬設備組成; n這些虛擬設備可以是原始磁碟,也可能是一個RAID1鏡像設備,或是其它RAID等級的多磁碟組,存儲池上的檔案系統可以使用這些虛擬設備的總存儲容量; n在許多方面,存儲池與記憶體系統相似:將記憶體條加入系統時,作業系統並不會強迫您運行命令來配置記憶體並將其指定給個別進程,系統中的所有進程就會自動使用所增加的記憶體; n可以設定磁碟限額和設定磁碟預留空間來限制存儲池中單個檔案系統所占用的空間; n可以向存儲池中添加高性能固態硬碟,將其變成一個混合存儲池。
壓縮功能 nzStorage支持的壓縮算法有:LZJB、ZLE、gzip[1-9]、lz4; nzStorage的壓縮功能對用戶是透明的,也就是說壓縮和解壓操作是自動完成; nzStorage的壓縮算法對CPU的消耗很低,並且某些壓縮算法速度很快,因此壓縮的代價是很低的; n建議開啟zStorage的壓縮功能; nzStorage自帶重複數據刪除功能。
虛擬卷 n通過虛擬卷,存儲管理員能夠為不同套用和用戶迅速分配所需的存儲空間; n當你給計算機擴容記憶體後,計算機就能自動使用這些新加的記憶體,zStorage使用新加硬碟的步驟,幾乎和計算機使用新加記憶體一樣簡單; n添加新存儲後,無需執行其他操作,存儲池中的所有檔案系統即可立即使用所增加的磁碟空間; n在zStorage中,存儲池中檔案系統的操作相比傳統檔案系統的卷管理更加便捷; n在zStorage中,創建一個檔案系統或者改變一個檔案系統的大小接近於傳統技術中的目錄管理而非卷管理; n檔案系統不再僅限於單個設備,而是可與存儲池中的所有檔案系統共享磁碟空間; n您不再需要預先確定檔案系統的大小,因為檔案系統會在存儲池內自動增長。
寫複製 nzStorage在更新檔案時,不會破壞原有的檔案,而是將該檔案先做一個備份,然後再更新備份檔案,最後再將檔案指針指向新的檔案; nzStorage在更新檔案時,不會去覆蓋含有活動數據的塊,而是分配一個新塊,並把修改過的數據寫在新塊上,因此在檔案更新的過程之中,檔案系統絕對不會因意外斷電或系統崩潰而被損壞,檔案系統本身將始終是一致的,所以COW技術對提高檔案系統的穩定性有很大的幫助; n用過Linux、Unix、Windows的人,應該都有過類似的體會:當系統意外斷電或者非法關機事件發生時,檔案系統會出現數據不一致的問題,這時就需要fsck或scandisk來修復,這種操作非常耗時且最後不一定能夠修復成功。更糟糕的是,fsck時,該檔案系統必須處於offline(下線)狀態,這對許多業務來說幾乎是不能忍受的; n使用zStorage後大家可以徹底拋棄fsck這種工具,因為其採用了一個基於COW機制的檔案系統,COW是不會對硬碟上現有的檔案進行重寫,保證所有硬碟上的檔案都是有效的,所以不會有這種數據不一致的問題,當然也就不需要這種工具了; nzStorage對檔案的寫入操作是事務型的,即要么將所有數據寫入到磁碟,要么什麼都不寫。
智慧型預讀 n多數的作業系統都有數據預先讀取的功能,而zStorage則是建立在檔案系統上直接提供的一種更加智慧型的數據預讀取功能; nzStorage提供了一種非常智慧型的數據預讀功能,它可以智慧型地識別出多種讀取模式,提前讀取數據; nzStorage可以對每個讀數據流進行預讀智慧型識別,這個對提高流媒體的性能有很大的幫助。
數據遷移功能 n現有的PACS和流媒體系統多採用分級存儲(HSM)的策略,即將PACS和流媒體存儲分成線上存儲和近線存儲兩級結構; n用兩種不同性能的存儲介質來分別滿足高速和高容量的要求,如:高速存儲設備用作線上存儲,低速大容量存儲設備用作近線存儲; n最近一段時間內活動頻繁的數據保存於線上存儲中,一段時間以上的活動不頻繁的數據保存在近線存儲里; n利用zStorage的“影子遷移”功能能夠方便地將數據從一個存儲層遷移到另一個存儲層,從而滿足PACS和流媒體等系統的特定需求。
熱備盤 n對於RAIDZ和RAID1而言,存儲池支持熱備盤的設定; n一塊熱備盤可以同時支持多個存儲池,如:在一個RAID1和另一個RAIDZ可以使用同一塊硬碟來做熱備。
簡化的管理 nzStorage提供了一種極度簡化的管理模型,通過使用分層檔案系統的布局、屬性繼承以及自動管理掛載點和NFS共享語義等特性,zStorage可輕鬆創建和管理檔案系統,而無需使用多個命令或編輯配置檔案; n該分層結構允許對屬性(如:配額、預留空間、壓縮和掛載點)進行簡化管理,在此模型中,檔案系統是中央控制點; n檔案系統本身的開銷非常小(相當於創建一個新目錄),因此建議您為每個用戶、項目、工作區等創建一個檔案系統,通過此設計,可定義細分的管理點; n可以輕鬆設定配額或預留空間、啟用或禁用壓縮,或者通過單個命令管理許多檔案系統的掛載點; n在zStorage中我們只需要兩個命令就可以輕鬆管理其檔案系統,再也不用牢記各種專業概念、各種命令及各種VolumeManager的用法了,如:我們經常會遇到系統數據增長過快,現有存儲容量不夠,需要添加硬碟的情形,如果依照傳統的VolumeManager管理方式,我們需則要預先考慮很多現有因素,還要預先根據套用計算出需要配置的各種參數,zStorage可以徹底解放系統管理員,再也不需要這種人為的複雜考慮和計算,我們可以把這些交給zStorage,因為存儲池會自動調節,動態適應需求。我們只需一個簡單的命令為這個存儲池加入新的硬碟就可以了;基於這個動態調節的存儲池之上的所有的檔案系統就可以立即使用這個新硬碟,並且會自動選擇最最佳化的參數。

系統保護

業務的正常運行需要高度依賴數據的可用性,沒有任何一款存儲或檔案系統敢100%保證數據無丟失率,因此為了確保PACS和流媒體等系統數據萬無一失,數據保護是必須的。

zStorage充分利用了其在硬體、軟體和解決方案上的優勢,以保護客戶數據並滿足其苛刻的恢復時間要求。

zStorage提供了多種數據保護手段,如:快照、克隆、備份等。

快照 nzStorage的快照是檔案系統在某個時間點的唯讀版本(唯讀副本),它反映了檔案系統在創建快照的那個時間點的狀態; nCOW技術的使用使得zStorage在寫新數據時,包含舊數據的塊被保留著,提供了一個可以被保留的檔案系統的快照版本; n由於zStorage在讀寫操作中已經存儲了所有構建快照的數據,所以創建快照的速度非常快; nzStorage允許將快照遷移至其它主機; n管理員可以創建基於增量的歷史數據快照,而無需複製整個數據,一旦某一關鍵檢查點發生改變,可以通過快照按照設定的時間間隔迅速將變化數據或者差異數據進行“快照”保護; n通過zStorage提供的快照功能可以輕鬆實現系統備份和恢復,可以通過命令行進行快照的創建、刪除和修改,也可以通過瀏覽器進行圖形化的管理; nzStorage可以輕鬆實現對檔案系統進行快照操作,如:1次/15分鐘、1次/30分鐘等,因為它只保存與之前快照的變數,故這種快照只需占用很小的磁碟容量,且高效; n除此之外,zStorage還提供了TimeSlider(時間導航)功能,時間導航提供了一個可以沿著時間線返回到某個快照時間點的滑塊,能呈現該時間點的檔案系統或者資料夾內容。如果想要恢復某個時間點的檔案或者系統的話,你只需要將滑塊移到該時間點就可以了。 nzStorage可以將檔案系統從一個主機系統複製到另一個主機系統,可以在其他主機系統的存儲池上重新創建檔案系統。 n無法直接訪問快照,但可以對它們執行克隆、備份、回滾等操作; n如果數據集存在快照,則不能銷毀該數據集; n如果已從快照創建克隆,則必須先銷毀克隆,才能銷毀快照。
克隆 n克隆是可寫入檔案系統,其初始內容與從中創建它的數據集的內容相同; n與快照一樣,創建克隆幾乎是即時的,而且最初不占用磁碟空間; n此外,還可以創建克隆的快照; n克隆的結果就是兩個獨立的檔案系統共享一序列的數據塊; n當任何一個克隆版本的檔案系統被改變時,新的數據塊為了反映這些改變而創建,但是不管有多少克隆版本的存在,未改變的塊仍然在其他的克隆版本中共享; n可對檔案系統進行快速複製。克隆最適用於需要某個數據集的許多幾乎完全相同的副本的情況,例如:可能有多個系統映像,每個區域對應一個系統映像; n與其他檔案系統一樣,可以修改克隆的設定和內容; n克隆只能從快照創建,克隆快照時,會在克隆和快照之間建立隱式相關性,即使克隆是在數據集分層結構中的某個其他位置創建的,但只要克隆存在,就無法銷毀原始快照。
備份 nzStorage能夠將存儲池中的數據以分鐘級的頻率備份到備份存儲中; n支持以下備份軟體:九訊WinBackup、VERITASNetBackupEnterpriseServer、CommVaultGalaxy、EMCLegatoNetworker、HitachiDataProtectionSuite。

相關詞條

熱門詞條

聯絡我們