溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

組RAID時(shí)的條帶寬度及條帶深度是什么

發(fā)布時(shí)間:2021-12-30 16:27:01 來(lái)源:億速云 閱讀:791 作者:柒染 欄目:云計(jì)算

這篇文章將為大家詳細(xì)講解有關(guān)組RAID時(shí)的條帶寬度及條帶深度是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

以前一直為RAID到底應(yīng)該如何組織數(shù)據(jù)的物理存儲(chǔ)結(jié)構(gòu)而疑惑。
現(xiàn)在終于知道,一般情況下用RAID5即可,少數(shù)要求高的上RAID10。
不過(guò),在看書的時(shí)候,發(fā)現(xiàn)對(duì)于條帶的解釋不太清楚。度娘了一下,這貼出來(lái)給大家分享。
條帶(strip)是把連續(xù)的數(shù)據(jù)分割成相同大小的數(shù)據(jù)塊,把每段數(shù)據(jù)分別寫入到陣列中的不同磁盤上的方法。簡(jiǎn)單的說(shuō),條帶是一種將多個(gè)磁盤驅(qū)動(dòng)器合并為一個(gè)卷的方法。 許多情況下,這是通過(guò)硬件控制器來(lái)完成的。
  當(dāng)多個(gè)進(jìn)程同時(shí)訪問(wèn)一個(gè)磁盤時(shí),可能會(huì)出現(xiàn)磁盤沖突。大多數(shù)磁盤系統(tǒng)都對(duì)訪問(wèn)次數(shù)(每秒的 I/O 操作,IOPS)和數(shù)據(jù)傳輸率(每秒傳輸?shù)臄?shù)據(jù)量,TPS)有限制。當(dāng)達(dá)到這些限制時(shí),后面需要訪問(wèn)磁盤的進(jìn)程就需要等待,這時(shí)就是所謂的磁盤沖突。避免磁盤沖突是優(yōu)化 I/O 性能的一個(gè)重要目標(biāo),而 I/O 性能的優(yōu)化與其他資源(如CPU和內(nèi)存)的優(yōu)化有著很大的區(qū)別 ,I/O 優(yōu)化最有效的手段是將 I/O 最大限度的進(jìn)行平衡。
條帶化技術(shù)就是一種自動(dòng)的將 I/O 的負(fù)載均衡到多個(gè)物理磁盤上的技術(shù),條帶化技術(shù)就是將一塊連續(xù)的數(shù)據(jù)分成很多小部分并把他們分別存儲(chǔ)到不同磁盤上去。這就能使多個(gè)進(jìn)程同時(shí)訪問(wèn)數(shù)據(jù)的多個(gè)不同部分而不會(huì)造成磁盤沖突,而且在需要對(duì)這種數(shù)據(jù)進(jìn)行順序訪問(wèn)的時(shí)候可以獲得最大程度上的 I/O 并行能力,從而獲得非常好的性能。由于條帶化在 I/O 性能問(wèn)題上的優(yōu)越表現(xiàn),以致于在應(yīng)用系統(tǒng)所在的計(jì)算環(huán)境中的多個(gè)層次或平臺(tái)都涉及到了條帶化的技術(shù),如操作系統(tǒng)和存儲(chǔ)系統(tǒng)這兩個(gè)層次中都可能使用條帶化技術(shù)。
  條帶化后,條帶卷所能提供的速度比單個(gè)盤所能提供的速度要快很多,由于現(xiàn)在存儲(chǔ)技術(shù)成熟,大多數(shù)系統(tǒng)都采用條帶化來(lái)實(shí)現(xiàn)系統(tǒng)的I/O負(fù)載分擔(dān),如果OS有LVM軟件或者硬件條帶設(shè)備,決定因素是條帶深度(stripe depth)和條帶寬度(stripe width)。
  條帶深度:指的是條帶的大小,也叫條帶大小。有時(shí)也被叫做block size, chunk size, stripe length 或者 granularity。這個(gè)參數(shù)指的是寫在每塊磁盤上的條帶數(shù)據(jù)塊的大小。RAID的數(shù)據(jù)塊大小一般在2KB到512KB之間(或者更大),其數(shù)值是2的次方,即2KB,4KB,8KB,16KB這樣。
條帶大小對(duì)性能的影響比條帶寬度難以量化的多。

  • 減小條帶大小: 由于條帶大小減小了,則文件被分成了更多個(gè),更小的數(shù)據(jù)塊。這些數(shù)據(jù)塊會(huì)被分散到更多的硬盤上存儲(chǔ),因此提高了傳輸?shù)男阅?,但是由于要多次尋找不同的?shù)據(jù)塊,磁盤定位的性能就下降了。

  • 增加條帶大小: 與減小條帶大小相反,會(huì)降低傳輸性能,提高定位性能。

根據(jù)上邊的論述,我們會(huì)發(fā)現(xiàn)根據(jù)不同的應(yīng)用類型,不同的性能需求,不同驅(qū)動(dòng)器的不同特點(diǎn)(如SSD硬盤),不存在一個(gè)普遍適用的"最佳條帶大小"。所以這也是存儲(chǔ)廠家,文件系統(tǒng)編寫者允許我們自己定義條帶大小的原因。

  條帶寬度:是指同時(shí)可以并發(fā)讀或?qū)懙臈l帶數(shù)量。這個(gè)數(shù)量等于RAID中的物理硬盤數(shù)量。例如一個(gè)經(jīng)過(guò)條帶化的,具有4塊物理硬盤的陣列的條帶寬度就是4。增加條帶寬度,可以增加陣列的讀寫性能。道理很明顯,增加更多的硬盤,也就增加了可以同時(shí)并發(fā)讀或?qū)懙臈l帶數(shù)量。在其他條件一樣的前提下,一個(gè)由8塊18G硬盤組成的陣列相比一個(gè)由4塊36G硬盤組成的陣列具有更高的傳輸性能。

在操作系統(tǒng)的層次中,我們可以使用軟件條帶(如 LVM 中 LV 的條帶來(lái)實(shí)現(xiàn)條帶化技術(shù))或硬件條帶(如各種 RAID)。在存儲(chǔ)系統(tǒng)層次中,目前市場(chǎng)上絕大部分產(chǎn)品都提供了各種各樣的條帶技術(shù)(如各種 RAID)。

條帶化的設(shè)置

當(dāng)使用 LVM 或者硬件條帶化時(shí),決定條帶化效果的因素是條帶深度(stripe depth)和條帶寬度(stripe width):

  • 條帶深度指的是條帶塊的大小,也叫條帶單元;

  • 條帶寬度指的是條帶深度的產(chǎn)量或者一個(gè)條帶分布的驅(qū)動(dòng)數(shù);

需要根據(jù)系統(tǒng)的 I/O 要求來(lái)合理的選擇這些設(shè)置。對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)來(lái)說(shuō),比較合理的條帶深度是從 256K 到 1M 。下面分析一下條帶深度和條帶寬度的影響因素。

條帶深度

為了提高 I/O 效率,一次邏輯 I/O 請(qǐng)求轉(zhuǎn)化成物理 I/O 請(qǐng)求后,應(yīng)該讓這些物理 I/O 分布到最多的物理磁盤上去,也就是每個(gè)物理磁盤處理的物理 I/O 最少,最好只有一次 , 因而影響條帶的一個(gè)重要因素就是一次邏輯 I/O 請(qǐng)求的大小。

此外,系統(tǒng)中 I/O 的并發(fā)度不同我們對(duì)條帶的配置要求也不同。例如,在高并發(fā)度且邏輯 I/O 請(qǐng)求的大小都比較小的情況下,我們希望一塊磁盤能同時(shí)響應(yīng)多個(gè) I/O 請(qǐng)求;而在那些存在大的邏輯 I/O 請(qǐng)求的低并發(fā)度系統(tǒng)中,我們可能就需要多塊磁盤同時(shí)響應(yīng)一個(gè) I/O 請(qǐng)求。無(wú)論是一個(gè)磁盤還是多個(gè)磁盤響應(yīng) I/O 請(qǐng)求,我們的一個(gè)原則是讓一次邏輯 I/O 能被物理設(shè)備一次處理完成。

條帶寬度

正如我們前面所述,無(wú)論是一個(gè)還是多個(gè)磁盤響應(yīng)一個(gè)邏輯 I/O,我們都希望物理設(shè)備只處理一次 I/O 。因而在確定了條帶深度的基礎(chǔ)上,我們需要保證條帶寬度 >= I/O 請(qǐng)求的大小 / 條帶深度。這樣就能最大程度的保證 I/O 請(qǐng)求的并發(fā)處理能力了。

此外,考慮到以后系統(tǒng)容量的擴(kuò)充,我們也需要規(guī)劃好條帶寬度。

在 DB2 中合理規(guī)劃和設(shè)置條帶相關(guān)參數(shù)

下面先看下影響 I/O 性能 DB2 數(shù)據(jù)庫(kù)的相關(guān)參數(shù):

  • 頁(yè)大?。╬age size):DB2 中的數(shù)據(jù)頁(yè)大小,也決定了 DB2 一次單個(gè) I/O 請(qǐng)求中的數(shù)據(jù)塊的大小;

  • 預(yù)讀大?。╬refetch size):在預(yù)取讀時(shí),一次讀取數(shù)據(jù)塊的數(shù)量不能大于操作系統(tǒng)的最大 I/O 大小(oracle 中是參數(shù) block size);

  • 排序堆(sortheap)和排序堆閾值(sheapthres) :內(nèi)存中 sort 區(qū)域的大小,也決定了并發(fā)排序操作時(shí)的 I/O 大??;

其中,前面兩個(gè)是最關(guān)鍵的兩個(gè)參數(shù)。

DB2 的數(shù)據(jù)頁(yè)大小是在創(chuàng)建數(shù)據(jù)庫(kù)的時(shí)候指定的,并且不能被動(dòng)態(tài)的修改。它決定了在 DB2 中所有的表空間默認(rèn)的頁(yè)大小。但是我們?cè)趧?chuàng)建每個(gè)表空間的時(shí)候還可以根據(jù)數(shù)據(jù)存儲(chǔ)的需要單獨(dú)指定頁(yè)的大小。

在 OLTP 系統(tǒng)中,會(huì)存在大量小的并發(fā)的 I/O 請(qǐng)求。這時(shí)就需要考慮選擇比較大的條帶深度。使條帶深度大于 I/O 大小就稱為粗粒度條帶(Coarse Grain Striping)。在高并行度系統(tǒng)中,條帶深度為(n * page size),其中 n 為大于 1 的整數(shù)。通過(guò)粗粒度條帶能實(shí)現(xiàn)最大的 I/O 吞吐量(一次物理 I/O 可以同時(shí)響應(yīng)多個(gè)并發(fā)的邏輯 I/O)。大的條帶深度能夠使像全表掃描那樣的預(yù)取讀操作由一個(gè)磁盤驅(qū)動(dòng)來(lái)響應(yīng),并提高預(yù)取讀操作的性能。在 OLTP 系統(tǒng)中,為了避免一個(gè)邏輯 I/O 請(qǐng)求被多個(gè)物理 I/O 操作完成,條帶深度就需要設(shè)置為兩倍或者兩倍以上于 DB2 頁(yè)大小。例如,如果條帶深度是物理 I/O 大小的 N 倍,對(duì)于大量并發(fā) I/O 請(qǐng)求,我們可以保證最少有(N-1)/ N 的請(qǐng)求是由一塊磁盤來(lái)完成。

在低并發(fā)度的 DSS 系統(tǒng)中,由于 I/O 請(qǐng)求一般是序列化的,為了避免出現(xiàn) I/O 集中的熱點(diǎn)磁盤,我們需要避免邏輯 I/O 只有一塊磁盤處理。這時(shí)粗粒度條帶就不適合了。我們應(yīng)該選擇小的條帶深度,使一個(gè)邏輯 I/O 分布到多個(gè)磁盤上,從而實(shí)現(xiàn) I/O 的負(fù)載均衡。這就叫細(xì)粒度條帶。條帶深度的大小必須為(n * page size),其中 n 為小于預(yù)取參數(shù)(prefetch size)大小的整數(shù)。

 預(yù)取大小也是對(duì)條帶化有影響的一個(gè)重要參數(shù),它決定了 DB2 異步 I/O 的基本單位。首先我們要知道 DB2 的預(yù)?。╬refetching)I/O 機(jī)制,在數(shù)據(jù)庫(kù)普遍存在著大量、連續(xù)的 I/O 時(shí)候,預(yù)取可以極大的提高數(shù)據(jù)庫(kù)數(shù)據(jù)讀取的 I/O 性能(例如 DSS 系統(tǒng))。

關(guān)于組RAID時(shí)的條帶寬度及條帶深度是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI