當前位置:首頁 » 服務存儲 » 為什麼構建如此復雜的存儲體系
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

為什麼構建如此復雜的存儲體系

發布時間: 2023-06-07 15:02:34

Ⅰ 為什麼現代微機的存儲系統中採用層次結構

cpu的內部
第一層:通用寄存器堆
第二層:指令與數據緩沖棧
第三層:高速緩沖存儲器
第四層:主儲存器(DRAM)
第五層:聯機外部儲存器(硬磁碟機)
第六層:離線外部儲存器(磁帶、光碟存儲器等)
這就是存儲器的層次結構~~~ 主要體現在訪問速度~~~
① 設置多個存儲器並且使他們並行工作。本質:增添瓶頸部件數目,使它們並行工作,從而減緩固定瓶頸。

② 採用多級存儲系統,特別是Cache技術,這是一種減輕存儲器帶寬對系統性能影響的最佳結構方案。本質:把瓶頸部件分為多個流水線部件,加大操作時間的重疊、提高速度,從而減緩固定瓶頸。

③ 在微處理機內部設置各種緩沖存儲器,以減輕對存儲器存取的壓力。增加CPU中寄存器的數量,也可大大緩解對存儲器的壓力。本質:緩沖技術,用於減緩暫時性瓶頸。

Ⅱ 現代計算機中為什麼要採用多級存儲體系結構

為了解決存儲器要求容量大、速度快、成本低三者之間的矛盾

Ⅲ 計算機採用分層次存儲體系結構的原因 答完整

在計算機網路技術中,網路的體系結構指的是通信系統的整體設計,它的目的是為網路硬體、軟體、協議、存取控制和拓撲提供標准。現在廣泛採用的是開放系統互連OSI(Open System Interconnection)的參考模型,它是用物理層、數據鏈路層、網路層、傳送層、對話層、表示層和應用層七個層次描述網路的結構。你應該注意的是,網路體系結構的優劣將直接影響匯流排、介面和網路的性能。而網路體系結構的關鍵要素恰恰就是協議和拓撲。目前最常見的網路體系結構有FDDI、乙太網、令牌環網和快速乙太網等。

採用分層次的結構原因:各層功能相對獨立,各層因技術進步而做的改動不會影響到其他層,從而保持體 系結構的穩定性

Ⅳ 現代計算機的儲存體系是如何構造的

現代計算機的儲存體系由兩部分構成,分別為主存儲器和外存儲器。主存儲器(也稱內存)主要作為計算機處理的數據的中轉站,而外存儲器則是為計算機提供更多空間來存儲數據和信息,從而使其可以處理更多的數據和信息。

Ⅳ 存儲器有哪些常見分類存儲器系統為什麼採用多級存儲結構

存儲的基礎部分分為ROM和RAM。

為了緩解主存儲器讀寫速度慢,不能滿足CPU運行速度需要的矛盾,另一方面解決了主存儲器容量小,存不下更多的程序和數據的難題。當前計算機系統中,廣泛採用了多級結構的存儲器系統,應用是建立在程序運行的局部性原理之上的。

(5)為什麼構建如此復雜的存儲體系擴展閱讀:

注意事項:

外儲存器是指除計算機內存及CPU緩存以外的儲存器,此類儲存器一般斷電後仍然能保存數據。常見的外存儲器有硬碟、軟盤、光碟、U盤等。所以說硬碟也屬於外存儲器,外存儲器最大的特點就是容量大,價格低,速度慢。

硬碟一般都是固定在電腦主機上的,只要在搬動主機或者電腦上時注意不要大幅度的晃動,不要長時間讓硬碟處於震盪狀態。定期進行磁碟碎片整理,使用殺毒軟體殺毒。

Ⅵ 深挖Kubernetes存儲為何如此難及其解決方案

以Kubernetes為代表的容器編排工具在應用開發部署領域起正發揮著顛覆性的變革作用。隨著微服務架構的發展,從開發人員的角度來看,應用邏輯架構與基礎設施架構之間開始解耦,這意味著開發者能夠將精力更多集中在軟體構建以及價值交付身上。

當管理Docker鏡像的時候,Kubernetes也讓實際應用變的十分便捷靈活。在利用Kubernetes進行容器架構的應用部署時,管理員們將在無需修改底層代碼的前提下將其部署在任何位置——包括公有雲、混合雲乃至私有雲。

雖然Kubernetes在擴展性、便攜性與管理性等方面的表現都相當給力,但截至目前,它仍然不支持存儲狀態。與之對應的是,如今的大多數應用都是有狀態的——換言之,要求在一定程度上配合外部存儲資源。

Kubernetes架構本身非常靈活的,能夠根據開發者的需求、規范以及實際負載情況,對容器進行隨意創建與撤銷。此外,Pod和容器還具有自我修復與復制能力。因此從本質上講,它們的生命周期普遍非常短暫。

但是,現有持久存儲解決方法無法支持動態的應用場景,而持久化存儲也無法滿足動態創建與撤銷的需求。

當我們需要將有狀態應用部署到其它基礎架構平台,或者另一家內部或混合雲供應商的環境中時,可移植性低下無疑將成為我們面臨的巨大挑戰。更具體地講,持久化存儲解決方案往往會鎖定於特定雲服務供應商,而無法靈活完成轉移。

另外,雲原生應用中的存儲機制也相當復雜、難於理解。Kubernetes中的不少存儲術語極易混淆,其中包含著復雜的含義與微妙的變化。再有,在原生Kubernetes、開源框架以及託管與付費服務之間還存在著諸多選項,這極大增加了開發人員在做出決定之前的考量與試驗成本。

以下是CNCF列出的雲原生存儲可選方案:

我們首先從最簡單的場景出發,即在Kubernetes當中部署一套資料庫。具體流程包括:選擇一套符合需求的資料庫,讓它在本地磁碟上運行,然後將其作為新的工作負載部署到集群當中。但是,由於資料庫中存在的一些固有屬性,這種方式往往無法帶來符合預期的效果。

容器本身是基於無狀態原則進行構建的,憑借這一天然屬性,我們才能如此輕松地啟動或撤銷容器環境。由於不存在需要保存及遷移的數據,集群也就不需要同磁碟讀寫這類密集型操作綁定在一起了。

但對於資料庫,其狀態必須隨時保存。如果以容器方式部署在集群當中的資料庫不需要進行遷移,或者不需要頻繁開關,那麼其基本屬性就相當於一種物理存儲設備。在理想情況下,使用數據的容器應該與該資料庫處於同一Pod當中。

當然,這並不是說將資料庫部署在容器中的作法不可取。在某些應用場景下,這樣的設計完全能夠滿足需求。舉例來說,在測試環境或者處理非生產級數據時,由於總體數據量很小,將資料庫納入集群完全沒有問題。但在實際生產中,開發人員往往需要仰仗於外部存儲機制。

Kubernetes到底是如何與存儲資源彼此通信的?其利用的是控制層介面。這些介面負責將Kubernetes與外部存儲相對接。接入Kubernetes的外部存儲解決方案被稱為「卷插件(Volume Plugins)」。正是有了卷插件的存在,存儲資源才得以抽象化並實現可移植性。

以前,卷插件一般由核心Kubernetes代碼庫進行構建、鏈接、編譯以及裝載。這樣就極大的限制了開發人員的發揮空間,同時也帶來了額外的維護開銷。因此,項目維護人員們決定在Kubernete的代碼庫上增加一些新的存儲功能。

隨著CSI以及Flexvolume的引入,卷插件如今可以在集群中直接部署,而完全無需更改代碼庫。

原生Kubernetes與存儲

持久卷是由管理員負責配置的存儲單元,它們獨立於任何單一Pod之外,因此不受Pod生命周期的影響。

存儲資源有兩種使用方式:靜態存儲與動態存儲。

實際上,靜態定義的持久卷並不能適應Kubernetes的可移植特性,因為存儲資源具有對環境的依賴性——例如AWS EBS或者GCE Persistent Disk。另外,手動綁定還需要根據不同供應商的存儲方案修改YAML文件。

在資源分配方面,靜態配置實際上也違背了Kubernetes的設計原則。後者的CPU與內存並非事先被分配好綁定在Pod或者容器上,而是以被動態形式進行分配。

通過簡單的說明,相信大家已經了解了原生Kubernetes對外部存儲資源的使用方式。當然,這里僅僅做出概括,實際使用場景中還有更多其它因素需要考量。

CSI——容器存儲介面

下面來看容器存儲介面(簡稱CSI)。CSI是由CNCF存儲工作組創建的統一標准,旨在定義一個標準的容器存儲介面,從而使存儲驅動程序能夠在任意容器架構下正常起效。

CSI規范目前已經在Kubernetes中得到普及,大量驅動插件被預先部署在Kubernetes集群內供開發人員使用。如此一來,我們就可以利用Kubernetes上的CSI卷來訪問與CSI兼容的開放存儲卷。

CSI的引入,意味著存儲資源能夠作為Kubernetes集群上的另一種工作負載實現容器化以及部署。

相關開源項目

目前,圍繞雲原生技術涌現出大量工具與項目。但作為生產場景中的一大突出問題,我們往往很難在雲原生架構中選擇最合適的開源項目。換言之,解決方案選項太多,反而令存儲需求變得更難解決。

我們再看一次CNCF列出的雲原生存儲的可選方案:

下面我會分享一下當下流行的存儲方案Ceph與Rook,還有Rancher開源的容器化分布式存儲Longhorn。

Ceph

Ceph是一種動態託管、橫向擴展的分布式存儲集群。Ceph面向存儲資源提供一種邏輯抽象機制,其設計理念包括無單點故障、自管理以及軟體定義等特性。Ceph可以面向同一套存儲集群分別提供塊存儲、對象存儲以及文件存儲的對應介面。

Ceph架構相當復雜的,其中使用到大量的底層技術,例如RADOS、librados、RADOSGW、RDB、CRUSH演算法,外加monitor、OSD以及MDS等功能性組件。這里我們先不談它的底層架構,關鍵在於Ceph屬於一種分布式存儲集群,這使得擴展更便利、能夠在不犧牲性能的前提下消除單點故障,且提供涵蓋對象存儲、塊存儲以及文件存儲的統一存儲體系。

Ceph架構圖

Rook

另一個有趣且頗具人氣的項目是Rook,這是一項旨在將Kubernetes與Ceph融合起來的技術方案。從本質上講,它將計算節點和存儲節點放進了同一個集群當中。

Rook是一種雲原生編排器,並對Kubernetes做出擴展。Rook允許用戶將Ceph放置在容器內,同時提供卷管理邏輯以立足Kubernetes之上實現Ceph的可靠運行。Rook還使本應由集群管理員操作的多種任務完成了自動化實現,其中包括部署、引導、配置、擴展以及負載均衡等等。

Rook自身不具備持久狀態,也不需要單獨管理。這,才是真正與Kubernetes設計原則相符的存儲資源管理方案。

Rook憑借著將Ceph與Kubernetes協同起來的強大能力而頗受歡迎,在GitHub上獲得近4000顆星,1600多萬次的下載,並吸引到100多名貢獻者,現已進入CNCF孵化階段。

Longhorn

Longhorn項目是Rancher Labs推出的開源的基於雲和容器部署的分布式塊存儲新方式。Longhorn遵循微服務的原則,利用容器將小型獨立組件構建為分布式塊存儲,並使用容器編排來協調這些組件,形成彈性分布式系統。

如今,基於雲和容器的部署規模日益擴大,分布式塊存儲系統也正變得越來越復雜,單個存儲控制器上的volume數量在不斷增加。2000年代初,存儲控制器上的volume數量只有幾十個,但現代雲環境卻需要數萬到數百萬的分布式塊存儲卷。存儲控制器變成了高度復雜的分布式系統。

Longhorn充分利用了近年來關於 如何編排大量的容器和虛擬機的核心技術 。例如,Longhorn並沒有構建一個可以擴展到100,000個volume的高度復雜的控制器,而是出於讓存儲控制器簡單輕便的考慮,創建了100,000個單獨的控制器。然後,我們可以利用像Kubernetes這樣的最先進的編排系統來調度這些獨立的控制器,共享一組磁碟中的資源,協同工作,形成一個彈性的分布式塊存儲系統。

Longhorn基於微服務的設計還有很多其他優勢。因為每個volume都有自己的控制器,在升級每個volume的控制器和replica容器時,是不會導致IO操作明顯的中斷的。Longhorn可以創建一個長期運行的工作來編排所有live volume的升級,同時確保不會中斷系統正在進行的操作。為確保升級不會導致意外的問題,Longhorn可以選擇升級一小部分volume,並在升級過程中出現問題時回滾到舊版本。這些做法在現代微服務應用中已得到廣泛應用,但在存儲系統中並不常見。希望Longhorn可以 助力於微服務在存儲領域的更多應用。

結 語

對於實際應用層面出現的任何問題,最重要的自然是判斷需求、設計系統或者選擇適當的工具。同樣的道理也適用於雲原生環境。雖然具體問題非常復雜,但也必然會出現大量工具方案嘗試解決。隨著雲原生世界的持續發展,我們可以肯定,新的解決方案將不斷涌現。未來,一切都會更加美好!

Ⅶ 在計算機中,為什麼要引入多層次的存儲系統

每個層次的內存速度不一樣,成本也不一樣,採用多層次就是解決在不影響基本速度的情況下降低成本,或者說在不增加成本的情況下提高速度。

Ⅷ 敘述微型計算機中的多級存儲體系以及工作原理

  1. 多級存儲體系

    多級存儲結構構成的存儲體系是一個整體。從CPU看來,這個整體的速度接近於Cache和寄存器的操作速度、容量是輔存(或海量存儲器)的容量,每位價格接近於輔存的位價格。從而較好地解決了存儲器中速度、容量、價格三者之間的矛盾,滿足了計算機系統的應用需要。

  2. 工作原理

    存儲器的層次結構能夠成功的關鍵在於處理器訪問存儲器的頻率遞減。在執行程序期間,處理器的指令存儲訪問和數據存儲訪問呈現簇狀,典型的程序包括許多迭代循環和子程序,一旦程序進入一個循環或子程序執行,就會重復訪問一個小范圍的指令集合。同理,對表和數組的操作涉及到存取一簇數據,經過很長一段時間,程序訪問的簇會改變,但在較短的時間內,處理器主要訪問存儲器中固定的簇。

    因此,可以通過層次組織數據,使得隨著組織層次的遞減,各層次的訪問比例也 依次遞減。以二級存儲器為例,讓第二級存儲器包含所有的指令和數據,程序當前的訪問簇暫時存放在第一級存儲器中。有時第一級存儲器中的某個簇要放到第二級存儲器中,以便為新的簇進入第一級存儲器讓出空間。

Ⅸ 存儲器的主要功能是什麼為什麼要把存儲系統分成若干個不同層次

一、存儲器的主要功能:

1、隨機存取存儲器(RAM)。

2、只讀存儲器(ROM)。

3、快閃記憶體(Flash Memory)。

4、先進先出存儲器(FIFO)。

5、先進後出存儲器(FILO)。

二、存儲器分為若干個層次主要原因:

1、合理解決速度與成本的矛盾,以得到較高的性能價格比。

磁碟存儲器價格較便宜,可以把容量做得很大,但存取速度較慢,因此用作存取次數較少,且需存放大量程序、原始數據(許多程序和數據是暫時不參加運算的)和運行結果的外存儲器。

2、使用磁碟作為外存,不僅價格便宜,可以把存儲容量做得很大,而且在斷電時它所存放的信息也不丟失,可以長久保存,且復制、攜帶都很方便。

(9)為什麼構建如此復雜的存儲體系擴展閱讀:

存儲器可做處理器,未來裝置有望更加輕薄短小:

有一群跨國研究團隊做了實驗,並真的成功運用存儲器執行一般電腦晶元的運算任務,倘若技術成熟,將有望使手機與電腦等裝置更加輕薄。

新加坡南洋理工大學、德國亞琛阿亨工業大學和歐洲最大的跨學科研究中心德國尤利希研究中心組成的研究團隊發現,在調整演演算法後,存儲器能如英特爾、高通等傳統處理器一般,進行運算處理。

目前市面上的裝置或電腦都是透過CPU從存儲器提取資訊進行運算處理,以二進制0跟1來實現指令,如字母A是用「01000001」這樣8位元的形式來處理或紀錄。而存儲器ReRAM透過不同電阻態代表0或1的數據狀態儲存資訊,其實還可實現更高基數的數據狀態記錄。

研究團隊就將ReRAM原型(prototype)調整為0、1、2的三進制,透過這樣的高基數運算系統可加速運算任務,並於存儲器就可進行邏輯運算。也節省了處理器與存儲器間數據傳輸的時間與功耗的消耗。

研究參與人之一、南洋理工大學資訊工程學系助理教授Chattopadhyay解釋,這就像一段很長的會話卻只用一個極小的翻譯器來轉換,是一段耗時且費力的過程,團隊所做的就是增加這個小型翻譯器的處理容量,使其能更有效的處理數據。