這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 服務存儲 » 設計層次化存儲理論
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

設計層次化存儲理論

發布時間: 2022-09-03 02:51:22

1. 1. 簡述存儲系統層次結構的基本思想

制約計算機存儲器設計的問題歸納起來有三個:容量多大?速度多快?價格多貴?
容量多大的問題似乎沒有限制,不管容量多大,總要開發出應用來使用它。速度多快的問題在某種意義上更容易回答。為了獲得多大的性能,存儲器速度必須能夠跟上處理器的速度,即當處理器執行指令時,我們不想使它停下來等待指令或操作數。最後一個問題也必須考慮,對於實用的系統,存儲器的價格相對於其他部件必須是合理的。
正如人們所預料的,在存儲器的3個關鍵特性即價格、容量和存取時間之間需要進行權衡。任何時候,都有各種技術可用來實現存儲系統。在這個技術領域中,存在如下關系:
存取時間越短,每位的價格就越高;
容量越大,每位的價格就越低;
容量越大,存取時間就越長;
很顯然,擺在設計者面前的難題是,不僅需要大容量,而且需要低的每位價格,因此希望採用提供大容量存儲器的技術。但為了滿足性能需求,設計者又必須使用昂貴、容量較小和存取時間快的存儲器。
解決這個難題的方法是採用存儲器層次結構,而不只是依賴單一的存儲部件或技術。下圖給出了一個通用存儲層次結構,圖中從上到下,出現下列情況:
每位價格降低;
容量增大;
存取時間增大;
處理器訪問存儲器的頻度降低;
因此,容量較小、價格較貴、速度較快的存儲器可作為容量較大、速度較慢的存儲器的補充。這種組織方式成功的關鍵是最後一項,即處理器訪問存儲器的頻度降低。
條件四有效的基礎是訪問局部性原理。在程序執行的過程中,處理器訪問存儲器中的指令和數據傾向於成簇(塊)。程序通常通常包含很多迭代循環和子程序,一旦進入了一個循環和子程序,則需重復訪問一小組指令。同樣,對於表和數組的操作,包含存取一簇簇的數據。在一長段時間內,使用的簇是變動的;而在一小段時間內,處理器主要訪問存儲器中的固定簇。
因此,通過分層結構組織數據,有可能使存取較低層的百分比低於存取高層存儲器的百分比。考慮剛才給出的二級存儲器的例子,讓第二級的存儲器包含所有程序的指令和數據,當前的簇臨時放在第一級,第一級的某些簇會不時地交換回第二級,為將要進入第一級的簇騰出空間。然而,平均來說,多數的訪問是對第一級中的指令和數據。
這個原則可以應用到二級以上的存儲器。考察圖所示的分層結構,速度較快、容量較小且價格最貴的存儲器是處理器的內部寄存器。下跳兩層是主存儲器,它是計算機中主要的內存系統。主存儲器常用速度更快,容量更小的高速緩存來擴充。
(很多體系結構或組成原理相關的書籍上都有的。回答比較粗糙,建議你參考William Stalling的計算機組織與體系結構,這本書上有對該問題的完整的論述。)

2. 存儲系統的層次結構是基於什麼原理

第一層:通用寄存器堆 第二層:指令與數據緩沖棧 第三層:高速緩沖存儲器 第四層:主儲存器(DRAM) 第五層:聯機外部儲存器(硬磁碟機) 第六層:離線外部儲存器(磁帶、光碟存儲器等) 這就是存儲器的層次結構~~~ 主要體現在訪問速度~~~ 1,設...

3. 存儲體系要解決什麼矛盾

解決存儲器容量和速度的矛盾。

人們為了解決存儲器容量和速度的矛盾,應用了訪問局部性原理,把存儲體系設計成為層次化的結構以滿足使用要求。在這個層次化存儲系統中,一般由寄存器、高速緩存(Cache)、主存(內存)、外存(硬碟等)組成。其中寄存器是最高層次的存儲部件,容量最小,速度最快。寄存器對程序員是不透明的,對它的訪問需按寄存器名訪問而不是按地址。

存儲體系結構的發展分為三個階段:匯流排存儲階段;存儲網路階段 ;虛擬存儲階段。

例如,以伺服器為中心的存儲從體系結構上看,它是基於匯流排連接的存儲 ( BAS ),包括 SCSI 匯流排、IDE介面、數據直接存儲DAS,如 SCSI磁碟陣列。基於匯流排連接的存儲體系結構存在許多不可克服的缺點,如:原始容量限制、沒有擴展性、所有的數據存儲受伺服器性能的限制、無法集中管理等。

4. 設計層次化存儲系統的理論依據是什麼

計算機系統中存儲層次可分為高速緩沖存儲器、主存儲器、輔助存儲器三級

高速緩沖存儲器用來改善主存儲器與中央處理器的速度匹配問題

輔助存儲器用於擴大存儲空,即硬碟,光碟等,容量大,但存取數據慢,計算機都是先把輔存中要讀的東西放到主存後處理,然後在依據情況是否寫回。

主存即為內存,斷電信息丟失,但存取數據塊,他的容量大小直接影響計算機運行速度。

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

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

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

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

6. 在計算機的層次化存儲器結構中,虛擬存儲器是指

虛擬存儲器(Virtual Memory):在具有層次結構存儲器的計算機系統中,自動實現部分裝入和部分替換功能,能從邏輯上為用戶提供一個比物理貯存容量大得多,可定址的「主存儲器」。虛擬存儲區的容量與物理主存大小無關,而受限於計算機的地址結構和可用磁碟容量。
通俗的講,虛擬內存,分布式共享內存,分頁存儲都屬於這個范疇。

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

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

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

8. 分層存儲與虛擬化技術的分層存儲

分層存儲其實已經不是一個新鮮的概念,而是已經在計算機存儲領域應用多年。其與計算機的發明與發展相伴相生。在馮-諾依曼提出計算機的模型「存儲程序」時就已經包含了分層存儲的概念。「存儲程序」原理,是將根據特定問題編寫的程序存放在計算機存儲器中,然後按存儲器中的存儲程序的首地址執行程序的第一條指令,以後就按照該程序的規定順序執行其他指令,直至程序結束執行。在這里的外存儲器與內存儲器,就是一個分層存儲的最初模型。
分層存儲(Tiered Storage),也稱為層級存儲管理(Hierarchical Storage Management),廣義上講,就是將數據存儲在不同層級的介質中,並在不同的介質之間進行自動或者手動的數據遷移,復制等操作。同時,分層存儲也是信息生命周期管理的一個具體應用和實現。
而實際上,將相同成本及效率的存儲介質放在不同層級之間進行數據遷移復制在實用性及成本上並不是有效的數據存儲方式。因此,在不同的層級之間使用有差別的存儲介質,以期在相同成本下,既滿足性能的需要又滿足容量的需要。這種存儲介質上的差別主要是在存取速度上及容量上。存取速度快的介質通常都是存儲單位成本(每單位存儲容量成本,如1元/GB)高,而且容量相對來講比較低。相應的,存取速度慢的介質通常是為了滿足容量與成本方面的要求,既在相同的成本下可以得到更大的容量。所以,從這方面來說,分層存儲其實是一種在高速小容量層級的介質層與低速大容量層級的介質層之間進行一種自動或者手動數據遷移、復制、管理等操作的一種存儲技術及方案。
一般來說,分層存儲中,我們將存取速度最快的那一層的介質層稱為第0層(Tier 0),依次為第1層,第2層等等。理論上說,層級的劃分可以有很多層,但是在實踐中,最多的層級在5層左右。過多的層級會增加數據及介質管理的難道及可用性。因此在層級的設置上有一個拐點,即層級達到一個特定的層數時,會導致成本的上升,而使得可用性、可靠性都會相應下降。通常層級的設定在2-4層之間。如下圖所示: 在計算機系統中,CPU 的運行速度往往要比內存速度快上好幾百倍甚至更多,為了更多地榨取CPU的計算能力,就需要在訪問數據的速度上進行提升,否則內存的速度將成為整個系統的性能短板。因此在這樣的思想下,CPU慢慢發展出來1級或者2級這樣的存儲緩存。實際也表明,緩存的存在確實對於系統性能的提升起到了巨大的推動作用。
相應的,內存的訪問速度又是硬碟訪問速度的幾百倍甚至更多,也是基於CPU類似的指導思想,我們能不能在存儲之間也進行這樣的分層(或者說緩存)以期提高系統的I/O性能,以滿足應用對系統提出的更多高I/O的需求呢?
從某種意義上說,內存其實也就是充當了CPU與外部存儲之間的另一個級別的緩存。作為用戶來講,我們當然希望所有需要用到的數據都最好是存在最高速的存儲當中。但是這樣近乎是烏托邦式的理想至少在當前來說是不現實的。在技術上的難度不說,成本的壓力就會使得用戶喘不過氣來,再一個就是有沒有必要的問題,因為有的數據根本都不需要一直存於這樣的存儲中。在計算機界中有一個很有名的理論,就是說,加上一個中間層,就可以解決計算機中許多的問題。而這個「中間層」也正是我們所尋求的,實際也證明這樣的中間層確實取得了非常好的效果。
據IDC數據預測,到2012年,信息數據的增長將會達到50%的復合年增長率,這個增長主要源於越來越來多數據內容生成並存儲,經濟全球化使用商業各個部門及與商業夥伴之間需要保持連接,使得更多的數據被生成,復制及保存。法規遵從及管理,還有容災與備份都使得數據的增長持續上升。天下沒有一勞永逸的解決方案,我們需要根據不同的數據存儲需求,設計不同的存儲方案。比如歸檔,我們可以將數據存儲在磁帶上,比如需要頻繁訪問的實時數據我們可以放在內存或者SSD(固態硬碟)設備中,對於容災或者備份,我們可以使用大容量低成本的存儲來應對。正所謂好鋼用在刀刃上,用戶也希望把資金投向更能產生效益的存儲上。
除了需要滿足不同的存儲需求,還有出於對於高性能高吞吐量應用的支持。因為有的應用需要這樣存儲系統。特別是現在風頭正勁的虛擬化技術。為了在一台設備上支持更多的虛擬應用,就需要系統支持更大的吞吐量以及更高的性能。全部採用高速介質在成本上現在依然不是可行的,也不是必須的。因為根據數據局部性原理,往往被頻繁訪問的數據是局部而有限的。為了應對部份這樣的數據而全採用高速存儲實在是過於奢侈。如果我們針對這部份數據另開小灶來解決不是更好?所以分層存儲在這里就可以大展拳腳。我們把高頻率訪問的數據放在高速存儲介質上,而其他的數據放在速度較慢一些的介質上,這實際上就是提高了系統的吞吐量。 從計算機系統角度來說,最上層的存儲層應該是CPU內的各類型寄存器,其次是CPU內的緩存,其次再是系統內存。因為從分層存儲的定義上,此類型存儲器是符合定義規則的。因為這些存儲器速度與容量都有差別,越靠近CPU的存儲器成本越高,速度越快,容量越小,並且在CPU的控制下,數據這些不同類型的存儲器中間進行自動的轉存。比如寄存器通常在16、32、64、128位之間,而緩存則在幾十個位元組及到幾兆位元組之間,內存容量當前通常都在幾百兆位元組以上,伺服器級的內存也上幾十個吉位元組。很有意思的是,這類型的分層也非常符合上圖所示的效益成本曲線圖。層級過多時,對於CPU的硬體設計及不同層次之間的數據一致性的保證都是一個挑戰。所以,現代CPU在寄存器與內存之間的緩存基本在1-3級。而我們通常使用的386平台的CPU(Intel 及 AMD)基本上都只有兩級緩存。這類存儲都有一個共同的特點,就是系統掉電後數據不復存在。我們將此類型的分層存儲稱為易失性存儲分層,或者內部存儲器分層存儲。
而另外一種分類,則是非易失性分層存儲,或者叫外部分層存儲。此類型的存儲介質一般包括固態硬碟(SSD)、機械式硬碟、光碟、快閃記憶體檔(包括外置硬碟)、磁帶庫等等。而此類的存儲介質分層正是我們所要關注的,如沒有特殊的說明情況下,在此文檔中所說的分層存儲都是指外部分層存儲。一般來說,作為第0層的存儲介質通常為 RAM 磁碟(隨機訪問存儲磁碟,其速度與內存同速,但是價格昂貴,使用環境基本上是特殊計算環境)以及 SSD,第1層可能有 FC 15K硬碟或者SAS 15K硬碟,或者相應的10K硬碟。第2層可能有其他類型的硬碟及磁碟庫等。第3層,可能是如磁帶庫以及光碟庫這樣的離線介質。當然這樣的分層不是標准,但是一個實踐中常用的分層策略。
如 D2D2T 這樣的存儲方案,其實就是分層存儲的一個實踐方案。數據從本地的磁碟轉存於於另一個遠程的磁碟(D2D)。這個磁碟的形式可以是一個JBOD,或者一個虛擬存儲設備,然後再通過一定的轉存策略將這個磁碟的數據轉存於磁帶庫或者磁帶(D2T)。愛數備份存儲櫃X系列都支持D2D2T這樣的應用。 由上一節可知道,外部分層存儲只不過是內部分層存儲的一個外延。所以,外部分層存儲考慮的問題與內部分層存儲實際上是大同小異的。
1、 首先是數據一致性的問題。這個問題比較好理解。如果不同的數據在不同的存儲層級之間存在時,數據的改寫必然導致數據的不致的問題。在內部分層存儲時,可以採用通寫策略或者回寫策略。而不同的方法也有各自優缺點,這里就不再贅述。但是外部分層存儲與內部分層存儲有一個最大的不同是,內存儲最終數據需要寫到內存中,而外分層存儲中,則不是必須的。當然也可以設計成這樣的實現方案,但是這樣話,分層存儲的性能優勢則必定會受到影響。數據在不同層級之間的連續性可以由一個虛擬層來保證。這個我們在談到虛擬化時會討論這個問題。
2、 第二個問題就是命中率的問題。如何設計一套演算法或者實現策略來提高數據系統的命中率是分層存儲中是否能起到其相應作用的關鍵。這個與CPU的緩存機制是完全一樣的。不過,CPU的緩存機制已經有一套非常成熟的演算法設計。而外部分層存儲與內部分層存儲有其不同的特性,因此,CPU中的緩存機制不能全部照拿過來用。特別是CPU的緩存機制還主要是硬體設計上面的問題。而外部存儲層可能還與一些邏輯設計相關,比如文件系統,文件等。從這點上說,外部分層存儲的軟體設計上比起CPU緩存的設計可能要更復雜一些。
3、 第三個問題就是在分層介質的選擇上。上面也提過,不同層級之間的介質應該是有差別的,否則就失去了分層的意義。一般來說,高速介質應該是小容量、高成本,隨著層級的往下走,其成本容量曲線應該呈現如下的形式:
即容量越大的單位成本越低,速度越慢,因此應該放到更低的層級中,反之亦然。因此,在存儲介質的配置上如何找到一個合適的點,使得成本與效益最優化則是在分層介質選擇及策略制定上需要考慮的問題。下面的圖中給出了一個實際的可能的配置方案:1、 第四個問題就是數據分層的級別。對於數據的描述有位元組級,塊級(包括扇區及簇),文件級及文件系統級。當然不同的級別有不同的應用場合,並不是哪種級別好於哪個級別。對於文件級的分層,對於歸檔,法規遵從則比較適合。對於文件系統級的則多用於容災及備份系統中。對於塊級則可能用在虛擬化中較為合適。因此需要根據不同的需求制定不同的分層級別。
2、 第五個問題就是數據的遷移策略的設計。可以根據數據的重要性、訪問頻度、大小、年齡來制定遷移策略。但是如同第四點所說明的那樣,不同的策略是有不同的應用場合的,沒有孰優孰劣的問題。好的策略應該是不同最優策略的組合,也就是因「需」制宜地選擇合適的遷移演算法或者方法。根據年齡進行遷移的策略可以用在歸檔及容災備份系統中。根據訪問頻度則可以用於虛擬化存儲系統中等等。類似的方法已經用於計算機軟體設計或者硬體設計當中的很多地方,如LRU(最近最少使用)、ARC(自適應交替緩存)都是可以借鑒的。

9. 計算機網路為什麼採用層次化的體系結構

方便維護和管理。在運行中將一個工作分為每個環節,分別由不同的硬體和軟體模塊去完成。這樣可以將往來通信和網路互連這一復雜的問題變得較為簡單。

10. 存儲器的層次體系結構是什麼樣的

各存儲器之間的關系
按照與CPU的接近程度,存儲器分為內存儲器與外存儲器,簡稱內存與外存。內存儲器又常稱為主存儲器(簡稱主存),屬於主機的組成部分;外存儲器又常稱為輔助存儲器(簡稱輔存),屬於外部設備。CPU不能像訪問內存那樣,直接訪問外存,外存要與CPU或I/O設備進行數據傳輸,必須通過內存進行。在80386以上的高檔微機中,還配置了高速緩沖存儲器(cache),這時內存包括主存與高速緩存兩部分。對於低檔微機,主存即為內存。

把存儲器分為幾個層次主要基於下述原因:


半導體存儲器
1、合理解決速度與成本的矛盾,以得到較高的性能價格比。半導體存儲器速度快,但價格高,容量不宜做得很大,因此僅用作與CPU頻繁交流信息的內存儲器。磁碟存儲器價格較便宜,可以把容量做得很大,但存取速度較慢,因此用作存取次數較少,且需存放大量程序、原始數據(許多程序和數據是暫時不參加運算的)和運行結果的外存儲器。計算機在執行某項任務時,僅將與此有關的程序和原始數據從磁碟上調入容量較小的內存,通過CPU與內存進行高速的數據處理,然後將最終結果通過內存再寫入磁碟。這樣的配置價格適中,綜合存取速度則較快。


存儲器晶元
為解決高速的CPU與速度相對較慢的主存的矛盾,還可使用高速緩存。它採用速度很快、價格更高的半導體靜態存儲器,甚至與微處理器做在一起,存放當前使用最頻繁的指令和數據。當CPU從內存中讀取指令與數據時,將同時訪問高速緩存與主存。如果所需內容在高速緩存中,就能立即獲取;如沒有,再從主存中讀取。高速緩存中的內容是根據實際情況及時更換的。這樣,通過增加少量成本即可獲得很高的速度。

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