❶ 華為雲存儲的解決方案
為此,華為推出了基於雲存儲系統和雲存儲服務平台構建的端到端存儲服務解決方案,幫助運營商快速、經濟地提供雲存儲服務與發展用戶。 華為雲存儲系統具備彈性擴展、安全可靠、自動化管理等特點,以及豐富的業務支撐能力,滿足海量數據的存儲以及大規模業務承載的需求。
彈性擴展:高效的存儲基礎架構需支持在性能和容量兩個維度上進行擴展。華為雲存儲系統基於橫向擴展(Scale-out)架構設計,對上層業務平台提供透明的存儲資源服務,屏蔽底層的硬體差異,能夠幫助運營商實現存儲容量的擴展和業務性能的提升。
在容量擴展方面,雲存儲系統支持通過增加硬碟、存儲域和存儲節點三種方式擴展系統容量。此外,雲存儲系統通過統一的資源和I/O調度,使得新接入的存儲域和存儲節點能夠與已有的域和節點一起為上層業務提供存儲服務,實現整系統存儲空間從TB到EB的線性擴展,再通過跨域互聯、訪問重定向等技術,對多個資源池進行統一部署和調度管理。
在性能提升方面,雲存儲系統通過分布式存儲軟體協調大量的存儲硬體節點並行對外提供數據存儲服務,海量數據均勻下發到每個存儲節點的每個硬碟,充分發揮域內節點與硬碟的並行處理能力,使系統在擴展存儲容量的同時,也提升存儲系統的讀寫性能。
安全可靠:華為雲存儲系統從以下兩方面保證用戶數據在整個生命周期內的安全可靠。 通過Erasure Code技術,對文件進行條帶化後生成多個數據塊,並計算若干個校驗塊,同時將所有的數據塊和校驗塊分別存放在不同存儲節點上,若其中一個或多個存儲節點發生故障,系統可在提供正常的讀寫服務的同時,自動在後台進行數據重構,將故障節點上的數據重構到其他節點上。這種節點間的數據保護技術確保華為雲存儲系統具有較高的數據可靠性。
雲存儲系統通過許可權控制和加密來保證數據私密性。在許可權控制層面,擁有存儲業務的用戶或系統的各類管理員的操作必須被授權,不同許可權用戶執行不同的操作。在加密層面,系統選擇HTTP-SSL方式作為數據傳輸安全的技術實現方案,防止傳輸過程中的惡意監聽與篡改,保證數據傳輸的私密性、一致性和不可抵賴性。對於用戶的關鍵信息,如登錄密碼和系統訪問等鑒權信息,雲存儲系統也從客戶端到服務端都進行加密處理,能夠有效保障用戶關鍵信息的安全性。
自動化管理:雲存儲系統通過「一鍵部署」、「批量升級」、「智能告警」等功能實現系統的自動部署與管理。設備上電後管理軟體遠程對所有設備進行安裝、配置,降低系統部署難度,縮短部署時間。同時,存儲節點的批量升級,整個過程無需人工干預和控制,不中斷業務,實現業務透明化。雲存儲管理系統還能夠提供完整的圖形化管理界面,動態反映雲存儲系統的拓撲結構,實現存儲節點和網路設備的統一管理,提高系統運維效率,降低運營成本。
介面豐富:針對不同類型的應用對存儲的訪問需求,如IPTV、視頻監控、網盤等,雲存儲系統提供了文件存儲介面——NFS/CIFS、對象存儲介面——REST,以及針對第三方雲服務的API,滿足各種終端、各種應用的存儲接入。 基於雲存儲系統,雲存儲服務平台不僅可以提供空間租賃、在線存儲、集中備份等服務,還具備完善的業務管理功能。
空間租賃:無論是中小企業還是大型企業,數據增長的速度遠遠超過了對存儲設備投資的幅度。而且部署大型的存儲設備,不僅降低了業務靈活性,也增加了運維成本。通過運營商提供的空間租賃服務,企業可以按需購買存儲空間進行數據存儲,不僅可以更靈活地滿足存儲需求,也免去了繁雜的自運維過程。
在線存儲:在線存儲服務為個人用戶提供了遠端大容量的存儲空間。個人用戶可通過web方式、PC客戶端、手機客戶端三種形式訪問個人數據,web方式能夠使瀏覽器和本地桌面無縫結合;PC客戶端通過將網路資源本地化,不改變用戶的操作習慣;手機客戶端簡單易操作,方便用戶實時訪問,多種訪問方式實現用戶終端的多屏互動、文件同步。
集中備份:中小企業備份系統的建設面臨建設門檻高、周期長等問題,運營商提供的集中備份服務是對企業備份系統「效率」與「安全」的雙重升級,通過集中備份服務能夠實現本地數據共享,按需申請雲端備份空間,以及對重要數據進行本地與雲端的兩級備份。
「兩級備份」通過本地雲存儲網關與遠端雲存儲數據中心共同實現。首先,本地部署的雲存儲網關進行本地的一次備份,保證備份效率;其次,通過本地雲存儲網關的數據同步功能,實現網關上的數據到雲存儲數據中心的二次備份,進一步提高數據的安全性。
大數據時代的到來,將促使更多的企業與個人將數據遷移到雲端,這一過程為運營商向綜合信息服務提供商的轉型創造了良好的契機。華為雲存儲解決方案將致力於為運營商開展雲存儲服務提供良好支撐,華為已經與中國電信、中國移動就雲存儲服務進行了深入的合作。
❷ 數據存儲解決方案可以實現什麼作用
數據存儲解決方案可以實現的作用有以下8點:
1 信息資產的統一管控
企業運行過程中,可能產生一些違規數據,可將違規數據定位,並且統一刪除,對所有用戶的查詢和使用集中控制。
2 分公司管理員角色設置
雲企網盤可針對大中型企業,靈活的配置用戶許可權,可設置多級的管理員許可權。
3 標准API介面,系統間無縫對接
雲企網盤系統提供了全套的API介面,可完成所有功能的數據對接,其他系統調用即可將數據傳輸至雲企網盤集中管理,安全存儲。
雲企網盤系統從底層上就設計為可對接的數據管理系統,各終端都通過API對系統進行訪問。
4 按鈕級許可權設置
考慮到企業的數據管控,文件系統的防擴散。雲企網盤的授權體系可細分到按鈕,可以控制每個用戶,能否操作每一個具體的功能。
5 集團級組織架構設置
雲企網盤是針對企業管理設計的系統,可針對復雜的企業組織架構進行設置,可適用與集團級的大型企業。可對組織的級別、性質、順序進行定義,可以添加、刪除、移動組織單元。
6 信息資產的查詢
雲企網盤可根據數據的授權,統一對數據進行查詢,可根據條件進行高級檢索。
7 文檔版本管理
文件上傳更新以後,所有歷史版本都會繼續保存,這樣即使工作中發生了失誤,也可以通過網盤補救。 查看原始文檔 找回丟失文件 修復崩潰文檔
找回錯誤覆蓋的文件
8 信息資產的遷移
企業員工根據工作內容的變化,可能發生工作的交接情況,雲企網盤可將員工的文件管理許可權進行一鍵交接。快速的工作交接同時,也避免數據丟失,避免企業資產受損。
❸ 如何實現數據存儲的管理
:數據存儲備份和存儲管理源於上世紀70年代的終端/主機計算模式,當時由於數據集中在主機上,因此,易管理的海量存儲設備——磁帶庫是當時必備的設備。80年代以後,由於PC的發展,尤其是90年代應用最廣的客戶機/伺服器模式的普及以及互聯網的迅猛發展,使得存儲容量、存儲模式和存儲要求都發生了根本性的變化,一些新興的存儲技術迅速崛起,為構建一個更安全的信息時代提供了更多的選擇。
編者按如何確保所有數據能夠得到可靠備份,及時進行災難恢復是存儲管理軟體的核心任務。此外存儲管理軟體還存在以下一些基本功能,諸如改進系統和應用I/O性能及存儲管理能力,提高數據和應用系統的高可用性,減少由於各種原因中斷數據存取或者應用系統宕機的時間,實現技術有分級存儲管理(HSM)、ClusterServer(集群伺服器)等。
首先是能提供一些可以識別和分析存儲訪問模式的VolumeManager工具。VolumeManager通過復雜的磁碟配置能均衡I/O負載,在不影響應用的同時能夠優化應用數據的布局。它還可將數據條形散放到多個物理盤上以提高性能,同時還具有在不中斷應用的情況下,識別和消除性能瓶頸的能力,從而增強系統和應用的性能。另外,VolumeManager在減少系統中斷時間、增加數據完整性等方面也有不俗表現。它允許對磁碟進行在線的管理和更改配置,減少對系統產生極大影響的停機時間,同時利用冗餘技術提高數據可用性,防止數據被丟失和破壞。
其次還有一個非常重要的可快速恢復的日誌式文件系統FileSystem,它能在不間斷數據訪問的條件下,對文件作在線備份,並在系統重啟或崩潰前允許訪問數據並恢復文件,從而大大提高用戶和管理員的生產效率。FileSystem在系統崩潰前還能將未完成的數據記錄在一個事件日誌中,利用恢復程序重現,從而保持了數據的完整性。
VolumeManager和FileSystem都工作在操作系統一級,可實現集群與故障恢復、自動管理、備份與HSM以及基於瀏覽器的遠程管理等。兩者有機結合後,利用雙方特有的對磁碟和數據的管理能力,能給企業的系統提供盡可能高的性能、可用性及可管理性。
在此基礎之上便是整個存儲管理的核心任務——備份技術。
數據存儲備份技術一般包含硬體技術及軟體技術等,硬體技術主要是磁帶機技術,軟體技術主要是通用和專用備份軟體技術等。我們主要從軟體技術方面加以討論。備份軟體技術在整個數據存儲備份過程中具有相當的重要性,因為它不僅關繫到是否支持磁帶的各種先進功能,而且在很大程度上決定著備份的效率。最好的備份軟體不一定就是操作系統所提供的備份功能,很多廠商都提供了許多專業的備份軟體。專業備份軟體能通過優化數據傳輸率,即可以自動以較高的傳輸率進行數據傳輸。這不僅能縮短備份時間、提高數據存儲備份速度,而且對磁帶機設備本身也有好處。另外,專業備份軟體還支持新磁帶機技術,如HP的TapeAlert技術,差不多所有主流專業備份軟體均提供支持。
對於存儲模式來說比較常見的有DAS、NAS和SAN等。DAS(DirectAttachedStorage-直接連接存儲)是指將存儲設備通過SCSI介面或光纖通道直接連接到一台計算機上。當伺服器在地理上比較分散、很難通過遠程連接進行互連時,直接連接存儲是比較好的解決方案。直接連接存儲也可幫助企業繼續保留已有的傳輸速率並不很高的網路系統。
網路正成為主要的信息處理模式,需要存儲的數據大量增加,數據作為取得競爭優勢的戰略性資產其重要性在增加,是目前發展的趨勢。NAS和SAN的出現正響應了這一點。NAS就是網路連接存儲,即將存儲設備通過標準的網路拓撲結構(例如乙太網),連接到一群計算機上。它的重點在於幫助工作組和部門級機構解決迅速增加存儲容量的需求。這種方法從兩方面改善了數據的可用性。第一,即使相應的應用伺服器不再工作了,仍然可以讀出數據。第二,簡易伺服器本身不會崩潰,因為它避免了引起伺服器崩潰的首要原因,即應用軟體引起的問題。另外,NAS產品是真正即插即用的產品,其設備的物理位置非常靈活。
SAN(存儲區域網路)通過光纖通道連接到一群計算機上。在該網路中提供了多主機連接,但並非通過標準的網路拓撲,並且通過同一物理通道支持廣泛使用的SCSI和IP協議。它的結構允許任何伺服器連接到任何存儲陣列,這樣不管數據置放在哪裡,伺服器都可直接存取所需的數據。SAN解決方案是從基本功能剝離出存儲功能,所以運行備份操作就無需考慮它們對網路總體性能的影響。這個方案也使得管理及集中控制實現簡化,特別是對於全部存儲設備都集群在一起的時候。
集群通常用於加強應用軟體的可用性與可擴展性。某些集群架構技術會加入單一系統印象的概念,可從單點以單一系統的方式來管理多台計算機。集群伺服器可支持多達上百台互相連接的伺服器,結合為鬆散結合的單位來執行作業,保護彼此的應用軟體免於故障。由於集群伺服器可完全整合應用軟體服務架構,因此可建置高效的應用軟體執行環境,即使整個系統出現故障,終端計算機都還可以使用幾乎所有的應用軟體。集群伺服器軟體包括引擎、編譯器、負載計算器、代理、指令與圖形化系統管理介面等組件。集群化運算環境的最大優勢是卓越的數據處理能力。原則上,任何類型的多重主機架構存儲設備,包括直接連接的磁碟,都可以用來當作集群數據存儲設備。為求得最大的系統可用性,最適合使用擁有多重主機存取路徑的容錯或高可用性存儲子系統。
分層次的管理方式可以解決存儲容量不斷增長導致的如何有效擴充容量的問題。在很多情況下,它更多地用於分布式網路環境中。分級,其實就是意味著用不同的介質來實現存儲,如RAID系統、光存儲設備、磁帶等,每種存儲設備都有其不同的物理特性和不同的價格。例如,要備份的時候,備份文件一般存儲在速度相對比較慢、容量相對比較大、價格相對比較低的存儲設備上如磁帶,這樣做很經濟實用。那麼如何實現分級呢?從原理上來講,分級存儲是從在線系統上遷移數據的一種方法。文件由HSM系統選擇進行遷移,然後被拷貝到HSM介質上。當文件被正確拷貝後,一個和原文件相同名字的標志文件被創建,但它只佔用比原文件小得多的磁碟空間。以後,當用戶訪問這個標志文件時,HSM系統能將原始文件從正確的介質上恢復過來。分級存儲可以有不同的實施方式,HSM根據兩級或三級體系將動態遷移/回遷的數據分類,從而實現分級存儲。
存儲應用的深入必然帶來對整體解決方案的需求,這不僅包括硬體,還包括相應的軟體以及服務。一個軟硬體兼容的融合應用環境是大勢所趨。比如,存儲虛擬化的提出就證明了這一趨勢。因為它有利於提高存儲利用率、簡化管理和降低成本,構建一個融合的存儲應用大環境。總之,隨著網路技術的發展、計算機能力的不斷提高,數據量也在不斷膨脹。數據備份與恢復等存儲技術方面的問題顯得越來越重要,存儲管理技術的發展必將引起業界的高度重視。
相關鏈接:當前主流的存儲介質
磁碟陣列、磁帶庫
磁碟陣列的最大特點是數據存取速度特別快,其主要功能是可提高網路數據的可用性及存儲容量,並將數據有選擇性地分布在多個磁碟上,從而提高系統的數據吞吐率。另外,磁碟陣列還能夠免除單塊硬碟故障所帶來的災難後果,通過把多個較小容量的硬碟連在智能控制器上,可增加存儲容量。磁碟陣列是一種高效、快速、易用的網路存儲備份設備。
廣義的磁帶庫產品包括自動載入磁帶機和磁帶庫。自動載入磁帶機和磁帶庫實際上是將磁帶和磁帶機有機結合組成的。自動載入磁帶機是一個位於單機中的磁帶驅動器和自動磁帶更換裝置,它可以從裝有多盤磁帶的磁帶匣中拾取磁帶並放入驅動器中,或執行相反的過程。自動載入磁帶機能夠支持例行備份過程,自動為每日的備份工作裝載新的磁帶。一個擁有工作組伺服器的小公司或分理處可以使用自動載入磁帶機來自動完成備份工作。
磁帶庫是像自動載入磁帶機一樣的基於磁帶的備份系統,它能夠提供同樣的基本自動備份和數據恢復功能,但同時具有更先進的技術特點。它的存儲容量可達到數百PB(1PB=100萬GB),可以實現連續備份、自動搜索磁帶,也可以在驅動管理軟體控制下實現智能恢復、實時監控和統計,整個數據存儲備份過程完全擺脫了人工干涉。磁帶庫不僅數據存儲量大得多,而且在備份效率和人工佔用方面擁有無可比擬的優勢。在網路系統中,磁帶庫通過SAN(存儲區域網絡)系統可形成網路存儲系統,為企業存儲提供有力保障,很容易完成遠程數據訪問、數據存儲備份,或通過磁帶鏡像技術實現多磁帶庫備份,無疑是數據倉庫、ERP等大型網路應用的良好存儲設備。
光碟塔、光碟庫和光碟網路鏡像伺服器
光碟不僅存儲容量巨大,而且成本低、製作簡單、體積小,更重要的是其信息可以保存100年至300年。光碟塔由幾台或十幾台CD-ROM驅動器並聯構成,可通過軟體來控制某台光碟機的讀寫操作。光碟塔可以同時支持幾十個到幾百個用戶訪問信息。光碟庫也叫自動換盤機,它利用機械手從機櫃中選出一張光碟送到驅動器進行讀寫。它的庫容量極大,機櫃中可放幾十片甚至上百片光碟。光碟庫的特點是:安裝簡單、使用方便,並支持幾乎所有的常見網路操作系統及各種常用通信協議。
光碟網路鏡像伺服器不僅具有大型光碟庫的超大存儲容量,而且還具有與硬碟相同的訪問速度,其單位存儲成本(分攤到每張光碟上的設備成本)大大低於光碟庫和光碟塔,因此光碟網路鏡像伺服器已開始取代光碟庫和光碟塔,逐漸成為光碟網路共享設備中的主流產品。
❹ 操作系統中存儲管理的任務是什麼,大多採用什麼方案來解決
操作系統中存儲管理的任務一般都是以保存系統中應用程序在操作過程中的信息,數據和文檔,然後會一一存儲在管理的系統中,這就是日常的任務
❺ 運用哪幾種方法可以解決存儲過程的數據安全問題
在這個信息爆炸的年代,現代人每天不論於公於私, 都面臨必須經手大量數字信息、 而在數據安全問題上會出現各種麻煩;另一方面, 隨著數據量的增加,人們對存儲認識程度也日益加深, 特別是企業對於存儲過程中數據安全問題尤為關注。一個穩定、 安全、可靠的存儲基礎架構對企業來說是必不可少的。 企業的信息系統不可避免地受到來自外界的安全危脅, 包括自然災害、網路、硬體、軟體等方面,也包括人員的操作失誤。 數據存儲的任何失誤都可能給企業帶來巨大的經濟損失。 隨著數據價值不斷提升,以及存儲網路化不斷發展, 數據遭受的安全威脅日益增多,若無存儲安全防範措施, 一旦攻擊者成功滲透到數據存儲系統中, 其負面影響將是無法估計的。這要求企業在特定存儲系統結構下, 從存儲安全性綜合考慮。 而企業在業務運作的過程中最常面臨的存儲安全問題, 主要是由自然災害,網路、硬體,人員的操作失誤這幾方面引起的。 自然災害導致數據存儲安全 首先,這個不是一個人為的行為, 大量的數據存儲在企業的伺服器存儲系統中, 業務在運營中由於停電或是數據傳輸過程中的線路突然短路導致的數 據的丟失情況,對於企業是一個不小的損失,在這種狀態下, 由於自然災害原因導致企業數據的丟失可以說對於一個企業的數據信 息是一個很大的安全威脅,系統的正常運行,資料庫的合理優化, 操作人員的完善的操作程序都確保數據的穩定安全,而突發的停電、 火災以及後備電源的不到位對於中小企業是時常面臨的問題, 同時數據的存儲安全成為面對該情況時必須要解決的問題, 也是企業及時需要應對的措施,保證數據的安全, 但如何面對該情況應對企業數據的存儲安全呢? 網路硬體 其次, 企業數據的硬體環境方面的問題也會導致存儲過程中數據安全, 眾所周知信息化快速發展的今天,硬體的更新換代速度之快, 從而使得企業的傳統的存儲環境已經難以應對如今海量的數據需求, 企業也要升級換代才可以適應現在數據存儲的環境要求。 硬體環境的老化導致傳輸速率的降低, 同時網路的優化也需要良好的硬體環境作為基礎, 在傳輸數據的過程中如果數據量過於龐大, 而企業的硬體環境沒有改善那麼網路的延遲導致系統的崩潰, 從而丟失數據會造成巨大的經濟損失,而對於這些方面, 就需要企業根據業務發展的需要有針對性地升級存儲伺服器的配置, 提高網路的良性環境,保證存儲過程數據安全。 人員的操作失誤 「金無足赤,人無完人」 是對於當今任何企業在數據管理人員方面的一句良言, 每個人在工作的過程中不可避免的犯錯誤或者在操作上失誤, 特別是對於從事資料庫管理工作的人員,數據量之大, 系統運行之繁瑣,都會給工作中帶來不必要的失誤, 從而對於企業的數據上的安全和完整性存在危脅, 同時中小企業的數據管理人員還肩負存儲系統的運維工作, 這就對其數據存儲過程中的安全性提出了更高的要求, 面對著企業存儲過程數據安全問題,應該如何的解決, 採取什麼樣的措施保證數據的安全是擺在每個企業面前的主要問題, 數據是企業運營的核心, 強大的數據的支持保障企業在市場中能夠乘風破浪, 如何解決存儲過程數據安全問題, 下面針對以上的問題給以簡單的建議。 一般而言,解決存儲過程中的數據安全問題, 企業有很多可以採用的方案: 異地備份可以避免發生自然災害時的數據損失;採用RAID( 獨立磁碟冗餘陣列)可以減少磁碟部件的損壞;採用鏡像技術 可以減少存儲設備損壞;快照可以迅速恢復遭破壞的數據, 減少宕機損失。 而這些技術採用可以很好的應對企業面臨的自然災害,網路、硬體, 人員的操作失誤這幾方面引起的數據的安全問題。 異地備份 異地備份是保護數據的最安全的方式,無論發生什麼情況自然災害, 那怕是火災、地震,當其他保護數據的手段都不起作用時, 異地容災的優勢就體現出來了,異地備份問題在於速度和成本, 這要求擁有足夠帶寬的網路連接和優秀的數據復制管理軟體。 通常狀態下主要三方面實現異地備份,一是基於磁碟陣列, 通過軟體的復制模塊,實現磁碟陣列之間的數據復制, 這種方式適用於在復制的兩端具有相同的磁碟陣列。 二是基於主機方式,這種方式與磁碟陣列無關。 三是基於存儲管理平台,它與主機和磁碟陣列均無關。 RAID RAID系統使用許多小容量磁碟驅動器來存儲大量數據, 並且使可靠性和冗餘度得到增強。對計算機來說, 這樣一種陣列就如同由多個磁碟驅動器構成的一個邏輯單元。 所有的RAID系統共同的特點是「熱交換」能力: 用戶可以取出一個存在缺陷的驅動器,並插入一個新的予以更換。 對大多數類型的RAID來說,不必中斷伺服器或系統, 就可以自動重建某個出現故障的磁碟上的數據。 鏡像 這個技術是針對如果故障發生在異地分公司,可以使用鏡像技術, 進行不同卷的鏡像或異地卷的遠程鏡像, 或採用雙機容錯技術自動接管單點故障機, 保證無單點故障和本地設備遇到不可恢復的硬體毀壞時, 仍可以啟動異地與此相同環境和內容的鏡像設備, 以保證服務不間斷。當然,這樣做必然會提升對設備的投資力度。 快照 在數據保護技術中,快照技術(snapshot) 是極為基礎和熱門的技術之一,應用在很多存儲過程中, 比如數據復制和備份都在使用這種技術。 IBM的FlashCopy、IBM NAS的PSM軟體以及VERITAS的FlashSnap軟體 都是快照技術的代表。快照可以迅速恢復遭破壞的數據, 減少宕機損失, 可以針對與資料庫管理人員在操作中的失誤進行數據恢復。 綜述: 對於企業在存儲過程中的數據安全問題,還有很多解決的方案, 存儲安全固然十分重要, 但是存儲安全只是數據中心整個安全解決方案的一個組成部分。 安全是一個內涵很廣泛的話題, 存儲在業務流程中扮演的並非是主角,但確實是關鍵角色, 因為存儲包含了公司絕大部分記錄,如果沒有存儲, 很多業務流程將沒法繼續。因此, 對於面對存儲過程數據安全問題每個企業應該注視起來, 投入更多的精力,數據是一個企業的核心競爭力, 安全強大的數據是企業騰飛的保證,存儲技術的發展, 硬體環境的完善相信會給企業數據安全無疑提供強有力的支持。
❻ 多項目平台系統的數據怎樣才能統一存儲和管理,有推薦的解決方法嗎
建議使用XSKY星辰天合的分布式軟體定義存儲平台,它可以實現一套存儲平台支持各業務應用數數據存儲管理,而且有平台定製的方案,實現業務數據無縫連接,工作效率提升的同時更有效降低TCO。
❼ 架構設計:文件服務存儲設計
在架構設計:文件服務的設計與實現一文中,通過實現一個文件服務來梳理了一個架構設計的一般流程,並得到如下靜態架構圖
本文繼續聊聊文件服務中的子模塊:「存儲模塊」的設計,包括:
前面的架構沒有對存儲進行特別設計,直接使用了本地存儲。考慮到後期文件數量可能會越來越多,本地存儲可能無法支撐,且本地存儲的安全性也沒有保障。為了便於後期擴展,需要對「存儲」部分進行設計。
存儲的方式有很多,本地存儲、NAS、分布式存儲,為了能支持不同的存儲方式,需要對「存儲模塊」進行抽象。考慮到「存儲模塊」涉及到IO,是一個相對底層的模塊。「上傳」這個核心模塊不能依賴於具體的存儲,所以這里也需要對其進行依賴反轉。
見紫色部分,UploadService調用了FileInfoRepository來存儲FileInfo,而FileInfoRepository是個介面,具體實現由存儲模塊中的實現類來實現。
我們先看本地存儲。最簡單的實現,就是直接使用IO將文件寫到對應的目錄下就可以了。但是,本地存儲會有如下幾個問題:
下面我們針對上面的問題,來一個個的解決。
首先,對於多租戶來說,在我們的架構中,實際對應的是Group,我們按照Group的不同,來劃分目錄即可。即 不同的租戶有不同的文件根目錄 ,後期某個租戶遷移時,直接遷移對應目錄即可。這也稍微解決了單目錄文件數量多的問題。
對於單目錄下,隨著文件數量的增加導致訪問速度下降的問題,我們該如何解決呢?
如果你做過分布式系統,那麼想一想, 我們是否可以把單目錄看成是一個伺服器,訪問目錄下的文件看成是一個個的請求呢 ?如果可以,那解決單目錄下訪問速度慢的問題是不是就變成了「如何解決單伺服器下,負載過高」的問題了?那解決服務端負載過高的方法是否適用於解決目錄訪問速度下降的問題呢?
我們從下面幾個方面來分析一下:
首先來看「解決服務端負載過高的方法」!答案很明顯: 分流+負載均衡 !
分布式服務的負載均衡有幾種方式呢?
再來看「目錄訪問和伺服器的區別」,雖然可以把目錄看成伺服器,但是兩者還是有區別的:
也就是說,對於目錄來說,我們不需要考慮創建成本。
那麼針對伺服器負載高的解決方案是否適合目錄訪問呢?或者哪種方式適合目錄訪問呢?我們一個個來分析:
可以看到,主要的問題就是創建目錄的問題!如何保證在目錄數量改變時,不需要調整程序呢?
實際上git已經給出了答案:
也就是說,根據sha1散列的前兩位對文件進行歸類。這樣既解決了目錄創建問題,也解決了文件分布問題。可能的問題是,「sha1散列2^80次,可能會發生一次碰撞」。這個問題對於一般文件系統來說,好像也沒有擔心的必要。
解決了「單目錄文件過多,導致訪問速度下降」的問題,我們來看下一個問題: 數據安全 。
文件數據是存放在電腦磁碟上的,如果硬碟損壞,可能導致文件的丟失。這實際還是一個「單點問題」!
「單點問題」的解決方案是什麼呢? 冗餘 啊!
最簡單的方案就是定時去備份數據,可以有如下幾種方案:
我們繼續一個個的討論。
首先是 人工備份 ,這是最low的方案,當然也是最簡單的,即有人定期去備份就行了。問題是時效性不高,例如一天備份一次,如果磁碟在備份前壞了,那就會丟失一天的數據。同時恢復比較耗時,需要人工處理。
第二個方案是 代碼實現 ,即在上傳文件時,程序就自動備份。以上面的架構為例,可以添加一個BackupListener,當上傳完成後,通過事件,自動備份上傳的文件。同時下載時需要判定文件是否完整,如果有問題則使用備份數據。此方案時效性得到了保障,但是將數據備份和業務放到了一起,且需要編碼實現,增加了業務代碼量。
第三個方案是 libfuse ,libfuse是用戶態文件系統介面。下面是libfuse官方簡介:
簡單來說,就是可以用libfuse構建一個用戶態文件系統。之前在老東家做了一個日誌分析平台,日誌的收集就使用了libfuse,大致架構如下:
業務系統寫日誌到掛載的用戶態文件系統中,用戶態文件系統自動轉發到了後續的處理中間件:redis、消息隊列、文件系統。
在這里也可以用類似的功能,即在文件上傳後,用戶態文件系統自動備份。此方案解耦了文件備案邏輯與業務邏輯。
最後一個方案是 RAID ,即廉價冗餘磁碟陣列。RAID不但可備份文件,還支持並發讀寫,提高上傳下載速率。
常用的RAID有:RAID0,RAID1,RAID01/RAID10,RAID5和RAID6等。我們來看看這幾種RAID的特點,以及是否適用於我們的文件服務。你會發現從RAID0到RAID6,又是一個從單點到分布式的過程。
看下面的兩張圖應該能更好的理解:
無論是RAID10還是RAID01,對磁碟的使用效率都不高。那如何提高磁碟使用率呢?就有了RAID3。
對於本地存儲來說,RAID是個相對實用的解決方案,既能提高數據安全、快速擴容,也提高了讀寫速率。但是無論擴展多少磁碟,容量還是相對有限,吞吐也相對有限,同時由於其還是單點,如果文件服務本身掛掉,就會導致單點故障。所以就有了分布式文件系統。
分布式文件系統下次單獨討論!
最後打個廣告,幫朋友開的專欄《零基礎Unity3D 游戲 開發》,適合沒有基礎、想從事 游戲 開發的小白!朋友從事 游戲 多年,開發了多款 游戲 ,收了30多個徒弟,技術杠杠的!