建立 LUN 時,同位檢查額外負擔是什麼,它與記錄大小又有何關?


最後修訂日期: 2019-09-20

在 QES 中,RAID 5、RAID 6 和 RAID-TP 等類型的 RAID 群組會使用同位檢查來提高硬碟容錯。而 QES 則藉由計算兩個磁碟上的資料,然後將結果儲存到第三個磁碟,來產生同位檢查資料。如果這三個磁碟當中有一個故障,QES 就會利用同位檢查,從另外兩個磁碟重建遺失的資料。QES 儲存同位檢查資料所需的儲存空間,取決於磁碟的磁區大小和 LUN 的記錄大小。

磁區大小指的是在實體磁碟中寫入或讀取一個資料單位的大小。在過去十年間,磁碟製造商將磁區大小從 512 個位元組陸續增至 4K 個位元組,以便提供更好的效能和錯誤更正。

記錄大小會指定儲存於 LUN 的最大資料區塊大小。在 QES 中,記錄大小由 LUN 的「效能設定檔」(Performance Profile) 設定來決定。建立儲存池時,QES 會根據以下假設,預留空間供同位檢查資料使用:所有 LUN 於儲存池中的記錄大小均設為預設值,也就是標準儲存池為 128K,啟用寫入聚合 (write coalescing) 功能的全 SSD 儲存池為 4K。建立或修改 LUN 時,若設定的記錄大小低於預設值,那麼就需要更多的空間來儲存同位檢查資料,這就是所謂的同位檢查額外負擔。

同位檢查額外負擔的例子如下:我們建立了一個由 5 個磁碟組成的 RAID 5 群組,每個磁碟的磁區大小為 512 個位元組。我們接著在 RAID 群組上建立一個 LUN,記錄大小為 4K 個位元組。如果 OS 將 16K 個位元組資料寫入 LUN,這些資料會如下配置:

磁碟 1 磁碟 2 磁碟 3 磁碟 4 磁碟 5
R1-1 R1-2 R1-3 R1-4 同位檢查
R1-5 R1-6 R1-7 同位檢查 R1-8
R2-1 R2-2 同位檢查 R2-3 R2-4
R2-5 同位檢查 R2-6 R2-7 R2-8
同位檢查 R3-1 R3-2 R3-3 R3-4
R3-5 同位檢查 R3-6 R3-7 R3-8
R4-1 R4-2 同位檢查 R4-3 R4-4
R4-5 R4-6 R4-7 同位檢查 R4-8

因為記錄大小為 4K 個位元組,所以 16K 個位元組的資料必須切成四筆 4K 個位元組的資料,分別是 R1、R2、R3R4。RAID 5 使用等量機制,所以資料會分散在 RAID 群組的磁碟中。

若要將一筆 4K 個位元組記錄寫入磁區大小為 512 位元組的磁碟,將會需要 8 個磁區。這樣每個 4K 個位元組記錄才能跨越兩列,並且需要兩個同位檢查區塊。將 16K 個位元組資料儲存到這個 RAID 5 群組,實際上需要 20K 個位元組,計算方式如下:

8(列) * 5(磁碟) * 512 個位元組(磁區大小) = 20K 個位元組

當 RAID 5 群組包含五個磁碟時,20% (即 1/5) 會預留給同位檢查使用,也就是說,512 位元組磁區大小不會產生同位檢查空間的額外負擔。

第 2 個例子:假設磁碟的磁區大小為 4K 個位元組而非 512 個位元組,且 OS 將 16K 個位元組資料寫入 LUN,這些資料會如下配置:

磁碟 1 磁碟 2 磁碟 3 磁碟 4 磁碟 5
R1-1 同位檢查 R2-1 同位檢查 R3-1
同位檢查 R4-1 同位檢查    

就上例而言,16K 個位元組資料會切成四筆 4K 個位元組的記錄,分別是 R1R2R3R4。但這時,在磁區大小為 4K 個位元組的情況下寫入一筆 4K 個位元組記錄,只需要一個磁區就夠。但是,儘管我們只寫入一個磁區,還是要寫入同位檢查資料,這將會占用 4K 個位元組的另一個磁區。因此,儲存 16K 個位元組資料會需要 32K 個位元組,計算方式如下:

8(磁區) * 4K 個位元組(磁區大小) = 32K 個位元組

當 RAID 5 群組包含 5 個磁碟時,20% (即 1/5) 會預留給同位檢查使用,在此例中,總共為 8K。但是此例中,我們必須使用額外的 8K 個位元組來儲存同位檢查區塊,這意味著同位檢查額外負擔為 8K。

第 3 個例子:為了避免產生第 2 個例子的同位檢查額外負擔,我們可以設定更大的記錄大小。如果 LUN 的記錄大小設為 16K 個位元組而非 4K 個位元組,且 OS 將 16K 個位元組資料寫入 LUN,這些資料會如下配置:

磁碟 1 磁碟 2 磁碟 3 磁碟 4 磁碟 5
R1-1 R1-2 R1-3 R1-4 同位檢查

寫入 16K 個位元組資料,將需要一個 16K 個位元組記錄,即 R1、四個 4K 個位元組磁區,以及一個 4K 個位元組的同位檢查區塊。這表示,不會產生同位檢查額外負擔。

注意:同位檢查額外負擔也會影響到共用資料夾。但同位檢查額外負擔也會隨應用程式的資料模式而有不同,在實際寫入資料之前是無法計算的。所以,建立共用資料夾時將不會顯示「同位檢查空間」。

這篇文章有幫助嗎?

33% 的人認為有幫助。
謝謝您,我們已經收到您的意見。

請告訴我們如何改進這篇文章:

如果您想提供其他意見,請於下方輸入。

選擇規格

      顯示更多 隱藏更多

      選擇其他偏好的語言:

      back to top