FAT在RAID恢復中的應用(1) 計算塊大小

2021-09-21 12:07:16 字數 1292 閱讀 7347

我們知道,fat表的表項號是連續的,即由0開始編號,0號表項與1號表項由系統保留做特殊用途。使用者資料由2號表項開始使用,也就是2號簇對應的fat表項。表項內記錄的簇號可能是不連續的,但表項號本身則是連續的。利用表項號的這個連續性,我們就可以計算raid塊的大小。

1. 計算方法

利用 fat

表計算塊大小的原理就是,相鄰磁碟的同條帶同位置的

fat項間占用的空間是乙個塊大小。如圖

11.1

所示。

11.1

中,磁碟

0 和磁碟

1 是陣列中兩塊相鄰的磁碟,

fat項 n

位於磁碟

0 的某個塊,當該塊寫滿後,就會轉至磁碟

1 的同條帶進行寫入。

fat項 m

是磁碟1 上與

fat項 n

同條帶同位置的

fat表項,這樣,由

fat項 n

開始至fat

項 m

前的空間即為乙個塊(灰色加亮部分)。因此,我們可以得出以下公式:

塊大小扇區數=(

m – n)* 

每fat

表項位元組數

/ 每扇區位元組數

最大的問題是,每個表項內記錄的值是為當前資料分配的下乙個簇的簇號,而並不記錄表項號本身,我們必須想辦法得到當前

fat項的表項號才可以進行計算。那麼,如何得到這個表項號呢?

我們知道,系統為檔案分配空間時,會優先為其分配連續的空間,這時,它們的簇號就是連續的。簇號連續,則記錄這些簇號的相應表項也是連續的,如圖

11.2

所示。簇號

14、 15

、 16

連續,則它們所在的表項的號碼也是連續的。

因此,我們可以找到至少有三個連續的簇號記錄位置,取中間的簇號值(原則上另一磁碟的相同位置也需要符合同樣要求,但並不意味著不是三個連續的記錄位置就一定不能使用,因為可能會有結束標記存在。後面我們的例項中

2.img

中所取的位置就沒有明顯的三個簇號連續)。對於圖

11.2

中的記錄值為

15的簇來講,它的值實際上是當前位置的表項號14加

1而來。同樣,對於圖

11.1

中來講,在磁碟0上

fat表項為

n的位置實際記錄的是下一簇的簇號n+1

;同樣,磁碟1中fat項為m的位置記錄的是下一簇的簇號m+1,m-n與(m+1)-(n-1)結果是相同的。因此,我們可以使用符合要求的位置記錄的簇號直接進行計算。為了便於理解,下面我們將演示乙個例項的計算。

RAID在企業伺服器中的應用(RAID幾種級別)

企業級的 資料庫應用大多部署在 raid 磁碟陣列的伺服器上,這樣能提高磁碟的訪問效能,並能夠實現容錯 容災。raid 冗餘磁碟陣列 簡單理解,就是拿一些廉價的硬碟來做成陣列。其目的無非是為了擴充套件儲存容量,提公升讀寫效能,實現資料冗餘 備份容災 就像很早就有老外拿n台舊pc,做成乙個強大的 伺服...

RAID在企業伺服器中的應用(RAID幾種級別)

企業級的資料庫應用大多部署在raid磁碟陣列的伺服器上,這樣能提高磁碟的訪問效能,並能夠實現容錯 容災。raid 冗餘磁碟陣列 簡單理解,就是拿一些廉價的硬碟來做成陣列。其目的無非是為了擴充套件儲存容量,提公升讀寫效能,實現資料冗餘 備份容災 就像很早就有老外拿n台舊pc,做成乙個強大的 伺服器集群...

c 在vc 中的應用基礎 1

公司最近有個廣告ts流生成器的工具,需要用到mfc來實現。mfc斷斷續續學了半年,似懂非懂。下週3要催著交demo,頓時感到壓力和緊迫。於是重拾c 我一直相信 無論時光怎麼流逝,技術怎麼發展,基礎的東西永遠都不會過時。mfc說白了就是c 各種類的封裝,組合的一種微軟定製的框架。只要靜下來認真的搞,一...