建立 LUN 時,同位檢查額外負擔是什麼,它與記錄大小又有何關?
在 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、R3 和 R4。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 個位元組的記錄,分別是 R1、R2、R3 和 R4。但這時,在磁區大小為 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 個位元組的同位檢查區塊。這表示,不會產生同位檢查額外負擔。
注意:同位檢查額外負擔也會影響到共用資料夾。但同位檢查額外負擔也會隨應用程式的資料模式而有不同,在實際寫入資料之前是無法計算的。所以,建立共用資料夾時將不會顯示「同位檢查空間」。