這篇文章將為大家詳細講解有關組RAID時的條帶寬度及條帶深度是什么,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
松溪網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)建站。
以前一直為RAID到底應該如何組織數(shù)據(jù)的物理存儲結構而疑惑。
現(xiàn)在終于知道,一般情況下用RAID5即可,少數(shù)要求高的上RAID10。
不過,在看書的時候,發(fā)現(xiàn)對于條帶的解釋不太清楚。度娘了一下,這貼出來給大家分享。
條帶(strip)是把連續(xù)的數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每段數(shù)據(jù)分別寫入到陣列中的不同磁盤上的方法。簡單的說,條帶是一種將多個磁盤驅動器合并為一個卷的方法。 許多情況下,這是通過硬件控制器來完成的。
當多個進程同時訪問一個磁盤時,可能會出現(xiàn)磁盤沖突。大多數(shù)磁盤系統(tǒng)都對訪問次數(shù)(每秒的 I/O 操作,IOPS)和數(shù)據(jù)傳輸率(每秒傳輸?shù)臄?shù)據(jù)量,TPS)有限制。當達到這些限制時,后面需要訪問磁盤的進程就需要等待,這時就是所謂的磁盤沖突。避免磁盤沖突是優(yōu)化 I/O 性能的一個重要目標,而 I/O 性能的優(yōu)化與其他資源(如CPU和內存)的優(yōu)化有著很大的區(qū)別 ,I/O 優(yōu)化最有效的手段是將 I/O 最大限度的進行平衡。
條帶化技術就是一種自動的將 I/O 的負載均衡到多個物理磁盤上的技術,條帶化技術就是將一塊連續(xù)的數(shù)據(jù)分成很多小部分并把他們分別存儲到不同磁盤上去。這就能使多個進程同時訪問數(shù)據(jù)的多個不同部分而不會造成磁盤沖突,而且在需要對這種數(shù)據(jù)進行順序訪問的時候可以獲得最大程度上的 I/O 并行能力,從而獲得非常好的性能。由于條帶化在 I/O 性能問題上的優(yōu)越表現(xiàn),以致于在應用系統(tǒng)所在的計算環(huán)境中的多個層次或平臺都涉及到了條帶化的技術,如操作系統(tǒng)和存儲系統(tǒng)這兩個層次中都可能使用條帶化技術。
條帶化后,條帶卷所能提供的速度比單個盤所能提供的速度要快很多,由于現(xiàn)在存儲技術成熟,大多數(shù)系統(tǒng)都采用條帶化來實現(xiàn)系統(tǒng)的I/O負載分擔,如果OS有LVM軟件或者硬件條帶設備,決定因素是條帶深度(stripe depth)和條帶寬度(stripe width)。
條帶深度:指的是條帶的大小,也叫條帶大小。有時也被叫做block size, chunk size, stripe length 或者 granularity。這個參數(shù)指的是寫在每塊磁盤上的條帶數(shù)據(jù)塊的大小。RAID的數(shù)據(jù)塊大小一般在2KB到512KB之間(或者更大),其數(shù)值是2的次方,即2KB,4KB,8KB,16KB這樣。
條帶大小對性能的影響比條帶寬度難以量化的多。
減小條帶大小: 由于條帶大小減小了,則文件被分成了更多個,更小的數(shù)據(jù)塊。這些數(shù)據(jù)塊會被分散到更多的硬盤上存儲,因此提高了傳輸?shù)男阅?,但是由于要多次尋找不同的?shù)據(jù)塊,磁盤定位的性能就下降了。
增加條帶大小: 與減小條帶大小相反,會降低傳輸性能,提高定位性能。
根據(jù)上邊的論述,我們會發(fā)現(xiàn)根據(jù)不同的應用類型,不同的性能需求,不同驅動器的不同特點(如SSD硬盤),不存在一個普遍適用的"最佳條帶大小"。所以這也是存儲廠家,文件系統(tǒng)編寫者允許我們自己定義條帶大小的原因。
條帶寬度:是指同時可以并發(fā)讀或寫的條帶數(shù)量。這個數(shù)量等于RAID中的物理硬盤數(shù)量。例如一個經(jīng)過條帶化的,具有4塊物理硬盤的陣列的條帶寬度就是4。增加條帶寬度,可以增加陣列的讀寫性能。道理很明顯,增加更多的硬盤,也就增加了可以同時并發(fā)讀或寫的條帶數(shù)量。在其他條件一樣的前提下,一個由8塊18G硬盤組成的陣列相比一個由4塊36G硬盤組成的陣列具有更高的傳輸性能。
在操作系統(tǒng)的層次中,我們可以使用軟件條帶(如 LVM 中 LV 的條帶來實現(xiàn)條帶化技術)或硬件條帶(如各種 RAID)。在存儲系統(tǒng)層次中,目前市場上絕大部分產(chǎn)品都提供了各種各樣的條帶技術(如各種 RAID)。
條帶化的設置
當使用 LVM 或者硬件條帶化時,決定條帶化效果的因素是條帶深度(stripe depth)和條帶寬度(stripe width):
條帶深度指的是條帶塊的大小,也叫條帶單元;
條帶寬度指的是條帶深度的產(chǎn)量或者一個條帶分布的驅動數(shù);
需要根據(jù)系統(tǒng)的 I/O 要求來合理的選擇這些設置。對于數(shù)據(jù)庫系統(tǒng)來說,比較合理的條帶深度是從 256K 到 1M 。下面分析一下條帶深度和條帶寬度的影響因素。
條帶深度
為了提高 I/O 效率,一次邏輯 I/O 請求轉化成物理 I/O 請求后,應該讓這些物理 I/O 分布到最多的物理磁盤上去,也就是每個物理磁盤處理的物理 I/O 最少,最好只有一次 , 因而影響條帶的一個重要因素就是一次邏輯 I/O 請求的大小。
此外,系統(tǒng)中 I/O 的并發(fā)度不同我們對條帶的配置要求也不同。例如,在高并發(fā)度且邏輯 I/O 請求的大小都比較小的情況下,我們希望一塊磁盤能同時響應多個 I/O 請求;而在那些存在大的邏輯 I/O 請求的低并發(fā)度系統(tǒng)中,我們可能就需要多塊磁盤同時響應一個 I/O 請求。無論是一個磁盤還是多個磁盤響應 I/O 請求,我們的一個原則是讓一次邏輯 I/O 能被物理設備一次處理完成。
條帶寬度
正如我們前面所述,無論是一個還是多個磁盤響應一個邏輯 I/O,我們都希望物理設備只處理一次 I/O 。因而在確定了條帶深度的基礎上,我們需要保證條帶寬度 >= I/O 請求的大小 / 條帶深度。這樣就能最大程度的保證 I/O 請求的并發(fā)處理能力了。
此外,考慮到以后系統(tǒng)容量的擴充,我們也需要規(guī)劃好條帶寬度。
在 DB2 中合理規(guī)劃和設置條帶相關參數(shù)
下面先看下影響 I/O 性能 DB2 數(shù)據(jù)庫的相關參數(shù):
頁大?。╬age size):DB2 中的數(shù)據(jù)頁大小,也決定了 DB2 一次單個 I/O 請求中的數(shù)據(jù)塊的大?。?/p>
預讀大?。╬refetch size):在預取讀時,一次讀取數(shù)據(jù)塊的數(shù)量不能大于操作系統(tǒng)的最大 I/O 大小(oracle 中是參數(shù) block size);
排序堆(sortheap)和排序堆閾值(sheapthres) :內存中 sort 區(qū)域的大小,也決定了并發(fā)排序操作時的 I/O 大?。?/p>
其中,前面兩個是最關鍵的兩個參數(shù)。
DB2 的數(shù)據(jù)頁大小是在創(chuàng)建數(shù)據(jù)庫的時候指定的,并且不能被動態(tài)的修改。它決定了在 DB2 中所有的表空間默認的頁大小。但是我們在創(chuàng)建每個表空間的時候還可以根據(jù)數(shù)據(jù)存儲的需要單獨指定頁的大小。
在 OLTP 系統(tǒng)中,會存在大量小的并發(fā)的 I/O 請求。這時就需要考慮選擇比較大的條帶深度。使條帶深度大于 I/O 大小就稱為粗粒度條帶(Coarse Grain Striping)。在高并行度系統(tǒng)中,條帶深度為(n * page size),其中 n 為大于 1 的整數(shù)。通過粗粒度條帶能實現(xiàn)最大的 I/O 吞吐量(一次物理 I/O 可以同時響應多個并發(fā)的邏輯 I/O)。大的條帶深度能夠使像全表掃描那樣的預取讀操作由一個磁盤驅動來響應,并提高預取讀操作的性能。在 OLTP 系統(tǒng)中,為了避免一個邏輯 I/O 請求被多個物理 I/O 操作完成,條帶深度就需要設置為兩倍或者兩倍以上于 DB2 頁大小。例如,如果條帶深度是物理 I/O 大小的 N 倍,對于大量并發(fā) I/O 請求,我們可以保證最少有(N-1)/ N 的請求是由一塊磁盤來完成。
在低并發(fā)度的 DSS 系統(tǒng)中,由于 I/O 請求一般是序列化的,為了避免出現(xiàn) I/O 集中的熱點磁盤,我們需要避免邏輯 I/O 只有一塊磁盤處理。這時粗粒度條帶就不適合了。我們應該選擇小的條帶深度,使一個邏輯 I/O 分布到多個磁盤上,從而實現(xiàn) I/O 的負載均衡。這就叫細粒度條帶。條帶深度的大小必須為(n * page size),其中 n 為小于預取參數(shù)(prefetch size)大小的整數(shù)。
預取大小也是對條帶化有影響的一個重要參數(shù),它決定了 DB2 異步 I/O 的基本單位。首先我們要知道 DB2 的預?。╬refetching)I/O 機制,在數(shù)據(jù)庫普遍存在著大量、連續(xù)的 I/O 時候,預取可以極大的提高數(shù)據(jù)庫數(shù)據(jù)讀取的 I/O 性能(例如 DSS 系統(tǒng))。
關于組RAID時的條帶寬度及條帶深度是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。